Python姓名与竞价字典程序输出为空的问题求助
Python姓名与竞价字典程序输出为空的问题求助
嘿,我来帮你看看这个问题!你的代码里有两个关键问题导致输出是空字典,咱们一步步拆解修正:
先看你原代码的核心问题
- 循环完全没执行:你创建了空字典
bids = {}后,立刻去循环bids.items()——这时候字典里没有任何键值对,这个循环根本不会运行,所以你之前输入的name和bid完全没被添加到字典里。 - 字典赋值语法错误:就算循环能运行,你用
bids += { name : bid }也是错误的,Python的字典不支持用+=运算符来添加键值对,这会直接抛出语法错误。
针对需求的修正方案
情况1:只需要存储单个用户的竞价
如果你的需求是仅获取一次姓名和竞价并存储,那完全不需要循环,直接把输入的键值对添加到字典即可:
name = input("Enter your name: ") bid = int(input("Enter your bid: ")) bids = {} # 直接通过键赋值的方式添加到字典 bids[name] = bid # 也可以用update方法:bids.update({name: bid}) print(bids)
情况2:支持多个用户输入竞价
如果想让程序可以接收多组姓名和竞价,直到用户主动停止,那可以用while循环来实现:
bids = {} while True: name = input("Enter your name (输入'quit'可结束输入): ") # 给用户一个退出循环的选项 if name.lower() == 'quit': break # 新手阶段先简化,若想更严谨可以加异常处理防止输入非数字 bid = int(input("Enter your bid: ")) bids[name] = bid print(bids)
这样修改后,程序就能正确把输入的姓名和竞价存储到字典里,最后打印出预期的内容啦。
备注:内容来源于stack exchange,提问作者veluguri praveen
相关产品推荐
相关产品推荐

