I have the following python code:
print 'This is a simple game.'
input('Press enter to continue . . .')
print 'Choose an option:'
...
But when I press Enter button, I get the following error:
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
P.S. I am using python IDLE version 2.6 on Windows 7.
For Python 2, you want
raw_input
, notinput
. The former will read a line. The latter will read a line and try to execute it, not advisable if you don't want your code being corrupted by the person entering data.For example, they could do something like call arbitrary functions, as per the following example:
If you run that code under Python 2 and enter
sety99()
, the output will99
, despite the fact that at no point does your code (in its normal execution flow) purposefully sety
to anything other than zero (it does in the function but that function is never explicitly called by your code). The reason for this is that theinput(prompt)
call is equivalent toeval(raw_input(prompt))
.See here for the gory details.
Keep in mind that Python 3 fixes this. The input function there behaves as you would expect.
In Python 2,
input()
strings are evaluated, and if they are empty, an exception is raised. You probably wantraw_input()
(or move on to Python 3).If you use
input
on Python 2.x, it is interpreted as a Python expression, which is not what you want. And since in your case, the string is empty, an error is raised.What you need is
raw_input
. Use that and it will return a string.In Python 2.x,
input()
is equivalent toeval(raw_input())
. Andeval
gives a syntax error when you pass it an empty string.You want to use
raw_input()
instead.