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

2 ответов


на 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,

моя синтаксическая ошибка была полускрыта в 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 было обескураживающим и, таким образом, не платил близко внимание :-( Поиск

self.)

ничего не дали. Поиск

self.

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

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

C:\Python\Anaconda3\python.исполняемый C:/Python/PycharmProjects/FlexForms/FlexForm.py Напильник "", линия Один (личность.) ^ SyntaxError: неожиданный EOF при разборе

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