Primesc o eroare în timp ce rulează această parte a codului. am încercat unele dintre soluțiile existente, niciuna dintre ele nu a ajutat
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']))'
Primesc mereu această eroare
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
Eroare de sintaxă SyntaxError: unexpected EOF while parsing
înseamnă că s-a ajuns la sfârșitul codului sursă înainte ca toate blocurile de cod să fie finalizate. Un bloc de cod începe cu o instrucțiune de genul for i in range(100):
și necesită cel puțin o linie ulterioară care să conțină codul care ar trebui să se afle în el.
Se pare că ați executat programul dvs. linie cu linie în consola ipython. Acest lucru funcționează pentru declarații unice precum a = 3
, dar nu și pentru blocuri de cod precum buclele for. Consultați următorul exemplu:
In [1]: for i in range(100):
File "<ipython-input-1-ece1e5c2587f>", line 1
for i in range(100):
^
SyntaxError: unexpected EOF while parsing
Pentru a evita această eroare, trebuie să introduceți întregul bloc de cod ca o singură intrare:
In [2]: for i in range(5):
...: print(i, end=', ')
0, 1, 2, 3, 4,
Eroarea mea de sintaxă a fost semi-ascunsă într-un f-string
print(f'num_flex_rows = {self.}\nFlex Rows = {flex_rows}\nMax elements = {max_elements}')
ar trebui să fie
print(f'num_flex_rows = {self.num_rows}\nFlex Rows = {flex_rows}\nMax elements = {max_elements}')
Nu a avut linia roșie de verificare ortografică PyCharm sub eroare.
Mi-a dat un indiciu, dar când am căutat pe acest mesaj de eroare, bineînțeles că nu a găsit eroarea în acea bucată de cod de mai sus.
Dacă m-aș fi uitat mai atent la mesajul de eroare, aș fi găsit '
self.)
nu a dat nimic. Căutarea pentru
self.
a dat practic totul :-\
Dacă te pot ajuta să eviți chiar și un minut în plus de deskchecking al codului tău, atunci misiune îndeplinită :-)
C:\Python\Anaconda3\python.exe C:/Python/PycharmProjects/FlexForms/FlexForm.py File "
", linia 1 (self.) ^ SyntaxError: EOF neașteptat în timpul parsării Procesul s-a încheiat cu codul de ieșire 1
Iată una dintre greșelile mele care a produs această excepție: Am avut un bloc try
fără niciun bloc except
sau finally
. Acest lucru nu va funcționa:
try:
lets_do_something_beneficial()
Pentru a rezolva acest lucru, adăugați un bloc except
sau finally
:
try:
lets_do_something_beneficial()
finally:
lets_go_to_sleep()