NSI (première) · Chapitre 3 · Application directe du cours
Voici une fonction censée dire si un entier est pair
Langages et programmation · Spécifier, tester, consulter une documentation · niveau 1 (application)
Énoncé
Voici une fonction censée dire si un entier est pair : def pair(n): return n % 2 == 0. Trouver un jeu de tests de quatre cas positifs qui passe. La fonction est-elle correcte pour les entiers négatifs ? Vérifier.
Corrigé
Le jeu de tests demandé.
def pair(n):
return n % 2 == 0
print(pair(0), pair(2), pair(4), pair(100)) # True True True True
Quatre cas positifs, quatre succès.
Et pour les négatifs ?
print(pair(-4), pair(-3), pair(-1)) # True False False
La fonction est correcte. La raison mérite d'être connue : en Python, le reste d'une division par un entier positif est toujours positif — (-3) % 2 vaut 1, et non -1 comme en C ou en Java. Le test n % 2 == 0 reste donc juste.
Le point important n'est pas le résultat, c'est la démarche. La même fonction écrite return n % 2 == 1 pour tester l'imparité serait fausse en C sur les négatifs et juste en Python. Un jeu de tests qui ne couvre que les positifs ne dit rien des négatifs : ici il se trouve que tout va bien, ailleurs non — c'est exactement le cas de maximum_faux du cours.
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
- 16 autres exercices corrigés dans ce chapitre, et 20 à chercher avec le tuteur
- Le podcast et la vidéo du chapitre et la correction filmée du TD : 2 minutes sans compte
Sans compte : le cours, 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.