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

满足退出条件时While循环无法正常终止问题求助

问题根源

  • 循环条件判断时机错误:你在循环开始前判断上一轮的itemName是否为quit,当你输入quit后,会先执行完本次循环内的所有代码(把quit追加到列表、询问对应价格),直到下一轮循环开始时才会触发退出条件,因此会多出来一次价格询问
  • 代码未初始化items列表,运行时会直接报错
  • 追加元素时用的是上一轮循环存储的itemPrice,导致商品和价格对应错误
  • 最终打印用items[:-1]是为了删掉误加入的quit元素,属于临时补丁,根源问题解决后不需要这个操作

修复后代码

# 初始化存储商品的列表
items = []
while True:
    itemName = input('What item would you like to add?').lower().strip()
    # 输入quit直接终止循环,不执行后续逻辑
    if itemName == 'quit':
        break
    itemPrice = input(f'What is the price of {itemName}?').strip()
    items.append(f'{itemName} ${itemPrice}')

# 直接打印所有有效元素
for item in items:
    print(item)

修改说明

  • 用while True构建无限循环,匹配退出条件时直接用break终止,从根源避免循环判断时机错误的问题
  • 输入itemName后立刻做退出判断,匹配quit就直接跳出,不会触发后续的价格询问和元素追加操作
  • 调整代码顺序,先获取当前商品的价格,再把商品和对应价格追加到列表,解决对应关系错误的问题
  • 移除了多余的列表切片打印逻辑,修复后列表中不会存入quit相关的无效内容

内容的提问来源于stack exchange,提问作者Enmanuel De Los Santos Cruz

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 00:24:03