Erreurs#
En appuyant sur le bouton Run, Python va d'abord compiler le programme et ensuite l'exécuter.
Compilation#
Lors de la compilation, Python
lit le code,
vérifie qu'il ne comprend pas d'erreur de syntaxe,
transforme le code en un langage compréhensible par l'ordinateur.
Exécution#
L'exécution sera effectuée seulement s'il n'y a pas eu de problème pendant la compilation. Python va exécuter les instructions du programme, suivant un ordre bien défini.
En programmation, il existe trois types d'erreurs:
Les erreurs de syntaxe
Les erreurs d'exécution
Les erreurs de logique
Erreur de syntaxe#
Les erreurs de syntaxe sont détectées lors de la compilation. Python vérifie que la syntaxe est correcte:
les
:sont présents et au bon endroit → SinonSyntaxErrorune parenthèse ouverte est toujours fermée → Sinon
SyntaxErrorun guillemet ouvert est toujours fermé → Sinon
SyntaxErrorl'indentation est correcte → Sinon
IndentationError...
Si Python trouve une erreur de syntaxe, le programme s'arrête, car il ne comprend pas le programme et ne peut donc pas l'exécuter. L'erreur est affichée sur la console.
Exemple 1#
n = 7
if n < 10
print("n est plus petit que 10.)
else:
print("n est plus grand ou égal à 10."
Erreur d'exécution#
Les erreurs d'exécution sont détectée pendant l'exécution. La syntaxe est correcte, mais une instruction lui demande de faire quelque chose d'"illégal", par exemple:
une division par zero →
ZeroDivisionErroraccéder à la valeur d'une variable qui n'existe pas →
NameErrorappeler une fonction avec un nombre de paramètres incorrect →
TypeError
Si Python trouve une erreur d'exécution, il "plante", c'est-à-dire qu'il s'arrête de manière abrupte.
Exemple 2#
a = 7
b = 0
print(a / b)
print(c)
Erreur de logique#
Python ne détecte aucune erreur, le programme est compilé et exécuté, mais le résultat n'est pas celui attendu.
Exemple 3#
a = int(input("Entrez un nombre:"))
b = int(input("Entrez un nombre:"))
somme = a - b
print("La somme de", a, "et de", b, "est", somme)
Exercices#
Exercice 2#
Les programmes suivants contiennent tous une erreur.
Trouvez l'erreur, si possible sans exécuter le programme.
Déterminez son type (syntaxe, exécution, logique).
Corrigez-la.
longueur = float(input("Entrez la longueur du rectangle:")) aire = longueur * largeur print(aire)
n = 0 while n < 10: print(n) n += 2
a = 12 b = a / 4 b -= 3 print(a) print(b) print(a/b)
i = 0 while i < 4 print(i) n += 1
Solution
Erreur d'exécution: la variable larg n'est pas définie.
Erreur de syntaxe: l'indentation n'est pas correcte.
Erreur d'exécution: il n'est pas possible de diviser par 0.
Erreur de syntaxe: il manque les :.
Exercice 3#
Le programme suivant contient une erreur de logique. Testez le programme avec différentes valeurs pour la trouver et corrigez-la.
age = 18
if age >= 18:
print("Tu payes le prix adulte.")
elif age >= 65:
print("Tu payes le prix retraité")
else:
print("Tu payes le prix enfant.")
Solution
Le elif ne sera jamais exécuté, car si l'âge est supérieur ou égal à 65, il
est aussi supérieur ou égal à 18. Donc la condition du if sera vérifiée.