1_2_TP_Stockage python

publicité
Informatique
TP1.2
Stockage des données en python
L'objectif de ce TP est de stocker des notes dans une variable tout d'abord, puis dans un fichier texte.
1 Collecte de notes dans une variable
Rappel des instructions utiles à cette partie :
Pour quoi faire ?
fonction entrée(s)
sortie
exemples
Travail sur les listes :
Initialiser une liste
Ajouter un élément à une
liste
a=[ ]
liste=liste+[1]
liste=liste+[a]
Déterminer le nombre
d'éléments dans une liste
Lire la dernière valeur
stockée dans une liste
len
liste
entier : nombre
d'éléments de la liste
liste += [1]
len(liste)
liste[-1]
Affichage depuis un programme vers la console :
afficher un message vers la print
console
afficher un saut de ligne
print
vers la console
chaine de caractère ou
variable
aucune entrée
print('a=',a)
\n dans une chaine de
caractère
print('a\nb')
print()
Saisie d'une valeur au cours d'un programme :
demander une saisie dans
la console
input
message en chaine de
caractères
chaine de caractères
a=input("a=?\n")
flottant
a=float(a)
Convertir une chaine de caractères en flottant :
float
chaine de caractère
contenant un flottant
Comme il y aura plusieurs notes, on les stockera dans une liste notes
1) Lancer Spyder et fermer les programmes ouverts dans l'éditeur issus de la session précédente.
2) Dans la console, créer la variable globale notes en lui affectant une liste vide ainsi que la variable
globale moyenne en lui affectant la valeur 0.
3) Créer un nouveau programme et l'enregistrer sous le nom gestion_notes.py dans un dossier
TP1_2_stockage.
Liste des opérations que devra effectuer le programme gestion_notes.py:
• afficher :
- un saut de ligne pour séparer les messages du programme des messages écrits au lancement
dans la console,
- le message 'La liste des notes est :' suivi de la liste des notes,
- le message 'La moyenne des notes est :' suivi de la moyenne.
Lycée Jules Ferry Cannes
Page 1 sur 3
TSI1
Informatique
•
•
•
4)
5)
TP1.2
Stockage des données en python
demander la saisie d'une note par l'utilisateur. Cette note sera ajoutée comme un flottant dans la
liste notes
calculer la moyenne par la formule moyenne=(moyenne*(len(notes)-1)+notes[-1])/len(notes)
une fois la nouvelle note mémorisée, on affiche un message (pour confirmer la saisie) qui sera
identique au message avant la saisie.
Vous pouvez exécuter plusieurs fois le programme gestion_notes pour constater que notes et
moyenne sont bien des variables globales. Elles sont mémorisées pendant toute la durée de la
session Spyder.
Fermer puis relancer Spyder. Vous constatez que les variables notes et moyenne ont été
supprimées.
2 Stockage des données dans un fichier
Afin de ne pas perdre les données d'une session à une autre, il convient de stocker les variables dans un
fichier.
Utiliser votre programme plusieurs fois, ou affecter directement dans la console les variables suivantes:
>>> notes=[8,10,12]
>>> moyenne=10
Rappel des instructions utiles à cette partie :
Pour quoi faire ?
fonction entrée(s)
open
chaines de
Créer un fichier
caractères : nom
(ou écraser un fichier
du fichier, mode
existant)
de lecture 'w'
open
Ouvrir un fichier
existant
Exécuter les lignes de
commandes
contenues dans une
chaine de caractères
exec
chaines de
caractères : nom
du fichier, mode
de lecture 'r'
chaine de
caractères
contenant des
lignes de code en
python
sortie
le fichier
exemples
monfichier=open('archives.txt','w')
NB permet l'écriture
le fichier
monfichier=open('archives.txt','r')
erreur si le fichier n'existe pas
celles
contenus
dans le code
exécuté
exec("a=1")
affecte la valeur 1 à la variable a
Méthodes permettant le travail sur un fichier nommé f à l'ouverture :
Pour quoi faire ?
Méthode Exemples
Commentaires
Lire le contenu d'un
la variable texte contient la chaine de caractère
read
texte=f.read()
fichier ouvert en lecture
contenu dans le fichier f.
(mode 'r')
Ecrire dans un fichier write
la chaine de caractères est écrite dans le fichier f
f.write('texte à
ouvert en écriture
écrire')
à la suite du texte qui a été écrit depuis
(mode 'w')
l'ouverture en mode écriture 'w'
Fermer un fichier
close
f.close()
La fermeture de fichier ouvert est une bonne
habitude à prendre (évite les conflits d'écriture).
6) A la fin du programme gestion_notes.py ajouter les instructions permettant de :
- créer un fichier notes_save.txt en utilisant la fonction open en mode écriture 'w'
- créer une chaine de caractères, stockée dans une variable script, contenant le code pour
générer la variable notes à partir de son contenu actuel et la variable moyenne affectée de sa
valeur.
Lycée Jules Ferry Cannes
Page 2 sur 3
TSI1
Informatique
TP1.2
Stockage des données en python
solution partielle : "notes="+str(notes)+"\nmoyenne… permettra à l'exécution de créer les
variables notes et moyenne affectées de leurs valeurs actuelles.
- ouvrir le fichier notes_save.txt
- écrire la chaine de caractères script dans le fichier notes_save.txt
7) Après avoir exécuté, une fois votre programme gestion_notes.py modifié selon la question 7),
ajouter en début de programme, les instructions permettant de récupérer les informations stockées
dans le fichier notes_save.txt:
- ouvrir le fichier notes_save.txt en lecture (mode 'r') que l'on nommera file
- lire le contenu du fichier file dans la variable script
- fermer le fichier file,
- exécuter le code contenu dans la chaine de caractère stockée dans script.
8) Exécuter plusieurs fois votre programme gestion_notes.py afin de vérifier qu'il fonctionne
correctement.
9) Vous pouvez ouvrir le fichier notes_save.txt avec le bloc note (ou avec Spyder) pour constater qu'il
s'agit bien d'un fichier texte. Le répertoire par défaut, où est enregistré ce fichier, est celui où a été
enregistré le dernier programme python lors de son exécution.
10) Vérifier que la place prise par un caractère (chiffre, lettre, espace, retour à la ligne) prend bien un
octet. Pour cela, on comparera le nombre de caractères dans le fichier à l'espace pris par le fichier
en mémoire (cliquer droit sur le fichier dans l'explorateur windows).
11) Pour compléter la programmation, on peut envisager de :
- mémoriser les notes concernant plusieurs activités (kholles, interrogation et DS)
- calculer la moyenne générale de ces activités éventuellement coefficientées (coefficient
respectifs 3, 2 et 5).
Lycée Jules Ferry Cannes
Page 3 sur 3
TSI1
Téléchargement