如何在if语句内编写while循环实现用户添加列表元素功能?
问题分析与修复
你的代码存在几个关键问题,导致while循环无法正常工作:
- 循环条件逻辑错误:
len(added_items) == " "是把字符串长度和空格字符串做比较,类型不匹配且逻辑完全不合理。 - 对append方法的误解:
shopping_cart.append()执行后返回的是None,不是添加的元素,所以added_items会被赋值为None,后续循环条件直接不成立。 - 缺少继续添加的交互逻辑:原需求是添加元素后要询问是否完成,你的代码没有实现这个核心交互。
修正后的代码
shopping_cart = [] # 初始询问是否添加元素 statement = input("Do you want to add an item to the cart?: ").lower() if statement == "yes": while True: # 获取要添加的元素并加入购物车 item = input("What item to add?: ") shopping_cart.append(item) # 询问是否继续添加 continue_add = input("Are you done adding items? (yes/no): ").lower() if continue_add == "yes": break print(shopping_cart) elif statement == "no": print(shopping_cart)
关键改动说明
- 用
while True创建无限循环,直到用户确认完成才通过break退出循环。 - 每次添加元素后,专门询问用户是否完成,根据输入决定是否终止循环。
- 使用
.lower()统一输入的大小写,避免用户输入"Yes"或"YES"这类格式导致判断失效。 - 不再错误地将
append的返回值赋值给变量,直接操作购物车列表完成元素添加。
内容的提问来源于stack exchange,提问作者LimbotU
相关产品推荐
相关产品推荐

