Python代码在CMD中不工作,但在IDLE中工作?
我是Python新手,一直在尝试制作一个小的测试游戏,但当我在CMD中运行我的程序时,它给出了这个错误的答案Python代码在CMD中不工作,但在IDLE中工作?,python,cmd,Python,Cmd,我是Python新手,一直在尝试制作一个小的测试游戏,但当我在CMD中运行我的程序时,它给出了这个错误的答案 你叫什么名字? 试验 回溯(最近一次呼叫最后一次): 文件“C:\Users\User\Documents\Python Games\Test.py”,第2行,在 myName=input() 文件“”,第1行,在 NameError:未定义名称“Test” 尽管这在空闲状态下运行良好。这是代码的顶部 print('What Is Your Name?') myName = input
你叫什么名字?
试验
回溯(最近一次呼叫最后一次):
文件“C:\Users\User\Documents\Python Games\Test.py”,第2行,在
myName=input()
文件“”,第1行,在
NameError:未定义名称“Test”
尽管这在空闲状态下运行良好。这是代码的顶部
print('What Is Your Name?')
myName = input()
print('Hello '+str(myName)+' It is good to meet you!')
这是因为python版本发生了变化。您可能安装了两条蟒蛇。 Python2.x在路径中。而Python3.x是空闲的
name错误:未定义名称“Test”
是因为它的python 2.x
将myName=input()
更改为myName=raw\u input()
它将在Python2.x中工作
您的空闲版本必须是python 3.x,其中没有
原始输入()
Python2.x和Python3.x之间几乎没有变化
其中之一是更改输入
功能
在Python 2中,input
函数计算用户键入的内容。当用户必须键入数字时,使用此功能。将对其进行分析,并且包含输入的返回值的变量将是数值类型(float
或int
)
在您的例子中,由于用户名可能不是数字,并且如果您使用的是Python 2,那么应该使用函数raw\u input
,该函数将用户的输入作为字符串返回,而不进行解析。这意味着,如果用户键入一个数字,将返回包含该数字的字符串
出于安全原因,不建议使用Python 2的input
函数,因为该函数对输入进行求值,尽管它非常方便地解析数字而无需强制转换,但它也允许用户向应用程序中注入恶意代码;)
因此,Python3中的输入函数已被raw_输入函数替换,而raw_输入函数已被删除
修复
我认为操作系统的默认行为是,当您想要运行python
时,调用python2
。因此,如果您想运行python3
,必须明确指出:
- 在windows上:
py-3
- 在ubuntu上(其他发行版可能也是如此):
蟒蛇3
您的IDE似乎已正确配置为使用python3作为默认解释器。听起来您使用的是来自python3的IDLE,但脚本使用的是python2。你需要在python2中使用raw\u input()
。我使用的是Python3,当我放置raw\u input()时,我被告知它没有定义。这是正确的。在Python3中,input()
执行Python2中的raw\u input()
操作。您需要确保脚本是使用Python3运行的。选择一个Python版本并将其用于所有操作,以避免像这样混淆。如何卸载Python2?我只有Python27是的,我错误地使用了Python2,只是不得不更改路径以转到Python3,现在一切都正常了,谢谢大家的帮助@班尼曼很高兴知道这有帮助。
>>> print str(input("Enter your name: "))
Enter your name: __import__('os').listdir('.')
['super_secret.txt']