试图在python中创建一个菜单,但循环不会退出

时间:2015-10-23 00:41:50

标签: python loops python-3.x while-loop

这是我的代码:

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")

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

2 个答案:

答案 0 :(得分:2)

编写代码时有几个问题。

  1. menu需要检查输入,而不是项目(e.i。if item==应为if menu==
  2. item=="one"需要更改为menu == 1(其他比较相同),除非您希望用户输入“一个”而不是按1
  3. break需要在最终打印声明后移动到该行,因为它在您打印任何内容之前就已经打破了。
  4. 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
    

答案 1 :(得分:1)

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

输入可以更改为strbreak命令位于print命令之前。

或者可以像大卫在我面前解释的那样(我实际上更喜欢他的方式,因为它需要int输入,而不是我转换为str。)