Partie 1 : Modélisation simpliste
On modélise les notes d’une élève de la façon suivante :
|
|
- Quel est le type de
notes_de_lea
?- un
int
- une liste
- un tuple
- un dictionnaire
- autre chose
- un
Réponse
Type : liste.
- Que vaut l’expression
notes_de_lea[2]
?- 3
- 14
- 6
- 5
- autre chose
Réponse
notes_de_lea[2]
vaut 3.
- Quelle instruction permet d’ajouter une note de 15 à cette structure de données ?
notes_de_lea.append(15)
notes_de_lea[8] = 15
notes_de_lea.append([15])
notes_de_lea = notes_de_lea + 15
Réponse
Ajout à la fin d’une liste : notes_de_lea.append(15)
.
- On propose le code suivant :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
def fonction(liste_de_notes): """ 'liste_de_notes' est une liste de nombres qui modélise les notes d’un élève. Cette fonction renvoie ??? """ compteur1 = 0 compteur2 = 0 for note in liste_de_notes: if note >= 10: compteur1 = compteur1 + 1 else: compteur2 = compteur2 + 1 return (compteur1, compteur2) notes_de_lea = [12, 14, 3, 16, 17, 2, 13, 19] assert fonction(notes_de_lea) == ???
- Quel est le type de retour de cette fonction ?
- Recopier et compléter la ligne 17 de ce code.
- Recopier et compléter la ligne 5 de ce code. On demande ici d’expliquer en quelques mots ce que fait cette fonction.
Réponses
- Type de la valeur de retour :
tuple
assert fonction(notes_de_lea) == (6, 2)
- Cette fonction renvoie le nombre de notes supérieures ou égales à 10 et le nombre de notes inférieures à 10.
Partie 2 : Modélisation avec une structure de données imbriquées
La modélisation précédente n’est pas satisfaisante si l’on veut conserver les notes de plusieurs élèves dans une même structure de données. On propose, dans cette partie, de modéliser les notes des élèves de la façon suivante :
|
|
- Quel est le type de
notes_de_la_classe
?- un
int
- une liste
- un tuple
- un dictionnaire
- autre chose
- un
Réponse
Type : liste.
- Que vaut l’expression
notes_de_la_classe[2]
?14
'Lucas'
('Lucas', 14)
'Emma'
16
- autre chose
Réponse
notes_de_la_classe[2]
vaut ('Lucas', 14)
.
- Quelle instruction permet d’ajouter à cette structure de données une note de 15 obtenue par Farid ?
Réponse
notes_de_la_classe.append(('Farid', 15))
- On veut écrire une fonction
nom_du_genie
qui prend une telle structure de données en paramètre et qui renvoie le nom de l’élève qui a eu la meilleure note.- Proposer un test pour cette fonction.
- On donne le code mélangé de cette fonction. À vous de le remettre dans l’ordre !
|
|
Réponses
|
|
- Que vaut l’expression
nom_du_genie([])
?None
''
0
()
- rien : cette expression génère une erreur
Réponse
L’expression retourne None
Partie 3 : Une modélisation plus complète
Dans cette partie, on souhaite modéliser dans une même structure de données les notes des élèves d’une classe en précisant le nom de la matière concernée par la note. On propose la modélisation suivante :
|
|
- Quel est le type de
notes
?- un
int
- une liste
- un tuple
- un dictionnaire
- autre chose
- un
Réponse
Type : dictionnaire.
- Que vaut l’expression
notes[2]
?14
'Lucas'
('NSI', 14)
3
- cette expression génère une erreur
Réponse
notes[2]
génère une erreur.
- Quelle instruction permet d’ajouter la note de 15 obtenue par Farid en NSI ?
Réponse
notes['Farid'] = ('NSI', 15)
- Quel est l’affichage généré par l’exécution du code suivant ?
|
|
Réponse
Le code affiche les noms des élèves qui ont une note inférieure à 15.
- On veut écrire une fonction qui prend une telle structure de données en paramètre et qui renvoie le nom de l’élève qui a eu la moins bonne note, toutes matières confondues.
- Proposer une test pour cette fonction.
- Écrire le code de cette fonction.
Réponses
|
|
- On veut écrire une fonction
tri_par_matiere
qui prend une telle structure de données en paramètre et qui renvoie un dictionnaire dont les clés sont les noms des matières, et les valeurs la liste des notes obtenues par les élèves dans chaque matière.
Exemple :
|
|
Écrire le code de cette fonction.
Réponse
|
|