informatique (tronc commun des prépas scientifiques) · Chapitre 1 · Application directe du cours
Diagnostiquer trois erreurs
La discipline de programmation · niveau 1 (application)
Énoncé
Déterminer la nature des erreurs (syntaxe, exécution ou logique) dans les fragments suivants et les corriger :
# (a)
def double(x)
return 2 * x
# (b)
t = [1, 2, 3]
print(t[3])
# (c)
def carre(n):
return n * 2Corrigé
- (a) Erreur de syntaxe (
SyntaxError) : Il manque le symbole:à la fin de la déclaration de la fonction. Correction :def double(x):. - (b) Erreur d'exécution (
IndexError) : La listetest de taille 3, ses indices valides sont donc 0, 1 et 2. L'accès àt[3]provoque un plantage. Correction :print(t[2])(pour le dernier élément). - (c) Erreur de logique : La fonction s'exécute sans erreur mais renvoie le double () au lieu du carré (). Seul un test d'assertion peut révéler cette anomalie. Correction :
return n * noureturn n ** 2.