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

如何在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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 19:48:11