NameError:名称未定义
错误信息
name 'x' is not defined
快速摘要
你用了一个 Python 不认识的名字——变量没赋值、函数没定义、模块没导入,或拼写错了。
为什么发生
变量在使用前没有赋值
函数或类没有定义就被调用
模块没有
import就使用了其中的名字名字拼写错误,如把
count写成cont
最小示例
✗ 错误代码
print(count)✓ 修复代码
count = 10
print(count)count 在被引用前未定义。先 count = 10 赋值,再 print 就不会报 NameError。
如何诊断
阅读错误信息中单引号里的名字
在代码中搜索该名字,确认是否定义过、拼写是否一致
检查是否漏了
import语句
如何修复
在使用前先赋值或定义该名字
补上缺失的
import语句修正拼写错误,使引用与定义一致
如何预防
使用带自动补全和跳转定义的编辑器(如 VS Code + Pylance)
启用 flake8/ruff 检测未定义的引用(F821)
相关资源
相关课程
- Python 变量
了解变量赋值和作用域
相关练习
- Python 变量命名测验
考察你对 Python 变量命名的了解。
- 赋值 Python 变量
练习为 Python 变量赋值。