Exercice 86
On considère le dictionnaire suivant qui contient les données des étudiants avec leurs notes:
|
1 |
students = {'Mario': {'notes': [15, 14, 16]}, 'Majid': {'notes': [14, 14, 17]}, 'Rachid': {'notes': [10, 7, 10]}, 'Emily': {'notes': [10, 14, 17]}, 'Najat': {'notes': [14, 12, 15]}} |
On vous demande de créer une fonction python qui prend en entrée le dictionnaire et qui calcul les moyennes des étudiants et renvoie un dictionnaire students_result qui contient les résultats.
Exemple: pour l'étudiant 'Mario' est doit afficher :
|
1 |
students_result = {'Mario': {'notes': [15, 14, 16], 'moyenne': 15.0, 'result': 'Admis'}, ...} |
Solution
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
def compute_result(students): # Dictionnaire qui va contenir les résultats finaux des étudiants students_result = {} # Parcours du dictionnaire des étudiants # nom : clé du dictionnaire (nom de l'étudiant) # data : valeur associée (ici un sous-dictionnaire contenant les notes) for nom, data in students.items(): # Récupération de la liste des notes de l'étudiant notes = data['notes'] # Calcul de la moyenne : # sum(notes) calcule la somme des notes # len(notes) donne le nombre de notes moyenne = sum(notes) / len(notes) # Détermination du résultat selon la moyenne # Si la moyenne est supérieure ou égale à 10 → Admis if moyenne >= 10: result = 'Admis' # Sinon → Ajourné else: result = 'Ajourné' # Création du sous-dictionnaire contenant # les notes, la moyenne et le résultat students_result[nom] = { 'notes': notes, 'moyenne': moyenne, 'result': result } # La fonction renvoie le dictionnaire final return students_result students = { 'Mario': {'notes': [15, 14, 16]}, 'Majid': {'notes': [14, 14, 17]}, 'Rachid': {'notes': [10, 7, 10]}, 'Emily': {'notes': [10, 14, 17]}, 'Najat': {'notes': [14, 12, 15]} } students_result = compute_result(students) print(students_result) """ Output: {'Mario': {'notes': [15, 14, 16], 'moyenne': 15.0, 'result': 'Admis'}, 'Majid': {'notes': [14, 14, 17], 'moyenne': 15.0, 'result': 'Admis'}, 'Rachid': {'notes': [10, 7, 10], 'moyenne': 9.0, 'result': 'Ajourné'}, 'Emily': {'notes': [10, 14, 17], 'moyenne': 13.666666666666666, 'result': 'Admis'}, 'Najat': {'notes': [14, 12, 15], 'moyenne': 13.666666666666666, 'result': 'Admis'}} """ |
Younes Derfoufi
CRMEF OUJDA



