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 you're 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, that's 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, it's 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": ....
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.