Python代码在CMD中无法运行,但在IDLE中可以运行?

15 浏览
0 Comments

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 "", line 1, in

NameError: name 'Test' is not defined

尽管在IDLE中运行正常。这是代码的开头。

print('你叫什么名字?')
myName = input()
print('你好,'+str(myName)+' 很高兴认识你!') 

0
0 Comments

问题原因:由于Python版本的更改,可能存在两个安装的Python版本。在环境变量中,Python2.x的路径优先于Python 3.x的路径。在IDLE中,使用的是Python 3.x版本。

解决方法:将myName = input()更改为myName = raw_input(),这样在Python 2.x中可以正常运行。另外,需要将环境变量中的Python路径更改为Python 3.x的路径。

这样做后,问题得到解决,Python代码在CMD中可以正常运行。感谢大家的帮助!

0
0 Comments

问题的原因是Python 2.x和Python 3.x之间发生了一些变化。其中之一是input函数的变化。在Python 2中,input函数会评估用户输入的内容。当用户需要输入一个数字时,会使用该函数。它会对输入进行解析,并且返回值的变量类型将为数字类型(floatint)。

在您的情况下,由于用户的名称可能不是一个数字,并且如果您使用的是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作为默认解释器。

0