Adloun

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

Faire l'exercice suivant avec le tuteur

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.

Le cours du chapitre · Tous les exercices du chapitre

Exercice suivant avec le tuteur →