#python
#python
Вопрос:
Описание проблемы требует от меня написать программу, которая запрашивает у пользователя его предпочтения в отношении сэндвича, используя PyInputPlus. Используйте inputMenu для получения информации о хлебе, белке. Введите значение NO для посыпки сыром и введите значение inputInt для получения количества сэндвичей. И, наконец, рассчитайте стоимость сэндвича в соответствии со всем выбором. Придумайте свои собственные цены. Как я могу улучшить свою программу. Эта программа работает, но только для 1 вида сыра и 1 вида начинки. Какие изменения я должен внести, чтобы программа рассчитала общее количество для нескольких сыров и начинок.
import pyinputplus as pypi
prices = {'Bread':{'Wheat':2, 'White':2, 'Sourdough':3},
'Protein':{'Chicken':2, 'Turkey':3, 'Ham':3, 'Tofu':2},
'Cheese':{'Cheddar':1, 'Swiss':1, 'Mozzerella':1},
'Topping':{'Mayo':0, 'Mustard':0,'Lettuce':1, 'Tomato':1}}
totalPrice = []
bread = pypi.inputMenu(['Wheat','White','Sourdough'],prompt="What kind of Bread would you like?n",default=None, caseSensitive=False)
breadPrice = prices['Bread'][bread]
totalPrice = breadPrice
protien = pypi.inputMenu(['Chicken', 'Turkey','Ham','Tofu'],prompt="What kind of protein would you like?n",default=None, caseSensitive=False)
totalPrice = prices['Protein'][protien]
cheese = pypi.inputYesNo("Do you want cheese? Yes/No:n ", yesVal="yes", noVal="no", caseSensitive=False, default=None, blank=False,)
if cheese == 'yes':
kindofcheese = pypi.inputMenu(['Cheddar', 'Swiss', 'Mozzerella'],prompt="What kind of cheese would you like?n",default=None, caseSensitive=False)
totalPrice = prices['Cheese'][kindofcheese]
else:
print('No cheese selected')
topping = pypi.inputYesNo("Do you want any toppings? Yes/No:n", yesVal="yes", noVal="no", caseSensitive=False, default=None, blank=False)
if topping == 'yes':
kindoftopping=pypi.inputMenu(['Mayo', 'Mustard','Tomato','Lettuce'], prompt="What kind of topping would you like?n",default=None,caseSensitive=False)
totalPrice =prices['Topping'][kindoftopping]
else:
print('No topping selected')
Qty = pypi.inputInt(prompt="How many sandwiches would you like?n", default=1, blank=False,min=1, lessThan=5)
totalPrice = totalPrice*Qty
print(f"The total amount payable for your sandwich(es) is {totalPrice}")
Ответ №1:
Вы можете использовать цикл while для добавления сыра / начинки, пока пользователь не введет no. Вот код для сыра, соответствующим образом измените свой код для начинок.
cheese = 'yes' # initialize to get the loop running
while cheese == 'yes': # ask for (additional) cheese until they enter no
cheese = pypi.inputYesNo("Do you want cheese? Yes/No:n ", yesVal="yes", noVal="no", caseSensitive=False, default=None, blank=False,)
if cheese == 'yes':
kindofcheese = pypi.inputMenu(['Cheddar', 'Swiss', 'Mozzerella'],prompt="What kind of cheese would you like?n",default=None, caseSensitive=False)
totalPrice = prices['Cheese'][kindofcheese]
else:
print('No (more) cheese selected') # slightly modified status text