【问题标题】:NameError when using input() with Python 3.4在 Python 3.4 中使用 input() 时出现 NameError
【发布时间】:2015-09-22 21:18:06
【问题描述】:

我是一个新的 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,但不适用于命令提示符。任何帮助将不胜感激。

【问题讨论】:

  • 您能否在脚本中使用 -import sys; print(sys.version) 的输出来更新问题?
  • 嗨,阿南德。谢谢你快速的回复。当我使用 print(sys.version) 运行代码时,它实际上说的是 2.7.7???但是,当我从命令提示符加载 Python 时检查版本时,情况并非如此。这有意义吗。我不知道我的机器上什至有 2.7.7!你知道如何确保使用 3.4 吗?
  • 您用于运行脚本的确切命令是什么?
  • 你的命令提示符中echo %PATH%的结果是什么
  • 代码和输出已更新

标签: python command command-prompt nameerror


【解决方案1】:

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

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

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

使用命令运行它-

python helloworld.py

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-10
    • 2015-12-10
    • 1970-01-01
    相关资源
    最近更新 更多