为什么在Python IDLE shell中运行代码时会触发NameError报错?
NameError报错原因
报错和代码本身的语法逻辑无关,是你在PyShell交互环境下的执行操作有误导致的:
- 当你在交互环境逐行运行代码到
myName = input()时,Python会进入输入等待状态,此时界面不会显示>>>提示符,你在这个状态下输入的内容才会被input()函数接收赋值给myName变量。 - 你实际操作时,误认为
myName = input()已经执行完毕,直接把bn作为独立的Python命令输入运行,由于你没有提前定义过名为bn的变量,就触发了NameError报错。
修复方案
- 方案一:将所有代码保存为后缀为
.py的独立文件,直接运行整个脚本,当控制台输出What is your name?时直接输入名字即可正常执行。 - 方案二:如果要在交互环境逐行运行,执行到
myName = input()后不需要输入>>>,直接输入你的名字按下回车,再继续执行后续的打印代码即可。
内容的提问来源于stack exchange,提问作者Mic Test
相关产品推荐
相关产品推荐

