我希望当我的isQuit
变量为"yes"
且客户变为False
时,整个循环将退出。但是,当order_item
位于menu_items
之前,似乎会重复当前循环。
你可以帮我改变我的代码,以便在用户想要退出时循环停止吗?
def order(menu):
FISH_CHIPS_PRICES = menu
menu_items = []
for item in FISH_CHIPS_PRICES:
menu_items.append(item.lower())
orders = []
customer = True
while customer:
orders.append({})
for item in FISH_CHIPS_PRICES:
orders[-1][item] = 0
while True:
while True:
order_item = input("What do you want to buy?")
if order_item.lower() not in menu_items:
print("Item:", order_item, "not available")
isQuit = input("Do you want to quit: yes / no:")
if isQuit == "yes":
customer = False
else:
break
答案 0 :(得分:1)
您会看到此行为,因为两个无限的while循环包含在isQuit
变量中。 break
离开循环只会停止立即封闭的循环。
一种可能的解决方案是在return
为isQuit
时立即"yes"
,这将退出整个order()
函数。
# ...
isQuit = input("Do you want to quit: yes / no:")
if isQuit == "yes":
return
另一个可能的解决方案是删除外部无限while循环,因为它似乎不提供任何函数。