繁体   English   中英

尝试在python中创建菜单但循环不会退出

[英]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")

为什么当我输入六个我的循环不退出并打印总数? 我也是初学者,这是一个高中课程

编写代码时有几个问题。

  1. menu需要检查输入,而不是项目( if menu== if item==应该是)
  2. item=="one"需要更改为menu == 1 (其余比较相同),除非您希望用户键入“one”而不是按1
  3. 在最终的打印声明之后,需要将break移动到该行,因为它在打印之前已经打破。

Nitpickprint ("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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM