Adloun

Que fait moyenne([]) avec l'assertion du cours ? Et sans elle ?

Exercice d'entraînement · niveau 1 (application) · NSI (première), chapitre 7 — Parcourir, trier, prouver · Parcours, occurrences, cas limites

Énoncé

Que fait moyenne([]) avec l'assertion du cours ? Et sans elle ? Laquelle des deux pannes préférez-vous, et pourquoi ?

Corrigé

avec l'assertion`AssertionError: tableau vide`
sans l'assertion`ZeroDivisionError: division by zero`

Les deux s'arrêtent — c'est déjà l'essentiel. Aucune des deux ne rend un résultat faux : la panne est bruyante dans les deux cas. C'est infiniment mieux que le t[-1] de la banque précédente, qui, lui, se tait.

L'assertion est pourtant préférable, pour trois raisons.

Une nuance de taille. Une assertion n'est pas une gestion d'erreur : elle sert à attraper un défaut du programme, pas une entrée utilisateur invalide. Si le tableau vide peut venir d'un fichier — donc de l'extérieur —, ce n'est plus une assertion qu'il faut, mais un test explicite et un message à l'utilisateur. L'assertion protège du programmeur, pas de l'utilisateur.

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.