为了账号安全,请及时绑定邮箱和手机立即绑定

while循环中未记录的变量

while循环中未记录的变量

沧海一幻觉 2023-09-19 14:51:06
我的问题出在 # 行内。我不明白为什么 invalidDish 始终为 True,即使在 if 语句之一中将其设置为 False 后也是如此。class dishes:    def __init__(self, serial_no, dish_name, price):        self.serial_no = serial_no        self.dish_name = dish_name        self.price = price    def show_menu(self):        print(str(self.serial_no) + '. ' + self.dish_name + '\t$' + self.price)def errorMessage(code, range):    if code == 'outOfRange':        print('***Please enter number 1 - {} only***\n'.format(str(range)))    machineRunning()plain_prata = dishes(1, 'Plain prata', '0.50')egg_prata = dishes(2, 'Egg prata', '1.00')cheese_prata = dishes(3, 'Cheese prata', '2.50')garlic_prata = dishes(4, 'Garlic prata', '1.50')ham_prata = dishes(5, 'Ham prata', '2.50')menu = [plain_prata, egg_prata, cheese_prata, garlic_prata, ham_prata]current_order = []def machineRunning():    while True:        print('1. Menu')        print('2. Add order')        print('3. Checkout')        value = input('Please input:')        try:            value = int(value)            if value < 1 or value > 3:                errorMessage('outOfRange', 3)        except ValueError:            print('***Please enter number 1 - 3 only***\n')            continue        if value == 1:            print()            for x in range(len(menu)):                menu[x].show_menu()        elif value == 2:            dish = input('Dish name/number:')            try:                dish = int(dish) - 1                if dish < 0 or dish >= len(menu):                    errorMessage('outOfRange', len(menu))我尝试按照终端中的代码进行操作,但仍然无法找出问题所在。这是终端的结果。附言。我正在通过尝试为一家餐厅制作收银机来学习Python,生成每周、每月总结、计算利润等。关于我下一步可以做什么以使这个更加用户友好有什么建议吗?就像 python 与其他软件或代码对话一样,使界面易于使用?
查看完整描述

1 回答

?
慕沐林林

TA贡献2016条经验 获得超9个赞

您将跳出 while 循环,然后使用外部 for 循环再次循环,然后将 invalidDish 设置为 True。



查看完整回答
反对 回复 2023-09-19
  • 1 回答
  • 0 关注
  • 71 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信