Python unexpected EOF while parsing
Python unexpected EOF while parsing
Use raw_input
instead of input
🙂
If you use
input
, then the data you
type is is interpreted as a Python
Expression which means that you
end up with gawd knows what type of
object in your target variable, and a
heck of a wide range of exceptions
that can be generated. So you should
NOT useinput
unless youre putting
something in for temporary testing, to
be used only by someone who knows a
bit about Python expressions.
raw_input
always returns a string
because, heck, thats what you always
type in … but then you can easily
convert it to the specific type you
want, and catch the specific
exceptions that may occur. Hopefully
with that explanation, its a
no-brainer to know which you should
use.
Note: this is only for Python 2. For Python 3, raw_input()
has become plain input()
and the Python 2 input()
has been removed.
Indent it! first. That would take care of your SyntaxError
.
Apart from that there are couple of other problems in your program.
-
Use
raw_input
when you want accept string as an input.input
takes only Python expressions and it does aneval
on them. -
You are using certain 8bit characters in your script like
0°
. You might need to define the encoding at the top of your script using# -*- coding:latin-1 -*-
line commonly called as coding-cookie. -
Also, while doing str comparison, normalize the strings and compare. (people using lower() it) This helps in giving little flexibility with user input.
-
I also think that reading Python tutorial might helpful to you. 🙂
Sample Code
#-*- coding: latin1 -*-
while 1:
date=raw_input(Example: March 21 | What is the date? )
if date.lower() == march 21:
....
Python unexpected EOF while parsing
I had this error, because of a missing closing parenthesis on a line.
I started off having an issue with a line saying:
invalid syntax (<string>, line ...)?
at the end of my script.
I deleted that line, then got the EOF message.