我一直在学习如何使用“Python绝对初学者指南”一书在Python中编程。我遇到的问题是,当使用eclipse-pydev
时,它不允许我使用if
语句。这是我写的代码......
name = input("What is your name? ")
print(name)
print("Hello" name )
结果是
What is your name? caleb
Traceback (most recent call last):
File "/Users/calebmatthias/Document/workspace/de.vogella.python.first/simpprogram.py", line 6, in <module>
name = input("What is your name? ")
File "/Users/calebmatthias/Desktop/eclipse 2/plugins/org.python.pydev_2.2.3.2011100616/PySrc/pydev_sitecustomize/sitecustomize.py", line 210, in input
return eval(raw_input(prompt))
File "<string>", line 1, in <module>
NameError: name 'caleb' is not defined
当我做if
陈述时,我把
name = input("What is your name? ")
if name == ("Caleb"):
print(" Hello Bud!")
结果是
What is your name? Caleb
Traceback (most recent call last):
File "/Users/calebmatthias/Document/workspace/de.vogella.python.first/simpprogram.py", line 6, in <module>
name = input("What is your name? ")
File "/Users/calebmatthias/Desktop/eclipse 2/plugins/org.python.pydev_2.2.3.2011100616/PySrc/pydev_sitecustomize/sitecustomize.py", line 210, in input
return eval(raw_input(prompt))
File "<string>", line 1, in <module>
NameError: name 'Caleb' is not defined
答案 0 :(得分:9)
Python开发人员可能应该重命名这些功能,以便更清晰,初学者不会那么容易混淆。
当您使用caleb
在提示符中键入input
时,它会尝试评估看起来像变量的caleb
。变量caleb
尚未定义,因此它引发了异常。
答案 1 :(得分:4)
原因是您正在使用input
函数,该函数期望用户输入可以计算为python表达式的字符串。尝试将其更改为raw_input
,它不会尝试评估,而是为您提供原始字符串。
另外,尝试执行以下打印语句:print "Hello", name
您在第一个示例中缺少逗号sep。
答案 2 :(得分:3)
>>> help(input)
input([prompt]) -> value
Equivalent to eval(raw_input(prompt)).
使用raw_input
。