我有以下python代码:
print 'This is a simple game.'
input('Press enter to continue . . .')
print 'Choose an option:'
...
但当我按回车键时,会出现以下错误:
Traceback (most recent call last):
File "E:/4.Python/temp.py", line 2, in <module>
input('Press enter to continue . . .')
File "<string>", line 0
^
SyntaxError: unexpected EOF while parsing
另外,我正在Windows7上使用PythonIdle2.6版本。
在Python 2.x中,
input()
等同于eval(raw_input())
。当您传递空字符串时,eval
会给出语法错误。你想用
raw_input()
代替。对于Python 2,您需要的是
raw_input
,而不是input
。前者会读一行。后者将读取一行并尝试执行它,如果您不希望代码被输入数据的人损坏,则不建议这样做。例如,它们可以执行类似于调用任意函数的操作,如下例所示:
如果在Python 2下运行该代码并输入
sety99()
,则输出将99
,尽管您的代码(在其正常执行流中)在任何时候都不会有意将y
设置为除零以外的任何值(它在函数中执行,但您的代码从未显式调用该函数)。原因是input(prompt)
调用等同于eval(raw_input(prompt))
。血淋淋的细节见here。
请记住,Python 3解决了这个问题。input function there的行为与您预期的一样。
在Python 2中,
input()
字符串被求值,如果它们是空的,则会引发异常。您可能需要raw_input()
(或者转到Python 3)。相关问题 更多 >
编程相关推荐