在进行输入时解析错误时出现意外的EOF

时间:2013-05-17 20:46:14

标签: python eof python-3.3

我有一个非常基本的程序,它接受用户输入并将其读回给用户。 代码是:

x = input("hello what is your name: ")
print("hello " + x)

这在空闲时运行时效果很好然而在运行时我通过单击文件运行它来获取命令行类型界面当我输入输入时我得到以下错误消息:

    File "C:\Users\ROB\Desktop\test.py", line 1, in (module)
         x = input("hello what is your name: ")
    File "(string)", line 0

      ^
SyntaxError: unexpected EOF while parsing

有人可以解释为什么会发生这种情况并提出一个解决方案,使我能够在命令行中接受用户输入。

2 个答案:

答案 0 :(得分:2)

您正在使用Python 2,并且在stdin已关闭的情况下执行此操作:

>>> x = input("hello what is your name: ")
hello what is your name: 
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<string>", line 0

    ^
SyntaxError: unexpected EOF while parsing

在Python 2上,改为使用raw_input(),并在终端或Windows控制台或IDLE中运行。

答案 1 :(得分:1)

另见

  

Python unexpected EOF while parsing

来自python docs(http://docs.python.org/2/library/functions.html#input):

  

<强>输入([提示])
  相当于eval(raw_input(prompt))   此功能不会捕获用户错误。如果输入语法无效,则会引发SyntaxError。如果在评估过程中出现错误,可能会引发其他异常。

     

考虑将 raw_input()功能用于用户的一般输入。