web-dev-qa-db-fra.com

SyntaxError: EOF inattendu lors de l'analyse

Je reçois une erreur en exécutant cette partie du code. essayé certaines des solutions existantes, aucune d’entre elles n’a aidé

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

Je reçois toujours cette erreur

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
20
Akash Joshi

Le SyntaxError: unexpected EOF while parsing signifie que la fin de votre code source a été atteinte avant la fin de tous les blocs de code. Un bloc de code commence par une instruction du type for i in range(100): et nécessite au moins une ligne contenant le code qui devrait y figurer.

Il semble que vous exécutiez votre programme ligne par ligne dans la console ipython. Cela fonctionne pour les instructions simples comme a = 3 mais pas pour les blocs de code comme pour les boucles for. Voir l'exemple suivant:

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

Pour éviter cette erreur, vous devez entrer le bloc de code entier en une seule entrée:

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

Mon erreur de syntaxe était à moitié cachée dans une chaîne f

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

devrait être

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

La ligne rouge de vérification orthographique de PyCharm ne contenait pas l'erreur.

Cela m’a donné un indice, mais quand j’ai cherché ce message d’erreur, il n’a bien sûr pas trouvé l’erreur dans le bit de code ci-dessus.

Si j'avais regardé de plus près le message d'erreur, j'aurais trouvé le "" dans l'erreur. Voir la ligne 1 était décourageant et ne faisait donc pas très attention :

soi.)

rien cédé. À la recherche de

soi.

a presque tout donné: - \

Si je peux vous aider à éviter encore une minute de deskchecking votre code, alors mission accomplie :-)

C:\Python\Anaconda3\python.exe C: /Python/PycharmProjects/FlexForms/FlexForm.py Fichier "", --- (ligne 1 (self.) ^ SyntaxError: imprévu EOF lors de l'analyse

Processus terminé avec le code de sortie 1

5
MikeyB

Cela peut simplement signifier également que vous manquez ou que vous avez trop de parenthèses. Par exemple, il y en a trop et cela entraînera un EOF inattendu:

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

Voici une de mes erreurs qui a produit cette exception: j'avais un bloc try sans aucun bloc except ou finally. Cela ne fonctionnera pas:

try:
    lets_do_something_beneficial()

Pour résoudre ce problème, ajoutez un bloc except ou finally:

try:
    lets_do_something_beneficial()
finally:
    lets_go_to_sleep()
1
Eerik Sven Puudist

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

L'erreur vient à la fin de la ligne où vous avez le signe ('); cette erreur signifie toujours que vous avez une erreur de syntaxe.

0
Prince Vijay

Il est de 2 espaces sur la boucle initiale et doit être 4 ou un onglet.

0
Awesometntman9