Python购物清单程序输入大写Q未退出反被加入列表问题求解
问题原因
你的判断逻辑只处理了预设退出值的大小写,没有对用户输入的内容做统一格式化:quit_list.casefold()得到的始终是小写的'q',当用户输入大写Q时,item的值为'Q',二者直接对比结果为False,无法触发break逻辑,就会被当做普通商品加入清单。
另外你贴出的原代码还有缩进错误,while True下方的所有逻辑行都需要增加缩进,否则运行会直接报缩进异常。
修复方法
只需要把用户输入的内容也做一次casefold处理后再对比即可,修改后的完整代码如下:
shopping_list = [] quit_list = 'q' print("购物清单") print("输入完成后请按'q'退出") while True: item = input("请输入商品:") # 获取用户输入的商品 # 用户输入内容也做大小写折叠后再对比,兼容大小写q/Q if item.casefold() == quit_list.casefold(): break if item in shopping_list: # 输入已存在的商品即可移除该商品 shopping_list.remove(item) print(shopping_list) else: shopping_list.append(item) # 将商品添加到清单 print("{} 已添加到清单。".format(item)) print(shopping_list) print(shopping_list)
内容的提问来源于stack exchange,提问作者jmp
相关产品推荐
相关产品推荐

