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
|
### 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")
|
||||||
@@ -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] ?
|
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 ?
|
3. Quel est le type de la variable poudlard ?
|
||||||
|
|
||||||
|
|
||||||
@@ -107,23 +111,20 @@ On souhaite écrire le code d'une fonction qui prend en paramètre une liste d'
|
|||||||
```python
|
```python
|
||||||
def frequence_des_maisons(table):
|
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)
|
||||||
BIN
representation_base/.DS_Store
vendored
BIN
representation_base/.DS_Store
vendored
Binary file not shown.
Reference in New Issue
Block a user