koopertrooper
koopertrooper

Reputation: 167

Why do I get this EOFError calling raw_input?

I used an online interpreter to run this code:

print "How old are you?",
age = raw_input()
print "How tall are you?",
height = raw_input()
print "How much do you weigh?",
weight = raw_input()
print "So, you're %r old, %r tall and %r heavy." % (
    age, height, weight)

I get an EOFError on line 2. Why does this happen, and how do I fix it?

Upvotes: 1

Views: 7677

Answers (1)

poke
poke

Reputation: 388383

The problem is that online interpreters usually don’t pause to allow the user to input stuff. Instead, they will use a fixed “file” as stdin from which the data is read. Unless you specify it, it will be empty, so asking for input will result in EOF since the (empty) file was already exhausted.

It is possible to specify the input data though. On ideone, you have to click the stdin button and enter the data at once. For example:

old
tall
weight

Then your script will run.

But you really should consider downloading Python yourself and running it in the command line with a normal interpreter. That way, you actually get some interactivity.

Upvotes: 4

Related Questions