在Python中运行简单输入任务时出错

时间:2016-01-30 06:17:33

标签: python

我正在尝试运行这些简单的Python代码:

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

if (myName == 'Omar'):
    print ("Omar is great!")
else:
    print ("You are ok")

如果我使用IDLE运行它会运行正常,但是一旦我把它放在带有“.py”扩展名的文本文件中,我得到以下输出和错误:

What is your name?omar
Traceback (most recent call last):
  File "hello.py", line 2, in <module>
    myName = input("What is your name?")
  File "<string>", line 1, in <module>
NameError: name 'omar' is not defined

我不知道错误状态需要定义'omar',即使'omar'只是一个字符串输入。

非常感谢帮助,谢谢。

3 个答案:

答案 0 :(得分:2)

使用raw_input

myName = raw_input("What is your name?")

input在python 3中使用,其python 2等效于raw_input。 python 2中的input通过调用raw_input来包裹eval,这是您错误的来源。大概你在使用IDLE和命令提示符的不同版本时却没有意识到它。

如果你需要一个跨python解决方案,你可能想看看这个问题How do I use raw_input in Python 3

答案 1 :(得分:0)

看起来你的IDLE被配置为使用python 3,它对input()函数有很好的行为,但是你从命令行运行python 2。在python 2中,input没有达到您的预期,您应该使用raw_input。 (raw_input将输入作为字符串返回,这是您想要的)

答案 2 :(得分:0)

#this is a way of using raw_input
pswrd = raw_input("enter the password ")
if pswrd == "im cool": print "you may pass"