Python代码在CMD中无法运行,但在IDLE中可以运行?
Python代码在CMD中无法运行,但在IDLE中可以运行?
我刚开始学习Python,并尝试制作一个小的测试游戏,但当我在CMD中运行程序时,出现了这个错误。
你叫什么名字?
测试
Traceback (most recent call last):
File "C:\Users\User\Documents\Python Games\Test.py", line 2, in
myName = input()
File "
NameError: name 'Test' is not defined
尽管在IDLE中运行正常。这是代码的开头。
print('你叫什么名字?') myName = input() print('你好,'+str(myName)+' 很高兴认识你!')
问题的原因是Python 2.x和Python 3.x之间发生了一些变化。其中之一是input
函数的变化。在Python 2中,input
函数会评估用户输入的内容。当用户需要输入一个数字时,会使用该函数。它会对输入进行解析,并且返回值的变量类型将为数字类型(float
或int
)。
在您的情况下,由于用户的名称可能不是一个数字,并且如果您使用的是Python 2,应该使用raw_input
函数,该函数将用户输入作为字符串返回,而不进行解析。这意味着如果用户输入一个数字,将返回包含该数字的字符串。
出于安全原因,不建议使用Python 2的input
函数,因为该函数会对输入进行评估,并且虽然对于解析数字而不进行类型转换非常方便,但它也允许用户将恶意代码注入到应用程序中。
在Python 3中,已经将input
函数替换为raw_input
函数,并且删除了raw_input
函数。
解决方法是,如果您要运行python3
,则需要显式地指定。如果默认行为是调用python2
,则需要告诉操作系统显式地运行python3
。
在Windows上,可以使用py -3
来运行Python 3。在Ubuntu上,可以使用python3
来运行Python 3。
您的IDE似乎已经正确配置为使用Python 3作为默认解释器。