Python代码循环持续请求输入如何终止?如何向字典添加数据并退出?
问题解决思路与修正代码
先揪出你原代码里的核心问题
- 每次循环都把
stock和prices重置回初始状态,之前输入的内容全白搭了 - 用
for items in stock循环,初始字典有4个键,会强制跑4次循环,完全不符合需求 - 终止条件只有输入"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
相关产品推荐
相关产品推荐

