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
Ответы
Ответ 1
SyntaxError: unexpected EOF while parsing
означает, что конец вашего исходного кода был достигнут до того, как все блоки кода были завершены. Блок кода начинается с оператора, подобного for я 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,
Ответ 2
Моя синтаксическая ошибка была полускрыта в 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 (self.) ^ SyntaxError: неожиданный EOF при разборе
Процесс завершен с кодом выхода 1
Ответ 3
Это может также просто означать, что вы пропустили или у вас слишком много скобок. Например, это слишком много и приведет к неожиданному EOF:
print(9, not (a==7 and b==6)
Ответ 4
Вот одна из моих ошибок, которая вызвала это исключение: у меня был блок try
без каких-либо блоков except
или finally
. Это не будет работать:
try:
lets_do_something_beneficial()
Чтобы это исправить, добавьте except
или finally
блок:
try:
lets_do_something_beneficial()
finally:
lets_go_to_sleep()
Ответ 5
Это 2 пробела на начальном для цикла и должен быть 4 или табуляцией.
Ответ 6
elec_and_weather['DEMAND_t-%i'% k] = np.zeros(len(elec_and_weather['DEMAND']))'
Ошибка появляется в конце строки, где у вас есть знак ('); эта ошибка всегда означает, что у вас есть синтаксическая ошибка.