SyntaxError: onverwachte EOF tijdens parsing

Ik krijg een fout bij het uitvoeren van dit deel van de code. Ik heb een aantal van de bestaande oplossingen geprobeerd, maar geen van hen hielp

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']))'

Ik krijg steeds deze foutmelding

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
Oplossing

De SyntaxError: unexpected EOF while parsing betekent dat het einde van uw broncode is bereikt voordat alle codeblokken waren voltooid. Een code blok begint met een statement als for i in range(100): en heeft daarna minstens één regel nodig die code bevat die erin hoort te staan.

Het lijkt erop dat u uw programma regel voor regel uitvoerde in de ipython console. Dit werkt voor enkele statements zoals a = 3 maar niet voor code blokken zoals for loops. Zie het volgende voorbeeld:

In [1]: for i in range(100):
  File "", line 1
    for i in range(100):
                        ^
SyntaxError: unexpected EOF while parsing

Om deze fout te vermijden, moet je het hele codeblok als een enkele invoer invoeren:

In [2]: for i in range(5):
   ...:     print(i, end=', ')
0, 1, 2, 3, 4,
Commentaren (0)

Mijn syntaxisfout was half verborgen in een f-string

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

zou moeten zijn

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

Het had niet de PyCharm spelling-controle-rode lijn onder de fout.

Het gaf me wel een hint, maar toen ik op deze foutmelding zocht, vond het natuurlijk niet de fout in dat stukje code hierboven.

Als ik beter naar de foutmelding had gekeken, zou ik de '' in de fout gevonden hebben. Het zien van regel 1 was ontmoedigend en dus was ik niet goed aan het opletten :-( Zoeken naar

self.)

leverde niets op. Zoeken naar

self.

leverde bijna alles op.

Als ik je kan helpen om ook maar een minuut langer deskchecken van je code te vermijden, dan is je missie geslaagd :-)

C:Python-Anaconda3python.exe C:/Python/PycharmProjects/FlexForms/FlexForm.py File "", regel 1 (self.) ^ SyntaxError: onverwachte EOF tijdens parsing

Proces beëindigd met exit code 1

Commentaren (0)

Hier is een van mijn fouten die deze uitzondering veroorzaakte: Ik had een try blok zonder except of finally blokken. Dit zal niet werken:

``py try: lets_do_something_beneficial()


Om dit op te lossen, voeg een `except` of `finally` blok toe:

``py
proberen:
    lets_do_something_beneficial()
finally:
    lets_go_to_sleep()
Commentaren (0)