问候计划

时间:2011-10-12 23:45:08

标签: python eclipse if-statement new-operator pydev

我一直在学习如何使用“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    

3 个答案:

答案 0 :(得分:9)

使用raw_input代替input

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