Как найти общую стоимость этой программы на Python

Я создал простую программу на 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, чтобы рассчитать окончательную стоимость. Я рассчитал общую стоимость количества кругов, но не могу понять, как добавить ее к стоимости выбранных автомобилей, а затем отобразить общую стоимость.

Понимание Python и переход к SQL
Понимание Python и переход к SQL
Перед нами лабораторная работа по BloodOath:
Потяните за рычаг выброса энергососущих проектов
Потяните за рычаг выброса энергососущих проектов
На этой неделе моя команда отменила проект, над которым я работал. Неделя усилий пошла насмарку.
Инструменты для веб-скрапинга с открытым исходным кодом: Python Developer Toolkit
Инструменты для веб-скрапинга с открытым исходным кодом: Python Developer Toolkit
Веб-скрейпинг, как мы все знаем, это дисциплина, которая развивается с течением времени. Появляются все более сложные средства борьбы с ботами, а...
Библиотека для работы с мороженым
Библиотека для работы с мороженым
Лично я попрощался с операторами print() в python. Без шуток.
Эмиссия счетов-фактур с помощью Telegram - Python RPA (BotCity)
Эмиссия счетов-фактур с помощью Telegram - Python RPA (BotCity)
Привет, люди RPA, это снова я и я несу подарки! В очередном моем приключении о том, как создавать ботов для облегчения рутины. Вот, думаю, стоит...
Пошаговое руководство по созданию собственного Slackbot: От установки до развертывания
Пошаговое руководство по созданию собственного Slackbot: От установки до развертывания
Шаг 1: Создание приложения Slack Чтобы создать Slackbot, вам необходимо создать приложение Slack. Войдите в свою учетную запись Slack и перейдите на...
1
0
79
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Ответ принят как подходящий

Во-первых, вы не можете использовать цикл 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)

Хорошо, я понимаю ошибку, сделанную с этим, но где я могу определить car_cost, поскольку это не созданная переменная.

Josh 10.01.2023 23:18

@ Джош извини, я только что переименовал final_cost

azro 11.01.2023 07:55

Большое спасибо, это решило проблему, и теперь все работает как задумано. Я очень ценю помощь.

Josh 11.01.2023 11:06

Чтобы вычислить общую стоимость, вы можете использовать встроенную функцию sum(), которая принимает итерируемый объект (например, список) и возвращает сумму всех его элементов. В вашем случае вы можете использовать его, чтобы сложить все цены автомобилей, которые выбрал пользователь:

total_cost = sum(final_cost)

Затем вы можете добавить стоимость кругов к общей стоимости. В вашем коде переменная sum содержит общую стоимость кругов. Вы можете добавить это к переменной total_cost:

total_cost += sum

Если у вас есть шанс интегрировать это в мой код, я попытался сделать то, что вы имели в виду, но, похоже, это не сработало, возможно, я реализовал это неправильно. Спасибо за помощь.

Josh 10.01.2023 23:23

Привет, друг, в этой программе лучше добавить все свои затраты в одну переменную. в списке элементы вашего списка не складываются, но с переменными вы можете добавлять свою стоимость каждый раз, когда получаете такую ​​стоимость:

cost_sum = 0 
cost = input("Enter a cost: ")
cost_sum += cost

Я не совсем понимаю, что вы имеете в виду. Стоимость должна быть добавлена ​​автоматически, а не написана самим пользователем, поскольку предполагается, что стоимость будет равна сумме, которую будет взиматься с пользователя после выбора всех вариантов.

Josh 10.01.2023 23:11

Это был пример понять смысл и использовать его в своем коде

Ali Azad 12.01.2023 06:06

Другие вопросы по теме