Python程序提示元素未在字典中找到,求问题排查与解决
问题原因及解决方法
核心问题
你的get_elem函数逻辑存在错误:在for循环内部,第一次循环如果元素不匹配,就直接返回错误提示,导致程序只检查了elements_dict的第一个键,完全没有遍历字典里的其他元素。不管用户输入的元素是否在字典里,只要不是第一个键,都会直接返回“元素未找到”。
修正方案
有两种简单的修正方式:
方式一:调整return语句位置
把错误提示的return移到for循环外面,确保遍历完所有元素都没匹配时才返回错误:
def get_elem(req): target = req.upper() for element in elements_dict: if target == element: return elements_dict[element] # 遍历完所有元素都没找到才执行这里 return "Element not found, check spelling and try again."
方式二:利用字典的get方法(更简洁)
字典自带的get方法可以直接处理“键不存在”的情况,不需要手动循环:
def get_elem(req): return elements_dict.get(req.upper(), "Element not found, check spelling and try again.")
这种方式会先尝试获取转换为大写后的输入对应的键值,如果键不存在,就返回指定的错误提示,代码更简洁高效。
内容的提问来源于stack exchange,提问作者Roee Weglein
相关产品推荐
相关产品推荐

