我正在尝试运行这些简单的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'只是一个字符串输入。
非常感谢帮助,谢谢。
答案 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"