Notes d'une classe
Un professeur de NSI décide de gérer les résultats de sa classe sous la forme d’un dictionnaire :
- les clefs sont les noms des élèves ;
- les valeurs sont des dictionnaires dont les clefs sont les types d’épreuves sous forme de chaîne de caractères et les valeurs sont les notes obtenues associées à leurs coefficients dans une liste. Une telle liste ne peut pas être vide, et est obligatoirement de taille 2.
On garantit que chaque élève de la classe a au moins une note.
Par exemple, avec :
🐍 Script Python
resultats = {'Dupont': {
'DS1': [15.5, 4],
'DM1': [14.5, 1],
'DS2': [13, 4],
'PROJET1': [16, 3],
'DS3': [14, 4]
},
'Durand': {
'DS1': [6 , 4],
'DM1': [14.5, 1],
'DS2': [8, 4],
'PROJET1': [9, 3],
'IE1': [7, 2],
'DS3': [9, 4],
'DS4':[15, 4]
}
}
L’élève dont le nom est Durand a ainsi obtenu au DS2 la note de 8 avec un coefficient 4.
Le professeur crée une fonction moyenne
qui prend en paramètre le nom d’un de ses élèves et renvoie sa moyenne arrondie au dixième.
Compléter le code du professeur ci-dessous
###
# Testsbksl-nlresultatspy-und2 = {'Dupont': {bksl-nl 'DS1': [15.5, 4],bksl-nl 'DM1': [14.5, 1],bksl-nl 'DS2': [13, 4],bksl-nl 'PROJET1': [16, 3],bksl-nl 'DS3': [14, 4]bksl-nl },bksl-nl 'Durand': {bksl-nl 'DS1': [6 , 4],bksl-nl 'DM1': [14.5, 1],bksl-nl 'DS2': [0, 0],bksl-nl 'PROJET1': [0, 3],bksl-nl 'IE1': [7, 2],bksl-nl 'DS3': [9, 4],bksl-nl 'DS4':[15, 4]bksl-nl }bksl-nl }bksl-nlassert 10py-strmoyenne("Dupont", resultats) == 145bksl-nlassert 10py-strmoyenne("Durand", resultats) == 94bksl-nlassert 10py-strmoyenne("Martin", resultats) == -10bksl-nlbksl-nl# Autres testsbksl-nlassert 10py-strmoyenne("Durand", resultatspy-und2) == 82bksl-nlbksl-nlbksl-nlbksl-nl 5/5 Cet exercice utilise ce que l'on appelle en anglais de l'"unpacking" que l'on pourrait traduire en français par "déballage"
👉 Nous l'avons souvent utilisé avec des tuples.
Exemple
🐍 Script Python
a, b, c = (1, 2, 3) # Avec un tuple
print(a)
print(b)
print(c)
👉 Cette possibilité existe aussi avec des listes
Exemple
🐍 Script Python
a, b, c = [1, 2, 3] # Avec une liste
print(a)
print(b)
print(c)