【问题标题】:Trying to create a menu in python but loop won't exit尝试在 python 中创建菜单但循环不会退出
【发布时间】:2016-01-22 10:40:03
【问题描述】:

这是我的代码:

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

为什么当我输入 6 时,我的循环没有退出并打印总数?我也是初学者,这是高中课程

【问题讨论】:

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


    【解决方案1】:

    你写的代码有几个问题。

    1. menu 需要检查输入,而不是项目(即if item==应该是if menu==
    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
    

    【讨论】:

      【解决方案2】:
      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,并且您的break 命令位于您的print 命令之前。

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-03-16
        • 2015-07-14
        • 2017-08-11
        • 1970-01-01
        • 2015-08-15
        • 2017-09-16
        相关资源
        最近更新 更多