Python函数出现NameError问题求助:如何正确获取指定人员身高
问题分析与修复
你的代码存在两个关键问题,分别导致了报错和逻辑异常:
1. 参数传入错误
调用Height(John)时,Python会将John识别为一个未定义的变量,因此触发NameError。你需要把名字用引号包裹,以字符串形式传入函数。
2. 条件判断逻辑错误
if Height in "John"的写法是判断传入的字符是否包含在字符串"John"中(比如传"J"也会返回100cm),这和你需要的“匹配完整名字”逻辑不符。应该用==来判断字符串是否完全相等。
修正后的基础版本代码
def get_height(name): # 建议参数名和函数名区分开,避免混淆 if name == "John": return "100cm" elif name == "George": return "120cm" elif name == "Samuel": return "150cm" print(get_height("John")) # 传入字符串格式的名字
更简洁的优化版本(字典映射)
对于这种固定的名字-身高映射场景,用字典实现会更高效且易维护:
def get_height(name): height_map = { "John": "100cm", "George": "120cm", "Samuel": "150cm" } # 可选:添加默认值,避免传入不存在的名字时返回None return height_map.get(name, "未知身高") print(get_height("John"))
内容的提问来源于stack exchange,提问作者Sam1009
相关产品推荐
相关产品推荐

