python错误'NameError:name''未定义'python 2.7.12

时间:2016-10-15 09:07:09

标签: python

使用python 2.7.12 im使用一个简单的程序:

import time
print('Whats Your Name?')
name=input()
print('Happy Birthday to You')
time.sleep(1.5)
print('Happy Birthday to You')
time.sleep(1.8)
print('Happy Birthday Dear '+name)
time.sleep(2)
print('Happy Birthday to You')
time.sleep(1.5)

然而,当我尝试输入名字时,我得到了这个:

你的名字是什么? 杰夫

Traceback (most recent call last):
  File "E:\Python\happybirthday.py", line 3, in <module>
    name=input()
  File "<string>", line 1, in <module>
NameError: name 'Jeff' is not defined

为什么呢?这似乎发生在需要输入的每个程序上。

4 个答案:

答案 0 :(得分:1)

input更改为raw_input,返回一个字符串。

在Python上2.x input尝试评估其输入,而raw_input返回一个字符串。在Python 3 input上取代raw_input

答案 1 :(得分:1)

在使用Python 2.x时,您需要使用raw_input()而不是input()

在Python 2.x中input()将尝试评估您的输入,而raw_input()将返回您可以使用的字符串。

希望这有帮助!

答案 2 :(得分:0)

如果您想根据用户输入的内容将字符串传递到name,则应使用raw_input()代替input()

答案 3 :(得分:0)

raw_input()input()之间的差异:

在Python2.x中:

input()正在寻找表达。

如果您将1+1提交给input(),它会对其进行评估并返回2
jeff不是表达式,会引发错误 如果输入为"jeff"'jeff'input()将返回相同的字符串。

raw_input()正在寻找字符串。

如果您将1+1提交给raw_input(),则会返回"1+1"(字符串)。
如果您将jeff提交给raw_input(),则会返回"jeff"

在Python3.x中:

raw_input()重命名为input()raw_input()已删除。