Я создал простую программу на Python, которая позволяет пользователям управлять разными автомобилями. Пользователь вводит свое полное имя, адрес и номер телефона. Затем пользователя спросят, на какой машине он хочет водить, максимум из пяти выбранных машин. Для автомобилей установлены цены, и в конце программы будет добавлен общий счет, однако в настоящее время я не могу найти решение для расчета общей стоимости для пользователя. Программа также спрашивает пользователя, сколько кругов гонки он хочет проехать на машине, я уже придумал, как отобразить общую стоимость кругов, но нужно как-то добавить ее к общей стоимости. Спасибо!
Код
cars_list = ["Lamborghini", "Ferrari", "Porsche", "Audi", "BMW"]
cars_prices = {"Lamborghini":50, "Ferrari":45, "Porsche":45, "Audi":30, "BMW":30}
laps_cost = 30
final_cost = []
final_order = {}
cust_num_cars = int(input("Please enter the number of cars you want to drive in this session: "))
while cust_num_cars > 5:
cust_num_cars = int(input("You can only drive a maximum of five cars! Please try again.\n Enter cars: "))
for index in range(cust_num_cars):
print("\nChoose a car type from the following list", cars_list)
select_cars = input("Select a car type: ")
if select_cars in cars_list:
print("\nYou have selected to drive the", {select_cars})
final_cost.append(cars_prices[select_cars])
if select_cars not in cars_list:
print("\n",{select_cars}, "is not in the available list of cars to drive!")
cust_name = input("\nPlease enter your full name: ")
cust_address = input("Please enter your full address: ")
cust_phone_num = int(input("Please enter your mobile phone number: "))
add_laps = input("\nWould you like to drive additional laps? (Yes/No): ")
if add_laps == "Yes":
print("\nYou have selected an additional lap!")
num_of_laps = int(input("Number of additional laps: "))
print("\nYou have selected", num_of_laps, "additional laps!")
final_cost.append(cars_prices[add_laps])
sum = num_of_laps * laps_cost
else:
print("\nYou have selected no additional extra laps.")
print("Total laps cost: £",final_cost)
print("\n----Order & Billing summary----")
print("Customer Full Name:", cust_name)
print("Customer Address:", cust_address)
print("Customer Phone Number", cust_phone_num)
print("Total cost", final_cost.append(cars_prices))
Я перепробовал все, что знал из своего небольшого опыта работы с Python, чтобы рассчитать окончательную стоимость. Я рассчитал общую стоимость количества кругов, но не могу понять, как добавить ее к стоимости выбранных автомобилей, а затем отобразить общую стоимость.
Во-первых, вы не можете использовать цикл for, потому что, когда вы выбираете автомобиль, которого нет в возможностях, вы потеряли итерацию, используйте цикл while
# final_cost renamed to car_cost
while len(car_cost) != cust_num_cars:
print("\nChoose a car type from the following list", cars_list)
select_cars = input("Select a car type: ")
if select_cars in cars_list:
print("\nYou have selected to drive the", select_cars)
car_cost.append(cars_prices[select_cars])
else:
print("\n", select_cars, "is not in the available list of cars to drive!")
Затем используйте sum() для стоимости автомобилей и добавьте к стоимости кругов.
num_of_laps = 0
add_laps = input("\nWould you like to drive additional laps? (Yes/No): ")
if add_laps == "Yes":
print("\nYou have selected an additional lap!")
num_of_laps = int(input("Number of additional laps: "))
print("\nYou have selected", num_of_laps, "additional laps!")
else:
print("\nYou have selected no additional extra laps.")
total = num_of_laps * laps_cost + sum(car_cost)
print("Total price:", total)
@ Джош извини, я только что переименовал final_cost
Большое спасибо, это решило проблему, и теперь все работает как задумано. Я очень ценю помощь.
Чтобы вычислить общую стоимость, вы можете использовать встроенную функцию sum(), которая принимает итерируемый объект (например, список) и возвращает сумму всех его элементов. В вашем случае вы можете использовать его, чтобы сложить все цены автомобилей, которые выбрал пользователь:
total_cost = sum(final_cost)
Затем вы можете добавить стоимость кругов к общей стоимости. В вашем коде переменная sum содержит общую стоимость кругов. Вы можете добавить это к переменной total_cost:
total_cost += sum
Если у вас есть шанс интегрировать это в мой код, я попытался сделать то, что вы имели в виду, но, похоже, это не сработало, возможно, я реализовал это неправильно. Спасибо за помощь.
Привет, друг, в этой программе лучше добавить все свои затраты в одну переменную. в списке элементы вашего списка не складываются, но с переменными вы можете добавлять свою стоимость каждый раз, когда получаете такую стоимость:
cost_sum = 0
cost = input("Enter a cost: ")
cost_sum += cost
Я не совсем понимаю, что вы имеете в виду. Стоимость должна быть добавлена автоматически, а не написана самим пользователем, поскольку предполагается, что стоимость будет равна сумме, которую будет взиматься с пользователя после выбора всех вариантов.
Это был пример понять смысл и использовать его в своем коде
Хорошо, я понимаю ошибку, сделанную с этим, но где я могу определить car_cost, поскольку это не созданная переменная.