Python购物车系统Remove命令无法识别已添加商品代码的问题求助
问题解决:购物车Remove命令无法识别商品代码
问题的核心是类型不匹配:添加商品时,你把输入的商品代码转换成整数存入了列表,但执行移除操作时,直接用字符串类型的command[1]去整数列表里查找,自然找不到匹配项。
修复方案
只需要在移除判断时,把command[1]转换成整数再进行匹配即可。同时可以补充一些输入校验,提升程序的健壮性:
cart = [] while True: command = str(input("Command: ")).split() # 统一转小写,兼容Add/ADD等不同大小写的命令输入 cmd = command[0].lower() if command else "" if cmd == "add": if len(command) < 2: print("请输入正确格式:Add [商品代码]") continue try: code = int(command[1]) cart.append(code) except ValueError: print("商品代码必须是数字") elif cmd == "remove": if len(command) < 2: print("请输入正确格式:Remove [商品代码]") continue try: code = int(command[1]) if code in cart: cart.remove(code) else: print(f'code {code} not found') except ValueError: print("商品代码必须是数字") elif cmd == "show": cart.sort() print(cart) elif cmd == "checkout": break cart.sort() print(cart)
额外优化说明
- 命令转小写处理,支持用户输入
Add/ADD等不同大小写的命令 - 增加输入完整性校验,避免用户只输入
Add/Remove却不提供商品代码 - 增加异常捕获,防止用户输入非数字的商品代码导致程序崩溃
内容的提问来源于stack exchange,提问作者Travadox
相关产品推荐
相关产品推荐

