You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 20:58:12