You need to enable JavaScript to run this app. Python已定义correct变量却报NameError未定义的原因是什么
优惠活动
大模型
产品
解决方案
定价
更多

Python已定义correct变量却报NameError未定义的原因是什么

问题原因

函数内部定义的correct属于局部变量,作用域仅覆盖函数内部,函数执行完成后就会被销毁,全局作用域无法直接访问。同时你调用guesscheck函数时没有接收它的返回值,全局作用域从未创建过名为correct的变量,因此触发NameError。

修复方案

核心修改为调用函数时,将返回值赋值给全局作用域的correct变量,修改后可运行的代码如下:

def guesscheck(guess, answer):
    print(lives * '\u2665')
    if guess.upper() == answer:
        print("Marvelous! That is correct!")
        return True
    else:
        print("That is incorrect.")
        return False

lives = 3
guess = input("ok: ")
# 接收函数返回值,赋值给全局的correct变量
correct = guesscheck(guess, "OK")
if not correct:
    lives -= 1
    print(lives * '\u2665')

可选优化点:

  • 判断布尔值时直接用if not correct替代if correct == False,代码更简洁易读
  • 移除了函数内冗余的correct临时变量和重复的判断逻辑,直接返回布尔值即可

内容的提问来源于stack exchange,提问作者JustANoobProgrammer

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.09 03:33:02