Académique Documents
Professionnel Documents
Culture Documents
A l'entrée à l'école de Poudlard, le Choixpeau magique répartit les élèves dans les différentes
maisons (Gryffondor, Serpentard, Serdaigle, Poufsouffle) en fonction de leur courage, leur loyauté,
leur sagesse et leur malice.
Le Choixpeau magique dispose d'un fichier CSV dans lequel sont répértoriés les données d'un
échantillon d'élèves. Voici les 6 premières lignes de ce fichier.
On décide de modéliser chaque élève par un dictionnaire avec les données à disposition. Par
exemple :
adrian = {"nom":"Adrian","courage":9,"loyauté":4,"sagesse":7,"malice":10,"maison":"Serpentard"}
hermione = {"nom":"Hermione","courage":8,"loyauté":6,"sagesse":6,"malice":6}
Voici le code d'une fonction qui permet de récupérer les données des élèves d'un fichier CSV pour
les stocker dans une liste, à adapter en fonction de votre interface :
1 def charger_table(nom_fichier):
2 # fonction qui charge une liste d'élèves à partir d'un fichier CSV
3 # Paramètre: le nom d'un fichier csv
4 # Résultat: la liste des élèves
5 table=[]
6 with open(nom_fichier,'r',
7 newline="",
8 encoding="utf-8") as csvfile:
9 eleve_reader = csv.reader(csvfile, delimiter=";")
10 eleve_reader._next_()
11 for eleve in eleve_reader:
12
13 table.append({"nom":eleve[0],"courage":int(eleve[1]),"loyauté":int(eleve[2]),"sagesse":int(eleve
14 [3]),"malice":int(eleve[4]),"maison":eleve[5]})
15 return table
L'instruction suivante permet de charger les informations dans une variable poudlard à partir d'un
fichier choixpeauMagique.csv qui se trouve dans le répertoire courant.
On souhaite écrire le code d'une fonction qui prend en paramètre une liste d'élèves et qui renvoie la
maison la plus représentée dans cette liste. Pour cela, on propose d'utiliser une fonction auxiliaire
dont le code est le suivant :
1 def frequence_des_maisons(table):
2 #Paramètre : une liste d'élèves, chaque élèment étant modélisé par un dictionnaire
3 #Résultat : un dictionnaire dont les clés sont les maisons et les valeurs, le nombre de fois où cette maison
4 #apparaît
5 frequences={}
6 for eleve in table:
7 maison = eleve["maison"]
8 if maison in frequences.keys():
9 frequences[maison] = frequences[maison] + 1
10 else:
11 frequences[maison]=1
12 return frequences
Le Choixpeau Magique décide d'utiliser un algorithme de prédiction pour choisir la maison qui sera
attribuée aux nouveaux élèves. Voici cet algorithme :