Erreurs de programmation en Python 3
Comprendre les erreurs est une étape essentielle de l’apprentissage de la programmation. Par contraste avec la présentation d’un algorithme en langage courant, le fait de fixer un langage de programmation impose des contraintes formelles fortes.
Ces contraintes peuvent être perçues comme une gêne, mais on gagne beaucoup à s’appuyer dessus, y compris pour l’enseignement. De plus, le formalisme de la programmation permet souvent au système de signaler des erreurs avant même l’étape du test.
Il faut distinguer différents niveaux d’erreur.
Erreur de syntaxe
Le texte source ne respecte pas la forme imposée par le langage de programmation. Ce n’est donc même pas à proprement parler un programme.
Analogie en math: une réponse « même pas fausse », par exemple Si x<0 donc.
Ce genre d’erreur est détecté immédiatement par l’interpréteur, qui se plaint de ne pas comprendre ce que vous lui voulez.
On peut parfois regretter que le langage ne soit pas plus flexible, mais la contrainte est parfois salvatrice.
Analogie en math: On définit la fonction f : sin(x) ↦ x.
Il faut comprendre la syntaxe comme un contrat, un terrain d’entente minimal: si on le respecte, l’interpréteur s’engage à faire quelque chose.
D’une certaine manière, les erreurs de syntaxe sont donc les plus simples à réparer, parce que le système peut nous indiquer exactement où se trouve le problème: c’est le point où il ne comprend pas ce qu’on lui dit, et c’est en général bien localisé et sans grande complexité.
Une source très courante d’erreurs en Python est le non respect des contraintes d’indentation. Par exemple:
ou:
Parfois, une ambigüité du langage courant est résolue (d’une manière fixée à l’avance) par le langage de programmation.
Comparer:
C’est une conséquence de la négation de la continuité et de la monotonie.
avec:
Erreur à l’exécution
Ici c’est plus compliqué : le programme est accepté par l’interpréteur, mais c’est lors de son exécution que ça casse.
Les sources sont multiples, et l’interpréteur peut parfois nous aider:
Erreur d’algorithmique pure et dure
Là, on est seul face à ses responsabilités:
ou encore:
Évidemment, ce sont les erreurs les plus intéressantes, celles sur lesquelles on a envie de travailler.
Florilège
En pièces jointes à cette page, vous trouverez des scripts Python inspirés de contributions d’étudiants (de tous niveaux).
Essayez de voir ce qui cloche dans chaque cas.