PyCharm运行Python代码提示NameError: name 'yes' is not defined如何解决
报错原因
该报错由Python版本差异导致:你当前运行代码使用的是Python 2.x版本,Python 2中input()函数会将用户输入的内容直接作为Python表达式解析执行。当你输入yes时,解释器会将其识别为变量名去全局作用域查找对应定义,找不到就会抛出NameError: name 'yes' is not defined。
如果是Python 3.x版本,input()函数默认返回字符串类型,不会触发该类报错。
解决方法
- 方法1:将代码运行环境切换为Python 3.x版本,原有代码不需要做任何逻辑修改即可正常运行。
- 方法2:如果必须使用Python 2.x环境运行代码,将代码中的
input()替换为raw_input()即可。raw_input()会直接返回用户输入的字符串,不会尝试将内容解析为Python表达式,行为和Python 3的input()一致。
额外注意事项
你贴出的代码中quit()没有和上方的if判断语句保持缩进对齐,运行时会触发语法错误,需要对齐缩进。修正后的Python 2.x版本代码如下:
playing = raw_input("Do you want to play? ") if playing != "yes": quit()
内容的提问来源于stack exchange,提问作者S4nt4g017
相关产品推荐
相关产品推荐

