Python dictionary 股票查询作业遇阻,无法获取key对应value
原有代码的核心问题梳理
- 字典取值逻辑错误:尝试直接将整个字典对象和字符串拼接打印,会直接触发语法报错,也无法实现单条价格值的读取
- 匹配逻辑覆盖不全:仅单独写了ADBE的相等判断,其余9个股票代码完全没有匹配分支
- 缺失循环结构:程序运行一次就会终止,不符合持续查询的要求
- 缺失无效输入处理:没有判断用户输入的代码是否属于字典的存储范围,无法触发无效输入的提示
符合需求的可运行完整代码
# 提前定义股票-价格映射字典,放在循环外避免每次循环重复初始化 stock = { 'ADBE': '$2', 'SPOT': '$3', 'BJ': '$4', 'DIS': '$5', 'FB': '$6', 'BABA': '$6', 'LOW': '$7', 'NLS': '$8', 'SONO': '$9', 'NEM': '$10' } # 无限循环实现持续查询流程 while True: # 接收用户输入的股票代码 input_symbol = input("请输入全大写格式的股票代码查询对应价格(输入exit可退出程序):\n") # 增加可选退出逻辑,避免程序无终止运行 if input_symbol.lower() == 'exit': print("查询程序已退出") break # 判断输入的代码是否为字典中已存储的有效key if input_symbol in stock: # 直接通过key索引获取对应价格并打印 print(f"股票{input_symbol}的当前价格为:{stock[input_symbol]}") else: # 触发无效输入提示 print("输入的股票代码无效,请输入有效的全大写股票代码重试")
核心知识点说明
- 字典取值的正确语法:只要确认key存在,直接用
字典变量[key名]即可取出对应的value,不需要为每个key单独编写if相等判断,这种写法冗余度极高,字典条目增多后根本无法维护 - 字典key存在性判断:用
待查内容 in 字典变量的语法可以快速完成匹配,效率远高于逐个对比key值的写法 - 循环结构实现:用
while True搭建的无限循环可以满足持续接收用户输入的需求,需要终止流程时用break语句跳出即可 - 字符串拼接注意事项:字符串和其他类型对象(如字典、数字)不能直接用
+号拼接,需要先将待拼接内容转为字符串格式,或使用f-string实现格式化输出,避免触发语法错误
内容的提问来源于stack exchange,提问作者3venf7ow
相关产品推荐
相关产品推荐

