NSI (première) · Chapitre 3 · Application directe du cours
Trouver dans la documentation de Python la fonction qui renvoie…
Langages et programmation · Spécifier, tester, consulter une documentation · niveau 2
Énoncé
Trouver dans la documentation de Python la fonction qui renvoie simultanément le quotient et le reste d'une division euclidienne. Écrire son prototype et un jeu de tests.
Corrigé
La fonction est divmod, dans les fonctions natives — donc sans import.
Prototype. divmod(a, b) renvoie le couple (a // b, a % b). Précondition : b non nul. Postcondition : a == b * q + r.
Jeu de tests, écrit comme une propriété.
for a in range(-30, 31):
for b in range(1, 20):
q, r = divmod(a, b)
assert a == b * q + r and 0 <= r < b
Les cas passent.
Contrôles : divmod(17, 5) rend (3, 2) ; divmod(-17, 5) rend (-4, 3) — et non (-3, -2). Python arrondit le quotient vers le bas, ce qui garantit un reste positif : c'est la division euclidienne des mathématiques, et c'est ce que la postcondition exprime.
Ce que la documentation seule apprend : le fait que divmod rende un couple, et non deux valeurs — la notion de p-uplet, objet du chapitre 4. Et le fait que la question « les bornes sont-elles incluses ? » de la méthode du cours a ici une réponse nette : inclus, exclu.
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.