Exercice 5 · Bac Numérique et Sciences Informatiques Métropole 2 remplacement 2021

Thème : Mise au point des programmes : bugs, assertions et tests · Tiré du sujet Métropole France 2 remplacement (2021)

Énoncé

EXERCICE 5 (4 points)

Principaux thèmes abordés: Traitement de données en tables (CSV) et langages et programmation (spécification).

Afin d'améliorer l'ergonomie d'un logiciel de traitement des inscriptions dans une université, un programmeur souhaite exploiter l'intelligence artificielle pour renseigner certains champs par auto-complétion. Il s'intéresse au descripteur « genre » (masculin, féminin ou indéterminé). Pour cela il propose d'exploiter les dernières lettres du prénom pour proposer automatiquement le genre.

Pour vérifier son hypothèse, il récupère un fichier CSV associant plus de 60 000 prénoms du monde entier au genre de la personne portant ce prénom. En utilisant seulement la dernière lettre, le taux de réussite de sa démarche est de 72,9% avec la fonction définie ci-dessous:

def genre (prenom):

liste_M = ['f', 'd', 'c', 'b', 'o', 'n', 'm', 'l', 'k',

'j', 'é', 'h', 'w', 'v', 'u', 't', 's', 'r',

'q', 'p', 'i', 'þ', 'z', 'x', 'ç', 'ö', 'ã',

'â', 'ï', 'g']

liste_F = ['e', 'a', 'ä', 'ü', 'y', 'ë']

if prenom[len(prenom)-1].lower() in liste_M:

return "M"

elif prenom[len(prenom)-1].lower() in liste_F:

return "F"

else:

return "I"

# Pour rappel, C.lower() convertit le caractère C en minuscule.

1. Appropriation

a)

Expliquer ce qu'est un fichier CSV.

b)

Donner le type de l'argument prenom de la fonction genre, et le type de la réponse renvoyée.

2. Développement

Pour effectuer son étude sur les prénoms à partir du fichier CSV, le programmeur souhaite utiliser la bibliothèque csv.

a)

La bibliothèque csv est un module natif du moteur python. Donner, dans ce cas, l'instruction d'importation.

b)

Au cours du développement de son projet, le programmeur souhaite insérer une assertion sur l'argument donné à la fonction. Proposer une assertion sur le type de l'argument qui corrige une erreur lorsque le type ne correspond pas à celui attendu.

c)

Avant le déploiement de sa solution, le programmeur décide de rendre sa fonction plus robuste. Pour cela il veut remplacer l'assertion proposée dans la question 2.b) par une gestion de l'argument pour éviter toutes erreurs empêchant la poursuite du programme. Proposer alors une ou plusieurs instructions en Python utilisant l'argument afin de s'assurer que la fonction se termine quel que soit le type de l'argument.

3. Améliorations

En prenant en compte les deux dernières lettres du prénom, il parvient à augmenter son taux de réussite à 74,4%. Pour cela, son étude du fichier CSV lui permet de créer deux listes: liste_M2 pour les terminaisons de deux lettres associées aux prénoms masculins et liste_F2 pour les prénoms féminins.

Recopier et modifier la structure conditionnelle (lignes 8 à 13) de la fonction genre afin de prendre en compte les terminaisons de deux lettres des listes liste_M2 et liste_F2.

Énoncé: Exercice 5 · Bac Numérique et Sciences Informatiques Métropole 2 remplacement 2021

Corrigé

Corrigé proposé par AprenAI (non officiel)

1. a) Expliquer ce qu'est un fichier CSV.

Réponse : Un fichier CSV (Comma-Separated Values) est un fichier texte utilisé pour stocker des données sous forme de tableau. Chaque ligne du fichier correspond à une ligne du tableau (ou enregistrement), et les différentes valeurs d'une même ligne sont séparées par un caractère délimiteur (généralement une virgule, un point-virgule ou une tabulation).

1. b) Donner le type de l'argument prenom de la fonction genre

Réponse : str

1. b) Donner le type de la réponse renvoyée par la fonction genre.

Réponse : str

2. a) Donner l'instruction d'importation de la bibliothèque csv.

Réponse : ```python import csv ```

Les réponses des 3 questions restantes 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 4 - Échange d'éléments · Métropole Candidat libre 2021 (sujet 2)

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