You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 11:54:02