SyntaxError: unerwartetes EOF beim Parsen

Ich erhalte einen Fehler, wenn ich diesen Teil des Codes ausführe. Ich habe einige der vorhandenen Lösungen ausprobiert, aber keine von ihnen hat geholfen

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

Ich erhalte immer diesen Fehler

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
Lösung

Der SyntaxError: unexpected EOF while parsing bedeutet, dass das Ende Ihres Quellcodes erreicht wurde, bevor alle Codeblöcke abgeschlossen waren. Ein Codeblock beginnt mit einer Anweisung wie for i in range(100): und benötigt danach mindestens eine Zeile, die Code enthält, der darin enthalten sein sollte.

Es scheint, als ob du dein Programm Zeile für Zeile in der ipython-Konsole ausführst. Das funktioniert für einzelne Anweisungen wie a = 3, aber nicht für Codeblöcke wie for-Schleifen. Siehe das folgende Beispiel:

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

Um diesen Fehler zu vermeiden, müssen Sie den gesamten Codeblock als eine einzige Eingabe eingeben:

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

Mein Syntaxfehler war halb versteckt in einer f-Zeichenkette

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

sollte sein

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

Die rote PyCharm-Rechtschreibprüfung-Zeile unter dem Fehler fehlte.

Es gab mir zwar einen Hinweis, aber als ich nach dieser Fehlermeldung suchte, fand es natürlich nicht den Fehler in dem obigen Codeabschnitt.

Hätte ich mir die Fehlermeldung genauer angesehen, hätte ich den 'fstring>' im Fehler gefunden. Der Anblick von Zeile 1 war entmutigend und deshalb habe ich nicht so genau hingesehen :-( Bei der Suche nach

self.)

erbrachte nichts. Die Suche nach

self.

erbrachte praktisch alles :-\

Wenn ich Ihnen helfen kann, auch nur eine Minute längeres Deskchecking Ihres Codes zu vermeiden, dann ist die Mission erfüllt :-)

C:\Python\Anaconda3\python.exe

C:/Python/PycharmProjects/FlexForms/FlexForm.py Datei "", Zeile 1 (self.) ^ SyntaxError: unerwartetes EOF beim Parsen

Prozess beendet mit Exit Code 1

Kommentare (0)

Hier ist einer meiner Fehler, der zu dieser Ausnahme führte: Ich hatte einen try-Block ohne irgendwelche except- oder finally-Blöcke. Das wird nicht funktionieren:

``py try: lets_do_something_beneficial()


Um dies zu beheben, fügen Sie einen `except` oder `finally` Block hinzu:

```py
try:
    lets_do_something_beneficial()
finally:
    lets_go_to_sleep()
Kommentare (0)