TP3b tableaux python, visualisation et fichier csv
Ex1: Visualiser les algorithmes
1. Moyenne
Le script suivant calcule la moyenne sur une liste de notes. La première valeur de la liste est reservée pour y placer une valeur, à la fin du programme. Les notes commencent donc à partir de l’indice 1 de cette liste:
Voir l’animation sur Pythontutor: visualiser le parcours et traitement sur une liste de notes
list1:
Lien: pythontutor
nom et valeur des variables dans pythontutor - liste
1a. Commenter le schéma ci-dessus: que signifient les flèches? Que signifient les cases bleues et jaunes?
1b. Pourquoi écrit-on l’instruction
m = moyenne(list1[1:])et nonm = moyenne(list1)?
1c Modifier le script (faire edit dans pythontutor) pour que le programme place la valeur
mdans la caselist1[0]. Noter ici l’instruction utilisée. Comment voit-on la modification dans pythontutor?
2. Recherche du maximum
2a. Voir l’animation sur Pythontutor: visualiser le parcours et traitement sur une liste de notes
list1:
Lien: Pythontutor
2.b. Dans l’animation, lorsque la boucle
forest executée, à quel(s) moment(s) la valeur demaxiest elle corrigée?
3. Traitement sur une table (liste de listes) et effet de bord
- Animation sur Pythontutor: visualiser le parcours et traitement sur une liste
Execution du script suivant sur Pythontutor
nom et valeur des variables dans pythontutor - tableau
3a. Commenter le schéma ci-dessus: que signifient les flèches? Que signifient les cases bleues et jaunes?
3b. Que contient la liste
eleve? Recopier son contenu. (fiche reponse)
3c. Pourquoi écrit-on l’instruction
m = moyenne(eleve[2:])et nonm = moyenne(eleve))?
3d. Ajouter une instruction au programme pour placer la valeur m dans la case
eleve[1]. Noter ici l’instruction utilisée. Comment voit-on la modification dans pythontutor?
3e. La table a t-elle été modifiée? Expliquer.
3f. Ecrire une fonction
ajoute_colonne_moyennequi prend en paramètre une tableclasseet un numero de colonnec. Le fonction devra ajouter la moyenne pour chaque élève, dans la colonnec. La tableclasseaura le format proposé dans l’énoncé vu plus haut.
Ex 2: Fichier de notes en csv
But: programmer un logiciel de traitement des notes des élèves, à la manière de Pronotes.
Dans votre IDE (Pyzo, IDLE), ouvrir un nouveau fichier python, et placer les 2 fonctions:
Sauvegarder sur le disque dur. Avec le nom prounotes.py par exemple
Telecharger et placer dans le même dossier le fichier classe.csv
Deux options sont possibles pour organiser votre dossier et vos fichiers:
- Vous pouvez placer classe.csv dans le même dossier que le fichier python: Depuis le script python, ouvrez le alors avec l’instruction
with open('classe.csv', newline='') as csvfile: - ou bien dans un sous dossier
datas. Il faudra adapter le script pour préciser le schemin.
Ajouter le script suivant:
- Dans cet exemple, quelle option a été choisie pour placer le fichier classe.csv?
- Que remarque t-on à propos du séparateur des valeurs décimales?
Pour remplacer le caractère , par . dans une chaine de caractères, on peut utiliser la méthode de chaine replace:
- Quelle instruction python va transformer
'12,5'en un float égal à12.5?
La fonction remplacer va traiter chaque note du tableau pour qu’elle soit dans le bon format (float).
- Compléter le script de cette fonction et l’ajouter à votre programme:
Pour chaque élève, vous allez calculer la moyenne de ses notes à l’aide de la fonction moyenne définie plus haut. Et placer la valeur dans la colonne d’indice 1:
- Compléter et ajouter le script à votre programme.