Ошибка EOF Python raw_input()

Я использую Learn Python the Hard Way Зеда Шоу.

В упражнении 11 код выдает ошибку EOF в строке 2. Вот код:

1  print "How old are you?",
2  age = raw_input()
3  print "How tall are you?",
4  height = raw_input()
5  print "How much do you weigh?",
6  weight = raw_input()
7  print "So, you're %r old, %r tall and %r heavy." % (
       age, height, weight)

Я искал StackOverflow, Google и форум Hacker News. Я не смог найти ответа, который (а) решил эту проблему и (б) я мог понять.

Я использую компилятор python на ideone.com (также пробовал два других онлайн-компилятора, и ни один из них не работал).

(Прочитайте это, но не смогли применить: Ошибка Python EOF в raw_input() ).


person koopertrooper    schedule 15.04.2014    source источник
comment
Да, онлайн-переводчики почти никогда не работают для таких вещей. Почему бы вам просто не скачать IDE?   -  person anon582847382    schedule 15.04.2014
comment
Спасибо Алексей, так и сделаю! Мне понравилась идея иметь легкий доступ к коду компилятора онлайн, куда бы я ни пошел. Думаю, я могу просто использовать Dropbox и т. д.   -  person koopertrooper    schedule 15.04.2014


Ответы (1)


Проблема в том, что онлайн-переводчики обычно не делают пауз, чтобы пользователь мог ввести данные. Вместо этого они будут использовать фиксированный «файл» в качестве stdin, из которого считываются данные. Если вы не укажете его, он будет пустым, поэтому запрос ввода приведет к EOF, поскольку (пустой) файл уже исчерпан.

Однако можно указать входные данные. В ideone нужно нажать кнопку stdin и сразу ввести данные. Например:

old
tall
weight

Затем ваш скрипт запустится.

Но вам действительно следует подумать о том, чтобы загрузить Python самостоятельно и запустить его в командной строке с помощью обычного интерпретатора. Таким образом, вы действительно получаете некоторую интерактивность.

person poke    schedule 15.04.2014