Python-elif语句正在将类型从float更改为list



第一次发布,如果格式不正确,我们深表歉意。我的程序目前有两个列表。我将在解决这个初始问题后再添加4个。一个是用户选择的和项目,另一个是每个项目的价格。我已经编写了一个运行的用户选择代码。

我的问题是关于将所选项目与价目表关联的程序代码。我的第一个if语句将item_price注册为一个float,它提供了我需要的东西。以下elif语句中的Item_price被视为一个列表。如何将它们更改为浮动,以便打印价格而不是列表?

food=["burger", "pizza", "hotdogs", "tacos"]
food_price=[8.99, 22.50, 3.50, 6.00]
def get_menu_item(item,item_list,):
phrase = "Would you like" + item + "? [y/n] "
response = input(phrase)
if response == "y":
print("Here are your menu options:", item_list)
idx = input("please enter the item you would like from our menu[1,2,3,4]: ")
idx = int(idx) -1
return item_list[idx]

#if user selects [n]
else:
return (None)

#item price function
def get_item_price(item_price,item,item_list):
if item == item_list[0]:
item_price = item_price[0]

elif item == item_list[1]:
item_price == item_price[1]

elif item == item_list[2]:
item_price == item_price[2]

elif item == item_list[3]:
item_price == item_price[3]
return item_price
entree_choice = get_menu_item(" dinner",food)
print('You have selected: ' + entree_choice + ".")
entree_price = get_item_price(food_price,entree_choice,food)
print(entree_price)

不久之后,我自己回答了这个问题。我对所有的elif语句都使用==而不是=。我觉得自己很笨,但写出来帮助我解决了这个问题。

您可以通过使用字典来存储数据来进一步简化事情:

food_price = {"burger":8.99, "pizza":22.50, "hotdogs":3.50, "tacos":6.00}
def get_menu_item(item,item_list,):
phrase = "Would you like" + item + "? [y/n] "
response = input(phrase)
if response == "y":
print("Here are your menu options:", item_list)
idx = input("please enter the item you would like from our menu[1,2,3,4]: ")
idx = int(idx) -1
return item_list[idx]

else:
return (None)
entree_choice = get_menu_item(" dinner",food)
print('You have selected: ' + entree_choice + ".")
# if entree_choice is not found in the food_price dictionary, the output becomes the string "Entree choice not available."
entree_price = food_price.get(entree_choice, "Entree choice not available.") 
print(entree_price)

相关内容

最新更新