NSI (première) · Chapitre 5 · Application directe du cours
n° 54
Les dictionnaires · Itérer · niveau 1 (application)
Énoncé
Écrire moyenne_valeurs(d). Quelle précondition, cette fois ?
Corrigé
def moyenne_valeurs(d):
"""Moyenne des valeurs de d. Precondition : d est NON VIDE."""
assert len(d) > 0, "moyenne d'un dictionnaire vide"
return sum(d.values()) / len(d)
assert moyenne_valeurs({"a": 2, "b": 4}) == 3.0
try:
moyenne_valeurs({})
assert False
except AssertionError as e:
assert "vide" in str(e)
Sans la précondition, le dictionnaire vide donnerait ZeroDivisionError : une erreur qui parle du code et non du problème. L'assert arrête au même endroit, mais en disant pourquoi.
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.