首页 > 解决方案 > 如何打破 Python 上的循环菜单

问题描述

我在为快餐制作 ecounter 时遇到了一点问题,问题在于继续订购。我不知道如何在python中使用True和False。我选择三种食物作为初学者。它最终失败了。所以我尝试通过复制其他人的代码来使用 True。起初代码是成功的,但是当我在代码中更改一些小东西时,它出错了,我不知道如何修复它。

到目前为止,这是我的代码:

hcount = 0
scount = 0
fcount = 0
y = True
n = False
cstm= input("Please enter your name: ")
print("                                       ")
print("                                       ")
print("Hi MR/MS " + cstm)
print("WELCOME TO MACDUNNO ECOUNTER")

print("CHOOSE YOUR FOOD")

while True:

    print("  ")
    print('MENU MAC DUNNO')
    print("1. HAMBURGER = $1.50")
    print("2. SODA      = $1.15")
    print("3. FRIES   = $1.25")

    choice = int(input('ENTER NUMBER 1-3: '))

    if choice == 1:
        amount = int(input("ENTER THE AMOUNT: "))
        hcount += amount
    elif choice == 2:
        amount = int(input("ENTER THE AMOUNT: "))
        scount += amount
    elif choice == 3:
        amount = int(input("ENTER THE AMOUNT: "))
        fcount += amount
        
        
    countinue = input("ARE YOU STILL WANT TO ORDER? (y/n)")
    if countinue == n:
        sub = (hcount * 1.50) + (scount * 1.15) + (fcount * 1.25)
        tax = sub * 0.09
        total = sub + tax
        print("                                           ")
        print("                                           ")
        print("************")
        print("PAYMENT")
        print("************")
        print('TOTAL HAMBURGER: {0}'.format(hcount))
        print('TOTAL SODA: {0}'.format(scount))
        print('TOTAL FRIES: {0}'.format(fcount))
        print(" ")
        print('SUBTOTAL: {:0.2f}'.format(sub))
        print('TAX : {:0.2f}'.format(tax))
        print("   ")
        print("__________________________________")
        print('TOTAL: {:0.2f}'.format(total))
        print("   ")
        pay =int(input("INSERT PAYMENT:"))

        if pay > total :
            exchange = pay - total
            print(' ')
            print(' ')
            print('EXCHANGE : {:0.2f}'.format(exchange))
            print("THANK YOU, PLEASE COME AGAIN")
            import time
            time.sleep(5)
                        
        else:
            print(' ')
            print(' ')
            print("INSUFFICIENT AMOUNT")
            print("PLEASE INSERT THE RIGHT AMOUNT")
            scpay = int(input("INSERT PAYMENT : "))
        if scpay > total :
            exchange = scpay - total
            print(' ')
            print(' ')
            print('EXCHANGE     : {:0.2f}'.format(exchange))
            print("THANK YOU, PLEASE COME AGAIN")
            import time
            time.sleep(5)
                        
        else:
            print("  ")
            print("ORDER TERMINATED")
            import time
            time.sleep(5)

标签: menu

解决方案


当排序发生时,您需要将另一个变量保留为 True,然后在每个可能的中断或结束订单的每个可能选项时,您必须使变量为 False。

例子

     ordering = True
     while ordering:
         .
         .
         ordering = False
         print("THANK YOU, PLEASE COME AGAIN")
         import time
         time.sleep(5)

推荐阅读