Независимо от вашей конкретной логики (которая решает, решит ли ваша проблема или нет), вы, вероятно, неправильно используете оператор elif
:
, если пользователь ввел milk
, тогда,увеличить общую сумму на 1,55
if userInput.lower() == "milk":
total += 1.55
, если пользователь ввел bread
, затем увеличить общую сумму на 1,82
if userInput.lower() == "bread":
total += 1.82
, если пользователь ввел butter
тогда,увеличьте сумму на 1,29
if userInput.lower() == "butter":
total += 1.29
и так далее ... до последнего: контекстно, если пользователь ввел coffee
, увеличьте сумму на 3,05
if userInput.lower() == "coffee":
total += 3.05
контекстуально, если пользователь не ввел coffee
и то, что введено пользователем, не содержится в списке items
запись Please enter a valid item.
elif userInput not in items:
print("Please enter a valid item.")
Последняя проверка избыточнакак вы уже проверили против них.Когда пользователь вводит строку, которую вы проверяете по совокупности непересекающихся значений (молоко, хлеб и т. Д.), Вы должны превратить все ваши if
в elif
следующим образом:
if userInput.lower() == "milk":
total += 1.55
elif userInput.lower() == "bread":
total += 1.82
elif userInput.lower() == "butter":
total += 1.29
elif userInput.lower() == "salt":
total += 1.20
elif userInput.lower() == "pepper":
total += 1.20
elif userInput.lower() == "ham":
total += 1.99
elif userInput.lower() == "steak":
total += 3.99
elif userInput.lower() == "banana bunch":
total += 2.25
elif userInput.lower() == "apple tray":
total += 1.52
elif userInput.lower() == "grapes":
total += 1.41
elif userInput.lower() == "winegums":
total += 0.85
elif userInput.lower() == "black jacks":
total += 0.85
elif userInput.lower() == "sugar":
total += 2.95
elif userInput.lower() == "honey":
total += 0.85
elif userInput.lower() == "tea":
total += 2.85
elif userInput.lower() == "coffee":
total += 3.05
else
print("Please enter a valid item.")
Что в сущности является оператором switch
.
Моя личная заметка : поскольку у вас уже есть список элементов, вы можете просто создать словарь названий продуктов длякоэффициенты , поэтому весь материал будет сведен к поиску в словаре, который, на мой взгляд, более удобен, чем жесткое кодирование значений в методе.