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

Python代码循环持续请求输入如何终止?如何向字典添加数据并退出?

问题解决思路与修正代码

先揪出你原代码里的核心问题

  1. 每次循环都把stock和prices重置回初始状态,之前输入的内容全白搭了
  2. 用for items in stock循环,初始字典有4个键,会强制跑4次循环,完全不符合需求
  3. 终止条件只有输入"cherry"才会停,太死板

问题一:终止循环的实用方案

给你两种常用思路:

  • 单次输入即退出:添加完数据后直接用break终止,或者干脆不用循环(如果只需要加一条数据)
  • 用户主动触发退出:用while True做无限循环,当用户输入特定指令(比如"quit")时终止

问题二:正确添加数据到字典并退出

核心是绝对不要在循环里重置字典,直接在初始字典上更新,然后按需选择退出时机


修正代码1:只添加一条数据就退出

# 直接初始化字典,不用先定义空元组
stock = {"banana": 6, "apple": 0, "orange": 32, "pear": 15}
prices = {"banana": 4, "apple": 2, "orange": 1.5, "pear": 3} 

# 输入水果名称
stockname = input("Input stock name: ")
# 输入库存数量(新手阶段可以先不加异常处理,后续可补充)
stockquantity = int(input("Input number in stock: "))
# 更新库存字典
stock.update({stockname: stockquantity})
print("当前库存:", stock)

# 输入对应价格
addprice = float(input(f"请输入{stockname}的价格:"))
# 更新价格字典
prices.update({stockname: addprice})
print("当前价格表:", prices)

# 执行完自动退出,无需额外循环

修正代码2:支持多次添加,输入quit退出

stock = {"banana": 6, "apple": 0, "orange": 32, "pear": 15}
prices = {"banana": 4, "apple": 2, "orange": 1.5, "pear": 3} 

while True:
    stockname = input("Input stock name(输入quit退出): ")
    # 判断是否触发退出
    if stockname.lower() == "quit":
        print("程序退出")
        break
    
    # 处理库存输入,加异常处理防止输入非数字
    try:
        stockquantity = int(input("Input number in stock: "))
    except ValueError:
        print("请输入有效的数字!")
        continue  # 回到循环开头,让用户重新输入
    
    stock.update({stockname: stockquantity})
    print("当前库存:", stock)
    
    # 处理价格输入,同样加异常处理
    try:
        addprice = float(input(f"请输入{stockname}的价格:"))
    except ValueError:
        print("请输入有效的数字!")
        continue
    
    prices.update({stockname: addprice})
    print("当前价格表:", prices)

内容的提问来源于stack exchange,提问作者dicho

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 03:54:10