edit code python dans le tp choixpeau, ajout sources, typo et suppression lignes inutiles
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
## Aidons le Choixpeau magique
|
||||
## Choixpeau Magique et KNN
|
||||
|
||||
## Durée estimée : 70 min
|
||||
##
|
||||
|
||||
### Contexte
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
|
||||
### 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 |
|
||||
| -------- | ------- | ------- | ------- | ------ | ---------- |
|
||||
@@ -59,29 +59,33 @@ $$
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
```python
|
||||
import csv
|
||||
def charger_table(nom_fichier):
|
||||
"""
|
||||
Permet de charger une liste d'élèves à partir d'un fichier CSV
|
||||
Paramètre : le nom d'un fichier CSV
|
||||
Résultat : la liste des élèves
|
||||
"""
|
||||
: fonction charger_table : Permet de charger une liste d'élèves à partir d'un fichier CSV
|
||||
: param nom_fichier : le nom d'un fichier CSV
|
||||
: return table : la liste des élèves
|
||||
"""
|
||||
|
||||
table= []
|
||||
with open(nom_fichier, 'r',newline="",encoding="utf-8") as csvfile:
|
||||
eleve_reader = csv. reader(csvfile, delimiter=";")
|
||||
eleve_reader.__next__()
|
||||
for eleve in eleve_reader:
|
||||
table.append({ "nom": eleve[0],
|
||||
"courage": int(eleve[1]),
|
||||
"loyauté": int(eleve[2]),
|
||||
"sagesse":int(eleve[3]),
|
||||
"malice":int(eleve[4]),
|
||||
"maison" : eleve[5]})
|
||||
return table
|
||||
table= []
|
||||
with open(nom_fichier, 'r',newline="",encoding="utf-8") as csvfile:
|
||||
eleve_reader = csv. reader(csvfile, delimiter=";")
|
||||
eleve_reader.__next__()
|
||||
for eleve in eleve_reader:
|
||||
table.append({ "nom": eleve[0],
|
||||
"courage": int(eleve[1]),
|
||||
"loyauté": int(eleve[2]),
|
||||
"sagesse":int(eleve[3]),
|
||||
"malicez":int(eleve[4]),
|
||||
"maison" : eleve[5]})
|
||||
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
|
||||
poudlard = charger_table("choixpeauMagique.csv")
|
||||
@@ -89,7 +93,7 @@ poudlard = charger_table("choixpeauMagique.csv")
|
||||
|
||||
1. Dans le code de la fonction charger _table, à la ligne 14, quel est le type de la variable eleve[0] ?
|
||||
|
||||
2. Quel est le type de int ( eleve [ 0]) ? Pourquoi a-t-on besoin de la fonction int() ici?
|
||||
2. Quel est le type de int ( eleve [ 0] ) ? Pourquoi a-t-on besoin de la fonction int() ici?
|
||||
3. Quel est le type de la variable poudlard ?
|
||||
|
||||
|
||||
@@ -106,24 +110,21 @@ On souhaite écrire le code d'une fonction qui prend en paramètre une liste d'
|
||||
|
||||
```python
|
||||
def frequence_des_maisons(table):
|
||||
"""
|
||||
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.
|
||||
|
||||
"""
|
||||
frequences={}
|
||||
"""
|
||||
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.
|
||||
"""
|
||||
frequences={}
|
||||
for eleve in table:
|
||||
maison= eleve["maison"]
|
||||
maison = eleve["maison"]
|
||||
if maison in frequences.keys():
|
||||
frequences[maison] frequences[maison] + 1
|
||||
frequences[maison] = frequences[maison] + 1
|
||||
else:
|
||||
frequences[maison] = 1
|
||||
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 ?
|
||||
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.
|
||||
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.
|
||||
|
||||
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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.
|
||||
- Résultat : les 7 plus proches voisins du nouveau.
|
||||
|
||||
Algorithme :
|
||||
|
||||
- à compléter
|
||||
- à compléter
|
||||
- à compléter
|
||||
|
||||
2. Implémenter cet algorithme en Python
|
||||
|
||||
-------
|
||||
@@ -167,3 +174,13 @@ Algorithme :
|
||||
- Parmi ces proches_voisins, trouver la maison majoritaire.
|
||||
- Renvoyer la maison_majoritaire.
|
||||
- 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)
|
||||
BIN
representation_base/.DS_Store
vendored
BIN
representation_base/.DS_Store
vendored
Binary file not shown.
Reference in New Issue
Block a user