[英]Trying to create a menu in python but loop won't exit
这是我的代码:
item=0
while True:
menu=input (""" ----- Heart Attacks On A Bun ----------
1. The Big MOO Combo . . . . 5.99
2. Big MOO . . . . . . . . . 3.99
3. Spring Surprise . . . . . 1.99
4. Fries . . . . . . . . . . 1.29
5. Pop . . . . . . . . . . . 1.19
6. Exit
________________________________________
What would you like? one for combo, two for Big MOO etc.
""")
if item=="one":
item+=5.99
elif item=="two":
item+=3.99
elif item=="three":
item+=1.99
elif item=="Four":
item+=1.29
elif item=="Five":
item+=1.19
elif item=="six":
break
print ("Your total is", item,"dollars")
为什么当我输入六个我的循环不退出并打印总数? 我也是初学者,这是一个高中课程
编写代码时有几个问题。
menu
需要检查输入,而不是项目( if menu==
if item==
应该是) item=="one"
需要更改为menu == 1
(其余比较相同),除非您希望用户键入“one”而不是按1 break
移动到该行,因为它在打印之前已经打破。 Nitpick : print ("Your total is", item,"dollars")
打印一个元组,看起来不太好。 print "Your total is $" + str(item)
看起来更专业。
固定:
item=0
while True:
menu = int(input (""" ----- Heart Attacks On A Bun ----------
1. The Big MOO Combo . . . . 5.99
2. Big MOO . . . . . . . . . 3.99
3. Spring Surprise . . . . . 1.99
4. Fries . . . . . . . . . . 1.29
5. Pop . . . . . . . . . . . 1.19
6. Exit
________________________________________
What would you like? one for combo, two for Big MOO etc.
"""))
if menu == 1:
item+=5.99
elif menu == 2:
item+=3.99
elif menu == 3:
item+=1.99
elif menu == 4:
item+=1.29
elif menu == 5:
item+=1.19
elif menu == 6:
print("Your total is $" + str(item))
break
item=0
while True:
menu =input(""" ----- Heart Attacks On A Bun ----------
1. The Big MOO Combo . . . . 5.99
2. Big MOO . . . . . . . . . 3.99
3. Spring Surprise . . . . . 1.99
4. Fries . . . . . . . . . . 1.29
5. Pop . . . . . . . . . . . 1.19
6. Exit
________________________________________
What would you like? one for combo, two for Big MOO etc.
""")
if menu == str(1):
item+=(5.99)
elif menu == str(2):
item+=3.99
elif menu == str(3):
item+=1.99
elif menu == str(4):
item+=1.29
elif menu == str(5):
item+=1.19
elif menu == str(6):
print ("Your total is", item,"dollars")
break
可以将输入更改为str
并在print
命令之前执行break
命令。
或者它可以像大卫在我面前解释的那样(我实际上更喜欢他的方式,因为它需要int
输入,而不是我转换为str
。)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.