Correction de l'erreur EOF While Parsing in Python
SyntaxError: unexpected EOF while parsing
se produit lorsqu’un interpréteur atteint la fin d’un fichier avant d’exécuter un bloc de code.
C’est souvent le signe qu’il manque une partie du code. Nous devons localiser l’erreur syntaxique et la corriger.
Les interpréteurs Python modernes tels que Pycharm mettent souvent en évidence la section de code qui doit être corrigée. Le plus souvent, la résolution de l’erreur consiste à ajouter la section de code manquante.
L’utilisation de boucles for
nécessite souvent l’ajout de code dans le code. Le fait de ne pas ajouter de code dans le corps, vous obtiendrez l’erreur unexpected EOF while parsing
.
Les boucles for
sont souvent utilisées pour itérer sur certains itérables ; dans certains scénarios, nous pouvons échouer à ajouter du code au corps de la boucle for
. C’est l’un des scénarios qui entraînent une telle erreur.
names = ['Tesla', 'Lucid', 'Samsung']
for company in names:
Production :
File "<string>", line 14
^
SyntaxError: unexpected EOF while parsing
Selon la syntaxe Python correcte, le compilateur s’attend à exécuter du code après l’indentation.
Ce nouveau code dans le bloc d’indentation fait partie du corps de la boucle for
. Par conséquent, nous devons nous assurer que le corps de la boucle contient du code pour éviter la fin inattendue du fichier et se conformer à la syntaxe Python correcte.
Nous pouvons corriger cette erreur, comme indiqué dans le code ci-dessous.
names = ["Tesla", "Lucid", "Samsung"]
for company in names:
result = company.upper()
print(result)
Production :
TESLA
LUCID
SAMSUNG
Cette erreur peut également survenir lorsque vous travaillez avec des instructions if-else
. les instructions if
sont utilisées pour exécuter un bloc de code sur une condition donnée; le bloc indenté dans une instruction if
forme le corps de toutes les instructions if
.
En plus d’être utilisé comme délimiteur et de définir des fonctions, un deux-points complet signifie le début des blocs de code dans les instructions if
. Le fait de ne pas écrire de code dans le bloc précédant les deux-points complets entraînerait un EOF file while parsing errors
.
Vous trouverez ci-dessous un exemple montrant comment cette erreur se produit.
company_name = "tesla"
if company_name.upper() == True:
Production :
File "<string>", line 4
^
SyntaxError: unexpected EOF while parsing
Cette erreur peut être corrigée en s’assurant que l’instruction if
contient du code dans son corps, comme indiqué ci-dessous.
company_name = "tesla"
if company_name.isupper() == True:
print(company_name.lower())
else:
print(company_name.upper())
Production :
TESLA
L’interpréteur lèvera également l’erreur EOF while parsing
si aucun code n’est écrit dans le corps de l’instruction else
qui suit immédiatement une instruction if
. Cette erreur sera renvoyée même s’il existe un code valide dans le bloc d’instruction if
.
Par conséquent, les deux blocs de code doivent être complets pour écrire une instruction if-else
réussie. Sinon, nous obtiendrons l’erreur EOF while parsing
.
number = input("Please Enter a number: ")
if number % 2 == 0:
print("This is an even number:")
else:
Production :
File "<string>", line 7
^
SyntaxError: unexpected EOF while parsing
Nous devons nous assurer que l’autre partie a un corps complet pour corriger cette erreur. Certaines instructions if
ne nécessitent pas d’instructions else
; dans un tel cas, nous n’avons pas du tout besoin d’instructions else
.
number = int(input("Please Enter a number: "))
if number % 2 == 0:
print("This is a even number")
else:
print("This is not an even number")
Production :
Please Enter a number: 23
This is not an even number
Cette erreur se produit également si le corps de la boucle while
est trop défini. De même, l’erreur peut être corrigée en s’assurant que le corps de la boucle while
est fourni.
i = 10
while i < 6:
Production :
File "<string>", line 3
^
SyntaxError: unexpected EOF while parsing
L’erreur peut également survenir lors de l’utilisation de fonctions si le corps de la fonction n’est pas fourni.
Dans les grands programmes avec plusieurs fonctions, nous pouvons vouloir implémenter une fonction à l’avenir. Ainsi, il ne serait pas inutile de définir tout de suite le corps de la fonction.
Cela peut également être le cas lorsque l’on n’a pas encore décidé de sa fonctionnalité. La fonction ci-dessous est censée calculer la somme de deux nombres.
Cependant, le corps contenant les instructions indiquant ce que la fonction doit faire n’est pas déclaré. Cela entraîne une erreur, comme indiqué ci-dessous.
def add_numbers(num1, num2):
Production :
File "<string>", line 3
^
SyntaxError: unexpected EOF while parsing
Cette erreur peut être corrigée en écrivant les instructions qui définissent la fonction, comme illustré dans l’exemple ci-dessous.
def add_numbers(num1, num2):
result = num1 + num2
print(result)
add_numbers(23, 45)
Production :
68
Si on ne veut pas préciser ce que la fonction implémente, on peut aussi utiliser le mot clé pass
. L’interpréteur ignore l’instruction pass
, donc rien n’est exécuté.
Nous pouvons également utiliser cette instruction pour éviter d’exécuter des fonctions que nous ne voulons pas implémenter immédiatement. Le mot-clé pass
peut être utilisé pour éviter l’erreur EOF while parsing
, comme indiqué dans l’exemple ci-dessous.
def add_numbers(num1, num2):
pass
Production :
Un EOF inattendu lors de l’analyse peut également résulter de parenthèses manquantes dans les fonctions ou les instructions qui utilisent des parenthèses.
La fonction print et de nombreuses autres fonctions Python intégrées sont exécutées à l’aide de parenthèses. Lorsque l’on écrit du code dans l’urgence, de telles petites erreurs de syntaxe peuvent souvent être commises sans le savoir ; il en résulte l’erreur EOF while parsing
comme le montre l’exemple ci-dessous.
def say_hello():
print("Hello user welcome on board"
Production :
File "<string>", line 2
^
SyntaxError: unexpected EOF while parsing
Cette erreur ne peut être résolue qu’en s’assurant qu’aucune parenthèse n’est laissée ouverte.
Les interprètes modernes vous informent souvent qu’il y a une erreur avant de passer à la ligne suivante. Cette erreur s’étend également aux fonctions auto-définies.
L’appel incorrect de fonctions entraînerait également cette erreur. Le code ci-dessous montre qu’une manière incorrecte d’appeler une fonction auto-définie constitue un échec à utiliser les deux parenthèses.
def add_sum(num1, num2):
print(num1 + num2)
add_sum(23, 78
Production :
File "e:\CodeBerry\eoferroinpython.py", line 8
^
SyntaxError: unexpected EOF while parsing
Les tests Python try
et except
pour la présence d’erreurs dans notre code qui pourraient faire arrêter nos programmes et les gérer, respectivement.
Le bloc try
ne peut pas fonctionner comme une méthode autonome et doit toujours accompagner un bloc except
. L’utilisation du bloc try
pour tester un morceau sans spécifier de code dans le bloc except
entraîne le SyntaxError : unexpected EOF while parsing
comme indiqué ci-dessous.
number = int(input("Please enter a number:"))
def add_numbers(number):
try:
print(number + 2)
except ValueError:
Production :
File "<string>", line 7
^
SyntaxError: unexpected EOF while parsing
Isaac Tony is a professional software developer and technical writer fascinated by Tech and productivity. He helps large technical organizations communicate their message clearly through writing.
LinkedInArticle connexe - Python Error
- Correction de TabError en Python
- Correction de l'erreur Python Return Outside Function
- Correction de l'erreur String Must Be Indices en Python
- Correction de l'erreur syntaxerror: unexpected character after line continuation character en Python
- Correction de l'erreur TypeError: iteration over a 0-d array dans Python NumPy
- Correction de l'erreur TypeError: must be str, not int en Python