edit code python dans le tp choixpeau, ajout sources, typo et suppression lignes inutiles

This commit is contained in:
2024-04-12 10:51:32 +02:00
parent 0fac01add4
commit 2b26f21dcd
3 changed files with 51 additions and 34 deletions

View File

@@ -1,6 +1,6 @@
## Aidons le Choixpeau magique ## Choixpeau Magique et KNN
## Durée estimée : 70 min ##
### Contexte ### Contexte
@@ -8,7 +8,7 @@
### Données disponibles ### Données disponibles
Le Choixpeau magique dispose d'un fichier CSV avec les données d'un échantillon d'élèves. Les 6 premières lignes du fichier sont les suivantes : Le Choixpeau magique dispose d'un [fichier csv](choixpeauMagique.csv) avec les données d'un échantillon d'élèves. Les 6 premières lignes du fichier sont les suivantes :
| Nom | Courage | Loyauté | Sagesse | Malice | Maison | | Nom | Courage | Loyauté | Sagesse | Malice | Maison |
| -------- | ------- | ------- | ------- | ------ | ---------- | | -------- | ------- | ------- | ------- | ------ | ---------- |
@@ -59,12 +59,15 @@ $$
```python ```python
import csv
def charger_table(nom_fichier): def charger_table(nom_fichier):
""" """
Permet de charger une liste d'élèves à partir d'un fichier CSV : fonction charger_table : Permet de charger une liste d'élèves à partir d'un fichier CSV
Paramètre : le nom d'un fichier CSV : param nom_fichier : le nom d'un fichier CSV
Résultat : la liste des élèves : return table : la liste des élèves
""" """
table= [] table= []
@@ -76,12 +79,13 @@ Résultat : la liste des élèves
"courage": int(eleve[1]), "courage": int(eleve[1]),
"loyauté": int(eleve[2]), "loyauté": int(eleve[2]),
"sagesse":int(eleve[3]), "sagesse":int(eleve[3]),
"malice":int(eleve[4]), "malicez":int(eleve[4]),
"maison" : eleve[5]}) "maison" : eleve[5]})
return table 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 : 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 (n'oubliez pas de l'y déposer ! ) :
```python ```python
poudlard = charger_table("choixpeauMagique.csv") poudlard = charger_table("choixpeauMagique.csv")
@@ -109,21 +113,18 @@ def frequence_des_maisons(table):
""" """
Paramètre: une liste d'élèves, chaque élève étant modélisé par un dictionnaire Paramètre: une liste d'élèves, chaque élève étant modélisé par un dictionnaire
Résultat: un dictionnaire dont les clés sont les maisons et les valeurs, le nombre de fois où cette maison apparaît. Résultat: un dictionnaire dont les clés sont les maisons et les valeurs, le nombre de fois où cette maison apparaît.
""" """
frequences={} frequences={}
for eleve in table: for eleve in table:
maison = eleve["maison"] maison = eleve["maison"]
if maison in frequences.keys(): if maison in frequences.keys():
frequences[maison] frequences[maison] + 1 frequences[maison] = frequences[maison] + 1
else: else:
frequences[maison] = 1 frequences[maison] = 1
return frequences return frequences
assert frequence_des_maisons(poudlard) == {'Serpentard': 12,'Gryffondor': 17, 'Serdaigle': 11, 'Poufsouffie': 10}
``` ```
1. Quelle est la signification du nombre 12 qui apparait ligne 17 ? 1. Écrire le code de la fonction *maison_majoritaire* qui prend une liste d'élèves en paramètre et qui renvoie le nom de la maison la plus représentée.
2. Écrire le code de la fonction rnaison_majoritaire qui prend une liste d'élèves en paramètre et qui renvoie le nom de la maison la plus représentée.
@@ -135,7 +136,7 @@ assert frequence_des_maisons(poudlard) == {'Serpentard': 12,'Gryffondor': 17, 'S
1. Compléter la formulation de l'algorithme suivant. 1. Écrire et compléter en pseudo code l'algorithme qui suit :
Données: Données:
@@ -143,6 +144,12 @@ assert frequence_des_maisons(poudlard) == {'Serpentard': 12,'Gryffondor': 17, 'S
- nouveau: un nouvel élève qui n'a pas encore de maison. - nouveau: un nouvel élève qui n'a pas encore de maison.
- Résultat : les 7 plus proches voisins du nouveau. - Résultat : les 7 plus proches voisins du nouveau.
Algorithme :
- à compléter
- à compléter
- à compléter
2. Implémenter cet algorithme en Python 2. Implémenter cet algorithme en Python
------- -------
@@ -167,3 +174,13 @@ Algorithme :
- Parmi ces proches_voisins, trouver la maison majoritaire. - Parmi ces proches_voisins, trouver la maison majoritaire.
- Renvoyer la maison_majoritaire. - Renvoyer la maison_majoritaire.
- Implémenter cet algorithme en Python - Implémenter cet algorithme en Python
----------
Sources :
- Prépabac NSI (Édition Hatier)
- [Site de l'académie de Nantes](https://www.pedagogie.ac-nantes.fr/enseignements-informatiques/enseignement/nsi/mini-projet-choixpeau-magique-1447870.kjsp?RH=1158678510343)
- [Gitlab de David Landry](https://gitlab.com/david_landry/nsi)

Binary file not shown.