SyntaxError: onverwachte EOF tijdens het parseren

Ik krijg een foutmelding bij het uitvoeren van dit deel van de code. Ik heb enkele van de bestaande oplossingen geprobeerd, maar geen enkele 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 altijd 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

Antwoord 1, autoriteit 100%

De SyntaxError: unexpected EOF while parsing betekent dat het einde van je broncode werd bereikt voordat alle codeblokken waren voltooid. Een codeblok begint met een statement als for i in range(100): en vereist daarna minstens één regel die code bevat die erin zou moeten staan.

Het lijkt alsof u uw programma regel voor regel in de ipython-console uitvoert. Dit werkt voor enkelvoudige instructies zoals a = 3 maar niet voor codeblokken zoals for-lussen. Zie het volgende voorbeeld:

In [1]: for i in range(100):
  File "<ipython-input-1-ece1e5c2587f>", line 1
    for i in range(100):
                        ^
SyntaxError: unexpected EOF while parsing

Om deze fout te voorkomen, moet u het hele codeblok als een enkele invoer invoeren:

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

Antwoord 2, autoriteit 67%

Dit kan ook betekenen dat je haakjes mist of te veel haakjes hebt. Dit heeft bijvoorbeeld te veel, en zal resulteren in onverwachte EOF:

print(9, not (a==7 and b==6)

Antwoord 3, autoriteit 11%

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 spellingcontrole-rode regel onder de fout.

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

Als ik de foutmelding beter had bekeken, had ik de ” in de foutmelding gevonden. Lijn 1 zien was ontmoedigend en lette dus niet goed op 🙁 Zoeken naar

zelf.)

leverde niets op. Zoeken naar

zelf.

heeft praktisch alles opgeleverd :-\

Als ik je kan helpen om zelfs maar een minuut langer te hoeven controleren van je code, dan is je missie geslaagd 🙂

C:\Python\Anaconda3\python.exe
C:/Python/PycharmProjects/FlexForms/FlexForm.py-bestand “”,
regel 1
(mijzelf.)

^ SyntaxError: onverwachte EOF tijdens het ontleden

Proces voltooid met afsluitcode 1


Antwoord 4, autoriteit 8%

Dit is een van mijn fouten die deze uitzondering veroorzaakte: ik had een try-blok zonder except of finally-blokken. Dit werkt niet:

try:
    lets_do_something_beneficial()

Om dit op te lossen, voegt u een except of finally toe:

try:
    lets_do_something_beneficial()
finally:
    lets_go_to_sleep()

Antwoord 5, autoriteit 3%

Er zijn enkele gevallen die tot dit probleem kunnen leiden, als het zich in het midden van de code voordoet, is het "IndentationError: Expected a indented block" of “SyntaxError: ongeldige syntaxis”, als het op de laatste regel staat, kan het “SyntaxError: onverwachte EOF tijdens het ontleden”:

Het hoofdgedeelte van “if”, “terwijl” en “voor” ontbreekt verklaring –>

root@nest:~/workplace# cat test.py
l = [1,2,3]
for i in l:
root@nest:~/workplace# python3 test.py
  File "test.py", line 3
               ^
SyntaxError: unexpected EOF while parsing

Niet-gesloten haakjes (vooral in complexe geneste toestanden)–>

root@nest:~/workplace# cat test.py
l = [1,2,3]
print( l
root@nest:~/workplace# python3 test.py
  File "test.py", line 3
            ^
SyntaxError: unexpected EOF while parsing

Antwoord 6, autoriteit 2%

Ik ben deze fout tegengekomen bij het eval van een lege string.
bijvoorbeeld:

query = eval(req.body)

Ik heb in plaats daarvan json.loads() gebruikt en de fout was verdwenen.


Antwoord 7

elec_and_weather['DEMAND_t-%i'% k] = np.zeros(len(elec_and_weather['DEMAND']))'

De fout komt aan het einde van de regel waar het teken (‘) staat; deze fout betekent altijd dat je een syntaxisfout hebt.

LEAVE A REPLY

Please enter your comment!
Please enter your name here

fifteen + fifteen =

Other episodes