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
Решение

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

Изглежда, че сте изпълнявали програмата си ред по ред в конзолата на ipython. Това работи за единични изречения като a = 3, но не и за блокове от код като for цикли. Вижте следния пример:

In [1]: for i in range(100):
  File "", 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,
Коментари (0)

Грешката ми в синтаксиса беше полускрита в символен низ 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.exe C:/Python/PycharmProjects/FlexForms/FlexForm.py Файл "", линия 1 (self.) ^ SyntaxError: unexpected EOF while parsing

Процесът завърши с код за изход 1

Коментари (0)

Ето една от моите грешки, която доведе до това изключение: Имах блок try без никакви блокове except или finally. Това няма да работи:

try:
    lets_do_something_beneficial()

За да поправите това, добавете блок except или finally:

try:
    lets_do_something_beneficial()
finally:
    lets_go_to_sleep()
Коментари (0)