在Python 3.4中使用input()时的NameError

时间:2015-07-05 18:46:33

标签: python command command-prompt nameerror

我是一名新的Python用户,我一直在研究许多教程。这包括从命令提示符运行一些代码。当我第一次测试代码时这很好用,但由于某种原因它似乎已停止工作,我现在在使用Input()时遇到错误。我已经包含了下面的代码和我收到的错误消息。

代码:

   import sys
print (sys.version)

print("hello world")
myName = input("What is your name?")
print(myName)

if (myName == "Matt"):
    print("Matt is great!")
elif (myName == "Bob"):
    print("Bob is ok")
else:
    print("Hello world")

input("Press enter to continue")

错误讯息:

C:\Users\matt.xxxx>cd C:\Python34\Scripts\Projects

C:\Python34\Scripts\Projects>helloworld.py
2.7.7 (default, Jun  1 2014, 14:21:57) [MSC v.1500 64 bit (AMD64)]
hello world
What is your name?Matt
Traceback (most recent call last):
  File "C:\Python34\Scripts\Projects\helloworld.py", line 6, in <module>
    myName = input("What is your name?")
  File "<string>", line 1, in <module>
NameError: name 'Matt' is not defined

C:\Python34\Scripts\Projects>

我知道在使用旧版本的python时可能会发生这种情况,但我已经检查过,我相当确定我使用的是3.4版本(使用import sys等检查)。我最近安装了PyCharm,这是我能想到的唯一改变的东西。该代码适用于PyCharm和IDLE,但不适用于命令提示符。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

从您的示例中,我相信您正在使用 - helloworld.py运行脚本 - 这会导致Windows查找与扩展程序.py关联的默认应用程序并运行它。

我猜你安装PyCharm时,它以某种方式使Python 2.7.7成为.py文件的默认应用程序(或者从一开始就是这样)所以当你直接运行{{1}时他们使用Python 2.7.7运行文件(甚至从命令提示符开始)。

您在评论中说,直接从命令提示符运行.py时,您将获得python 3.4,因此解决问题的最简单方法是使用它来运行脚本。

使用命令 -

运行它
python

作为长期解决方案,您可能需要考虑更改与python helloworld.py 文件关联的默认应用程序。您可以查看this link以获取有关如何操作的指南