2013-06-23 3 views
0

У меня есть небольшая проблема с попыткой запустить программу python с терминала на моем Mac. Когда моя программа «.py» имеет вход («нажмите клавишу ввода, чтобы узнать.»). Команда указывает, что после нажатия клавиши «возврат» появляется следующее сообщение об ошибке.Ошибка при запуске Python .py файлов с терминала на Mac

Traceback (most recent call last): 
     File "word_problems.py", line 6, in <module> 
     input ("press the enter key to find out.") 
     File "<string>", line 0 

     ^
    SyntaxError: unexpected EOF while parsing 

Может кто-нибудь объяснить, где проблема?

Заранее спасибо.

+0

Возможный дубликат: [Python неожиданный EOF при разборе] (http://stackoverflow.com/questions/5074225/python-unexpected-eof-while-parsing) – djf

+0

Спасибо, я просмотрел stackoverflow, но не видел что. – joesh

ответ

1

В python 2.7, input() идентичен eval(raw_input()).

Таким образом, когда вы нажмете возвращения, вы на самом деле ввести '', а также:

>>> eval('') 
Traceback (most recent call last): 
File "<PythonForiOS-Input>", line 1, in <module> 
    File "<string>", line 0 

    ^
SyntaxError: unexpected EOF while parsing 

Вместо этого используйте raw_input().

+0

И да, для всех вас наблюдающих людей, я проверил это на своем телефоне: 3. – TerryA

+0

Хорошо, я просто протестировал его, отлично работает. – joesh

+0

@joesh не забудьте принять ответ! :) – TerryA

1

Используйте raw_input вместо ввода, когда вы хотите принять строку в качестве входного сигнала. вход принимает только выражения Python, и на них выполняется eval.

+0

Вы имеете в виду, что в моей первоначальной программе .py мне нужно предвидеть проблему и использовать «исходный вход» каждый раз, вместо обычной команды ввода? Разве нет никакого пути вокруг этого, так как это, конечно, означает, что я делаю свою программу Terminal дружественной только ...? – joesh

+0

Отлично, проверено, и оно отлично работает. Но, как я уже сказал, нет другого метода? Конечно, теперь он отлично работает в терминале, но я получаю тот же код ошибки в IDLE. Большая разница в том, что, по крайней мере, я понимаю, почему. Большое спасибо. – joesh

+0

Хорошо, я не знаю, правильно ли это, но ... Я замечаю, что если я добавлю в начале программы команду «input = raw_input», все работает нормально. Это означает, что вы можете включать и выключать его командой «#» при запуске вашей программы в зависимости от того, какой терминал или IDLE. – joesh