Exercice 3 - Gestion des erreurs et assertions · Bac Numérique et Sciences Informatiques Amérique du Nord 2026 (jour 2)

Thème : Mise au point des programmes : bugs, assertions et tests · Tiré du sujet Jour 2 (2026)

Énoncé

Partie B: Programmation Python

Émilie, fille de l'organisateur et élève en classe de terminale spécialité NSI propose de réaliser une étude pluriannuelle des performances accomplies.

Pour enregistrer les informations elle crée pour chaque type de course un dictionnaire de performances. Les clés d'un tel dictionnaire sont les années où ce type de course a eu lieu. La valeur associée à une année est la liste des meilleurs temps réalisés dans chacune des six catégories suivantes (dans cet ordre):

Junior homme (JH) et Junior femme (JF): moins de 18 ans;

Sénior homme (SH) et Sénior femme (SF): de 18 à 40 ans;

Master homme (MH) et Master femme (MF): plus de 40 ans;

Par exemple, le dictionnaire ci-dessous enregistre les performances pour les courses de 5 km. Il indique par exemple qu'en 2024 le meilleur temps réalisé dans la catégorie junior femme (JF) est de 1010 s, et celui dans la catégorie master homme (MH) de 1022 s.

dict_perf_5km = {2022: [1020, 1050, 900, 1000, 1018, 1040],

2023: [1010, 1048, 1100, 1024, 1080, 1108],

2024: [1012, 1010, 1000, 1036, 1022, 1098],

2025: [ 998, 1028, 1000, 959, 1002, 980]} Émilie propose la fonction suivante:

1 def mystere(dico, cat):

2 categories = ['JH', 'JF', 'SH', 'SF', 'MH', 'MF']

3 s = 0

4 nb = 0

5 for i in range(len(categories)):

6 if cat == categories[i]:

7 i_cat = i

8 for annee in dico.keys():

9 s = s + dico[annee][i_cat]

10 nb = nb + 1

11 return s/nb

Un appel du type mystere(dict_perf_5km, 'SG') pose problème car 'SG' n'est pas une catégorie répertoriée.

13.

Indiquer quel sera le message d'erreur renvoyé à la console parmi les choix suivants:

14.

Proposer une assertion à ajouter entre la ligne 2 et la ligne 3 pour indiquer une éventuelle faute de saisie par un message à l'utilisateur du script.

Énoncé: Exercice 3 - Gestion des erreurs et assertions · Bac Numérique et Sciences Informatiques Amérique du Nord 2026 (jour 2)

Corrigé

Corrigé proposé par AprenAI (non officiel)

13. Indiquer quel sera le message d'erreur renvoyé à la console parmi les choix suivants :

Réponse : "local variable 'i_cat' referenced before assignement"

La réponse de la question restante et l’explication pas à pas sont réservées aux membres Premium. Premium

Résous-le ici : correction automatique, indices et corrigé détaillé.

Exercice 2 - Gestion des bugs et algorithmique · Amérique du Nord 2025 (jour 2) ›

Plus d’exercices de Mise au point des programmes : bugs, assertions et tests