Détecter une erreur logique
Exercice de TD · niveau 3 (difficile) · NSI (terminale), chapitre 10 — Modularité, mise au point et tests
É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.")Les autres exercices de ce chapitre Le cours du chapitre
Un blocage sur cet exercice ? Le tuteur d'Adloun guide par questions, sans donner la réponse.