Dans cet exercice, vous devez créer une classe Note qui contient un seul attribut, valeur
, qui correspond à la valeur de la note.
Vous devez modifier la représentation des instances de cette classe pour qu'elles affichent la valeur de la note sur 20, comme ceci :
>>> note = Note(valeur=12)
>>> note
'12 / 20'
Vous devez ensuite créer une classe Notes
qui hérite de la classe list
et qui permet de récupérer une liste d'instances de notes.
On doit pouvoir ajouter une note à cette classe avec la méthode ajouter_note
.
On créera ensuite deux méthodes.
La première, notes_parfaites
, qui retournera le nombre de notes égales à 20 / 20.
La deuxième, moyenne
, qui retournera la moyenne des notes.
Dans le cas de ce script, avec la liste de notes [12, 19, 14, 13, 9, 20, 8, 15, 4, 20, 19, 17]
, ces deux méthodes devront retourner respectivement 2
(car il y a deux 20 / 20 dans la liste) et 14.2
(qui est la moyenne de toutes ces notes).
La moyenne doit retourner un nombre décimal et être arrondie à une seule décimale.
class Note: def __init__(self, valeur: int): self.valeur = valeur def __repr__(self) -> str: return f"{self.valeur} / 20" class Notes: def __init__(self): self.notes: list[Note] = [] def ajouter_note(self, note: Note): self.notes.append(note) def notes_parfaites(self) -> int: return len([note for note in self.notes if note.valeur == 20]) def moyenne(self) -> int: return round(sum(note.valeur for note in self.notes) / len(self.notes), 1) valeur_notes = [12, 19, 14, 13, 9, 20, 8, 15, 4, 20, 19, 17] notes = Notes() for valeur_note in valeur_notes: notes.ajouter_note(note=Note(valeur=valeur_note)) print(notes.notes_parfaites()) print(notes.moyenne())
Lionel

valeur_notes = [12, 19, 14, 13, 9, 20, 8, 15, 4, 20, 19, 17] notes = Notes() for valeur_note in valeur_notes: notes.ajouter_note(note=Note(valeur=valeur_note)) print(notes.notes_parfaites()) print(notes.moyenne())
Un instant...
Test de la méthode notes_parfaites
La méthode notes_parfaites
doit retourner le nombre de notes qui sont égales à 20 / 20 (dans ce cas-ci, la liste contient 2 notes parfaites).
Test de la méthode moyenne
La méthode moyenne
doit retourner la moyenne de toutes les notes (dans ce cas-ci, le nombre décimal 14.2
).
Test de la représentation de la classe Note
La représentation d'une instance de Note doit retourner la chaîne de caractère 'valeur / 20'
(donc par exemple "12 / 20"
).
Bravo, tu as réussi cet exercice de code 🥳

Soumettre ma solution
Vous avez trouvé une solution alternative pour cet exercice ? Proposez votre solution à la communauté 👇
Seules les propositions différentes de la solution proposée par Docstring peuvent être envoyées.
Ma solution :
Mes notes
Sauvegardé