SyntaxError: неожиданный EOF во время синтаксического анализа

Я получаю сообщение об ошибке при выполнении этой части кода. Я пробовал некоторые из существующих решений, но ни одно из них не помогло.

elec_and_weather = pd.read_csv(r'C:\HOUR.csv', parse_dates=True,index_col=0)
# Add historic DEMAND to each X vector
 for i in range(0,24):
    elec_and_weather[i] = np.zeros(len(elec_and_weather['DEMAND']))
    elec_and_weather[i][elec_and_weather.index.hour==i] = 1
# Set number of hours prediction is in advance
n_hours_advance = 24

# Set number of historic hours used
n_hours_window = 24

for k in range(n_hours_advance,n_hours_advance+n_hours_window):
    elec_and_weather['DEMAND_t-%i'% k] = np.zeros(len(elec_and_weather['DEMAND']))'

Я всегда получаю такую ​​ошибку:

for i in range(0,24):
File "<ipython-input-29-db3022a769d1>", line 1
for i in range(0,24):
                     ^
SyntaxError: unexpected EOF while parsing

File "<ipython-input-25-df0a44131c36>", line 1
    for k in range(n_hours_advance,n_hours_advance+n_hours_window):
                                                                   ^
SyntaxError: unexpected EOF while parsing

person Akash Joshi    schedule 03.04.2017    source источник
comment
Что вы имеете в виду, говоря, что я пробовал использовать отступы?   -  person Sembei Norimaki    schedule 03.04.2017
comment
спасибо за правки   -  person Akash Joshi    schedule 03.04.2017
comment
Теперь код снова в беспорядке. Пожалуйста, сделайте отступ правильно. Ваш текущий код (в том виде, в котором он есть сейчас) завершится ошибкой в ​​строке 3 из-за неправильного отступа. Я исправил синтаксис вашего кода один раз, но вы снова его отредактировали, снова сделав его некорректным.   -  person Sembei Norimaki    schedule 03.04.2017
comment
очень жаль   -  person Akash Joshi    schedule 03.04.2017
comment
Вы используете ноутбук ipython / jupyter или консоль ipython?   -  person Felix    schedule 03.04.2017
comment
Я использую ipython.   -  person Akash Joshi    schedule 03.04.2017


Ответы (7)


SyntaxError: unexpected EOF while parsing означает, что конец вашего исходного кода был достигнут до того, как были завершены все блоки кода. Блок кода начинается с такого оператора, как for i in range(100):, и после него требуется хотя бы одна строка, содержащая код, который должен быть в нем.

Похоже, вы выполняли свою программу построчно в консоли ipython. Это работает для отдельных операторов, таких как a = 3, но не для блоков кода, таких как циклы. См. Следующий пример:

In [1]: for i in range(100):
  File "<ipython-input-1-ece1e5c2587f>", line 1
    for i in range(100):
                        ^
SyntaxError: unexpected EOF while parsing

Чтобы избежать этой ошибки, вы должны ввести весь блок кода как один ввод:

In [2]: for i in range(5):
   ...:     print(i, end=', ')
0, 1, 2, 3, 4,
person Felix    schedule 03.04.2017
comment
Я был сбит с толку, потому что в Терминале предполагается, что команда не завершена, но на консоли отладчика, похоже, действительно не то же самое. - person Bersan; 31.03.2021
comment
в python3.9 это возвращает IndentationError: expected an indented block - person Geoff Langenderfer; 09.05.2021

Это также может означать, что вы отсутствуете или используете слишком много круглых скобок. Например, их слишком много, и это приведет к неожиданному EOF:

print(9, not (a==7 and b==6)
person Mike G    schedule 01.07.2019

Моя синтаксическая ошибка была наполовину скрыта в строке f

 print(f'num_flex_rows = {self.}\nFlex Rows = {flex_rows}\nMax elements = {max_elements}')

должно быть

 print(f'num_flex_rows = {self.num_rows}\nFlex Rows = {flex_rows}\nMax elements = {max_elements}')

Под ошибкой не было красной линии проверки орфографии PyCharm.

Это дало мне ключ к разгадке, но когда я искал это сообщение об ошибке, он, конечно, не нашел ошибки в этом фрагменте кода выше.

Если бы я более внимательно посмотрел на сообщение об ошибке, я бы нашел "" в ошибке. Линия 1 обескураживала и поэтому не обращала пристального внимания :-( Поиск

себя.)

ничего не дало. В поисках

себя.

дали практически все: - \

Если я могу помочь вам хотя бы на минуту избежать проверки вашего кода, тогда миссия выполнена :-)

C: \ Python \ Anaconda3 \ python.exe C: /Python/PycharmProjects/FlexForms/FlexForm.py Файл "", строка 1 (сам.) ^ SyntaxError: неожиданный EOF во время синтаксического анализа

Процесс завершен с кодом выхода 1

person Mike from PSG    schedule 13.12.2017
comment
Но почему он говорит об ошибке в строке 1? Это так раздражает. - person Ekrem Dinçel; 06.05.2020
comment
Я никогда не думал об этом. На самом деле это может быть ключом к разгадке. Я только что сделал ту же ошибку в файле, который редактирую. Если вы растянете мое сообщение об ошибке, чтобы оно не было упаковано, вы увидите, что в нем говорится, что ошибка находится в «Строке файла 1». В файле, который я сейчас редактирую, я сделал плохую f-строку, и на этот раз я получил другую ошибку: File ‹fstring›, строка 1. Так, по крайней мере, он говорит мне, что это f-строка. Я не лучший специалист в области Python. Я предполагаю, что он обрабатывает f-строку файловым образом, что бы это ни значило (извините, я действительно растягиваю). - person Mike from PSG; 06.05.2020

Вот одна из моих ошибок, которая привела к этому исключению: у меня был блок try без каких-либо блоков except или finally. Так не пойдет:

try:
    lets_do_something_beneficial()

Чтобы исправить это, добавьте блок except или finally:

try:
    lets_do_something_beneficial()
finally:
    lets_go_to_sleep()
person Eerik Sven Puudist    schedule 15.04.2019

Есть некоторые случаи, которые могут привести к этой проблеме, если она возникла в середине кода, это будет IndentationError: ожидается блок с отступом или SyntaxError: недопустимый синтаксис, если это в последней строке, это может быть SyntaxError: неожиданный EOF при синтаксическом анализе :

Отсутствует тело оператора if, whileandfor - ›

root@nest:~/workplace# cat test.py
l = [1,2,3]
for i in l:
root@nest:~/workplace# python3 test.py
  File "test.py", line 3

               ^
SyntaxError: unexpected EOF while parsing

Незакрытые скобки (особенно в сложных вложенных состояниях) - ›

root@nest:~/workplace# cat test.py
l = [1,2,3]
print( l
root@nest:~/workplace# python3 test.py
  File "test.py", line 3

            ^
SyntaxError: unexpected EOF while parsing
person tinyhare    schedule 14.05.2020

Я столкнулся с этой ошибкой при попытке eval пустую строку. Например:

query = eval(req.body)

Вместо этого я использовал json.loads(), и ошибка исчезла.

person decoder    schedule 28.05.2021

elec_and_weather['DEMAND_t-%i'% k] = np.zeros(len(elec_and_weather['DEMAND']))'

Ошибка появляется в конце строки, где стоит знак ('); эта ошибка всегда означает, что у вас есть синтаксическая ошибка.

person Prince Vijay    schedule 19.06.2019