Python - Les fondamentaux
Chapitre 7 - Compréhension et gestion des erreurs en Python

Comprendre les erreurs de syntaxe

SyntaxError: unterminated string literal

Dans l'image ci-dessous, nous pouvons voir dans la console qu'il y a un circonflexe sous la double cote pour mentionner le début de la string. En lisant le texte dans la console SyntaxError: unterminated string literal, nous pouvons comprendre que la string n'est pas fermée. C'est également pour cela que VSCode souligne l'élément en rouge.

Erreur Syntaxe - oubli fermeture double cote
Erreur Syntaxe - oubli fermeture double cote
Source : Mon PC

SyntaxError: '(' was never closed

Dans l'image ci-dessous, nous pouvons voir dans la console qu'il y a un circonflexe sous la parenthèse ouvrante pour mentionner le début de la méthode (dans ce cas). En lisant le texte dans la console SyntaxError: '(' was never closed, nous pouvons comprendre que la parenthèse ouvrante n'a pas été fermée. C'est également pour cela que VSCode souligne la fin de l'élément en rouge.

Erreur Syntaxe - oubli fermeture parenthèse
Erreur Syntaxe - oubli fermeture parenthèse
Source : Mon PC

SyntaxError: double point attendu

Dans l'image ci-dessous, nous pouvons voir dans la console qu'il y a un circonflexe après la parenthèse fermante. En lisant le texte dans la console SyntaxError: expected ':', nous pouvons comprendre que le double point est manquant. C'est également pour cela que VSCode souligne la fin de l'élément en rouge.

Erreur Syntaxe - Double point attendu
Erreur Syntaxe - Double point attendu
Source : Mon PC

SyntaxError: syntaxe invalide

Casse non respectée

Dans l'image ci-dessous, nous pouvons voir dans la console qu'il y a un circonflexe sous le 'i'. En lisant le texte dans la console SyntaxError: invalid syntax, il est difficile de comprendre où se trouve l'erreur. En regardant ce que VSCode souligne et dans quelle couleur, nous pouvons constater que la fonction ne semble pas être reconnue. Normalement la fonction for devrait être écrit en violet dans VSCode. C'est le signe que quelque chose ne joue pas avec le mot for.

Erreur Syntaxe - syntaxe invalide - casse non respectée
Erreur Syntaxe - syntaxe invalide - casse non respectée
Source : Mon PC

Mot clé utilisé en tant que variable

Dans l'image ci-dessous, nous pouvons voir dans la console qu'il y a un circonflexe sous le '='. En lisant le texte dans la console SyntaxError: invalid syntax, il est difficile de comprendre où se trouve l'erreur. En regardant ce que VSCode souligne (break et =), nous pouvons constater qu'il doit y avoir un problème avec la définition de la variable.
Pour rappel, il est interdit d'utiliser un mot clé (for, while, break, etc.) en tant que variable.

Erreur Syntaxe - syntaxe invalide - mot clé utilisé en tant que variable
Erreur Syntaxe - syntaxe invalide - mot clé utilisé en tant que variable
Source : Mon PC

IndentationError: Bloc indenté attendu après 'for'

Dans l'image ci-dessous, nous pouvons voir dans la console qu'il y a un circonflexe sous le 'p' de print. En lisant le texte dans la console IndentationError: expected an indented block after 'for' statement on line 6, on peut comprendre qu'il y a une erreur d'indentation dans le code. Après le double point, il faut toujours indenter la ligne suivante. C'est également pour cela que VSCode souligne le mot print en rouge.

Erreur d'indentation - Bloc indenté attendu après 'for'
Erreur d'indentation - Bloc indenté attendu après 'for'
Source : Mon PC

Comprendre les erreurs d'exécution

Les erreurs d'exécution sont aussi appelées runtime error.

NameError: La variable nom n'est pas définie

Dans l'image ci-dessous, nous pouvons voir dans la console qu'il y a des circonflexes sous le mot nom. En lisant le texte dans la console NameError: name 'nom' is not defined, on peut comprendre qu'il y a un problème de définition de la variable nom. Il faut contrôler le code pour s'assurer que la variable soit correctement définie.
C'est pourquoi VSCode souligne le mot nom en jaune.

Erreur de définition de variable - La variable nom n'est pas définie
Erreur de définition de variable - La variable nom n'est pas définie
Source : Mon PC

TypeError: Seule les string peuvent être concaténés, pas les integer

Dans l'image ci-dessous, nous pouvons voir dans la console qu'il y a des circonflexes sous le contenu du print. Avec l'indication de la console, on peut comprendre qu'il y a un problème de type d'élément. soit il faut que des éléments de type string, soit integer. Si les types sont différents, il faut les caster pour pouvoir utiliser le + correctement.

TypeError: Seule les string peuvent être concaténés, pas les integer
Erreur de type - Seule les strings peuvent être concaténé, pas les integers avec les strings.
Source : Mon PC

Comprendre les erreurs sémantiques

Les erreurs sémantiques sont les plus compliquées à résoudre.

Définition du terme sémantique

En programmation Python, le terme sémantique fait référence à la signification ou au comportement d'une instruction ou d'un programme. Cela contraste avec la syntaxe, qui désigne les règles de structure et de formatage du code.

Sémantique en Python

Dans le contexte de Python, la sémantique concerne :

En résumé, les sémantiques de Python définissent comment le code fonctionne et ce qu'il fait, tandis que la syntaxe décrit comment il doit être écrit.

Exemple d'erreur sémantique

Voilà un code qui pourrait être utilisé pour afficher la table de multiplication de 2. L'erreur sémantique ici est que le 10x2 n'est pas affiché car l'index 0 n'a pas été pris en compte.

for i in range(1,10):
	print(f"{i} x 2 = {i*2}")

Sortie console:
1 x 2 = 2
2 x 2 = 4
3 x 2 = 6
4 x 2 = 8
5 x 2 = 10
6 x 2 = 12
7 x 2 = 14
8 x 2 = 16
9 x 2 = 18

La correction ici est très simple :

for i in range(1,11):
	print(f"{i} x 2 = {i*2}")

Sortie console:
1 x 2 = 2
2 x 2 = 4
3 x 2 = 6
4 x 2 = 8
5 x 2 = 10
6 x 2 = 12
7 x 2 = 14
8 x 2 = 16
9 x 2 = 18
10 x 2 = 20