NSI (terminale) · Chapitre 10 · Exercice de TD
Détecter une erreur logique
Modularité, mise au point et tests · niveau 3 (difficile)
Énoncé
Détecter une erreur logique.
Le code suivant est censé compter les nombres pairs d'une liste, mais il contient une erreur logique. La trouver, la corriger et écrire un test qui l'aurait détectée.
Corrigé
# Version erronee :
# def compte_pairs(liste):
# c = 0
# for x in liste:
# if x % 2 == 1: # ERREUR : teste les impairs
# c += 1
# return c
def compte_pairs(liste):
"""Renvoie le nombre d'elements pairs de la liste."""
c = 0
for x in liste:
if x % 2 == 0: # correction
c += 1
return c
# Test qui aurait revele l'erreur
assert compte_pairs([2, 4, 6]) == 3 # echouait avant (donnait 0)
assert compte_pairs([1, 3, 5]) == 0
assert compte_pairs([1, 2, 3, 4]) == 2
assert compte_pairs([]) == 0
print("Exercice 6 : tous les tests passent.")100 % gratuit
Essaie le suivant avec le tuteur
- L'exercice suivant avec le tuteur, sans compte : il guide pas à pas, sans donner la réponse
- 8 autres exercices corrigés dans ce chapitre
- Les 2 QCM du chapitre, le premier sans compte
- Le podcast et la vidéo du chapitre : 2 minutes d'écoute sans compte
Sans compte : le cours, le premier QCM, 2 minutes de podcast et de vidéo et un exercice avec le tuteur. Pour tout le reste : inscription gratuite en 30 secondes, sans carte bancaire.