如何用循环实现汉堡点餐程序的重复运行?
解决汉堡点餐程序重复运行的问题
要实现程序重复接受新用户点餐,用**while True无限循环**是最直接的方案,搭配退出判断就能灵活控制程序是否继续运行。
步骤说明:
- 将整个点餐流程(从欢迎语到打印感谢语)放入
while True循环内部 - 在打印完感谢语后,询问是否需要接待下一位顾客,根据输入决定继续循环或退出
- 顺便修正原代码的逻辑错误:汉堡加芝士的判断误用了汉堡选择的变量,需改用芝士问题的输入结果
修改后的完整代码:
def main(): while True: print("Welcome to static burger!") print("Please answer each question with y or n.") # 账单与菜品价格初始化 bill = 0.00 hb = 8.00 cb = 6.00 cs = 5.00 fry = 2.00 cdmts = 1.00 # 处理用户订单 first = input("Would you like a hamburger? ") if first == 'y': cheese_input = input('with cheese? ') if cheese_input == 'y': bill += (hb + 2.00) else: bill += hb second = input("Would you like a cheeseburger? ") if second == 'y': bill += cb third = input("Would you like a chicken sandwich? ") if third == 'y': bill += cs fourth = input("Would you like fries? ") if fourth == 'y': bill += fry fifth = input("Would you like condiments? ") if fifth == 'y': bill += cdmts tip = 1.2 total = bill * tip print("Your total is $ {:.2f} dollars".format(total)) print("Thank you for your business!") # 询问是否继续接单 continue_order = input("Would you like to take another order? (y/n) ") if continue_order.lower() != 'y': print("Closing the system...") break if __name__ == "__main__": main()
关键细节:
while True会持续执行循环,直到遇到break语句终止- 循环末尾的
continue_order输入用来判断是否退出:若用户输入非'y'(忽略大小写),则执行break结束程序 - 每次循环开始时重新初始化
bill为0,确保不同用户的订单金额互不干扰 - 修正了汉堡加芝士的逻辑判断,改用专门的输入变量
cheese_input
内容的提问来源于stack exchange,提问作者sstatic
相关产品推荐
相关产品推荐

