Messages d'erreur

1.6 Messages d'erreur

Objectifs d'apprentissage

À la fin de cette section, vous devriez être capable de :

  • Identifier le type d'erreur et le numéro de ligne dans les messages d'erreur.
  • Corriger les erreurs de syntaxe, les erreurs de nom et les erreurs d'indentation.

Comment lire les erreurs

Faire des erreurs fait naturellement partie de la programmation. Même les programmeurs expérimentés font des erreurs en écrivant du code. Des erreurs peuvent survenir lorsque des fautes sont commises lors de l'écriture du code. L'ordinateur a besoin d'instructions très précises lui indiquant ce qu'il doit faire. Si les instructions ne sont pas claires, l'ordinateur ne sait pas quoi faire et renvoie une erreur.

Lorsqu'une erreur survient, Python affiche un message contenant les informations suivantes :

  1. Le numéro de ligne de l'erreur.
  2. Le type d'erreur (ex. : SyntaxError).
  3. Des détails supplémentaires sur l'erreur.

Ex. : Saisir print "Hello!" sans parenthèses est une erreur de syntaxe. En Python, les parenthèses sont obligatoires pour utiliser print. Lors d'une tentative d'exécution de print "Hello!", Python affiche l'erreur suivante :

Traceback (most recent call last):
  File "/home/student/Desktop/example.py", line 1
    print "Hello"
                ^
SyntaxError: Missing parentheses in call to 'print'. Did you mean print("Hello")?

Le caractère accent circonflexe (^) indique l'endroit où Python a détecté l'erreur. Parfois, l'erreur peut se situer une ou deux lignes avant l'endroit indiqué par le symbole circonflexe, car Python n'a pu découvrir l'erreur qu'à ce stade. Le Traceback est un rapport de Python indiquant l'emplacement et le type de l'erreur. Le mot traceback suggère au programmeur de remonter dans le code pour trouver l'erreur si celle-ci n'est pas immédiatement visible.

Apprendre à lire attentivement les messages d'erreur est une compétence essentielle. La quantité de jargon technique peut sembler déroutante au début, mais ces informations s'avèrent très utiles.

Faites le point

Nom de variable incorrect

Concepts en pratique

Composantes d'une erreur

Soit le message d'erreur suivant :

Traceback (most recent call last):
  File "/home/student/Desktop/example.py", line 2
    print "test"
        ^
SyntaxError: Missing parentheses in call to 'print'. Did you mean print("test")?
1.
Quel est le nom de fichier du programme ?
  1. Desktop
  2. example.py
  3. test
2.
À quelle ligne l'erreur a-t-elle été trouvée ?
  1. 1
  2. 2
  3. 3
3.
Quel type d'erreur a été détecté ?
  1. missing parentheses
  2. SyntaxError
  3. traceback

Types d'erreurs courants

Différents types d'erreurs peuvent se produire lors de l'exécution de programmes Python. Lorsqu'une erreur survient, connaître le type d'erreur donne des indications sur la manière de la corriger. Le tableau suivant présente des exemples d'erreurs que n'importe qui pourrait commettre en programmant.

Erreur Message d'erreur Explication

print("Have a nice day!"

SyntaxError: unexpected EOF while parsing
La parenthèse fermante est manquante. Python est surpris d'atteindre la fin du fichier (EOF) avant que cette ligne ne soit terminée.

word = input("Type a word: )

SyntaxError: EOL while scanning string literal
Les guillemets fermants sont manquants. Par conséquent, la chaîne de caractères ne se termine pas avant la fin de la ligne (EOL).

print("You typed:", wird)

NameError: name 'wird' is not defined

L'orthographe de word est incorrecte. Le programmeur a accidentellement appuyé sur la mauvaise touche.

prints("You typed:", word)

NameError: name 'prints' is not defined

L'orthographe de print est incorrecte. Le programmeur a accidentellement tapé une lettre supplémentaire.

  print("Hello")
IndentationError: unexpected indent
Le programmeur a accidentellement tapé une espace au début de la ligne.
    print("Goodbye")
IndentationError: unexpected indent
Le programmeur a accidentellement appuyé sur la touche Tab au début de la ligne.
Tableau 1.5 Erreurs simples.

Concepts en pratique

Types d'erreurs

Pour chacun des programmes ci-dessous, quel type d'erreur va se produire ?

4.
print("Breakfast options:")
 print("A. Cereal")
 print("B. Eggs")
 print("C. Yogurt")
choice = input("What would you like? ")
  1. IndentationError
  2. NameError
  3. SyntaxError
5.
birth = input("Enter your birth date: )
print("Happy birthday on ", birth)
  1. IndentationError
  2. NameError
  3. SyntaxError
6.
print("Breakfast options:")
print(" A. Cereal")
print(" B. Eggs")
print(" C. Yogurt")
choice = intput("What would you like? ")
  1. IndentationError
  2. NameError
  3. SyntaxError

À vous d'essayer

Trois erreurs

Le programme suivant contient trois erreurs.

  • Exécutez le programme pour trouver la première erreur, puis corrigez la ligne de code correspondante.
  • Exécutez ensuite le programme à nouveau pour trouver et corriger la deuxième erreur.
  • Continuez à exécuter et à corriger le programme jusqu'à ce qu'aucune erreur ne soit trouvée.

À vous d'essayer

Symboles incorrects

Ce code est basé sur un exemple précédent, mais il contient plusieurs erreurs.

  • Il manque à une ligne une ponctuation obligatoire, et une autre ligne utilise des symboles incorrects.
  • Exécutez le programme pour trouver la première erreur, puis corrigez la ligne de code correspondante.
  • Continuez à exécuter et à corriger le programme jusqu'à ce qu'aucune erreur ne soit trouvée.