Informatique Cours S1.2 Stockage des données en python 1 Variables en python 1.1 Différentes classes ou types de variables Les variables en python sont des mémoires dans lesquels sont stockées des données. Les variables sont initialisées à chaque session de python. Ces variables peuvent être de 5 types. Pour faciliter la lecture des programmes, on utilise de préférence les noms couramment rencontrés ou des noms qui traduisent bien leur contenu. Type de variable Type en Exemple de Exemple d'affectation Lettre couramment python valeur utilisée entier (integer) 1 i=1 compteur :i,j,k int 2 n=2 nombre: n ou N décimal ou flottant float 0.001 100.0 mini=10e-3 maxi=100.0 booléen bool True False test=True test=False chaine de caractère (string) str liste (liste de nombre, de chaine de caractères, de booléen et même de listes) list 'Lettres' 'Une phrase' "Une phrase" [0,1,2,2,3] ['a','b','c'] ['a',1,False] mot='Lettres' phrase='Une phrase' phrase="Une phrase" L1=[0,1,2,2,3] chaines=['a','b','c'] liste=['a',1,False] L La variable prend le type de ce qui lui est affecté. Le type d'une variable peut évoluer au cours d'un programme. Pour des raisons de compréhension et pour éviter les conflits, il est préférable de ne pas utiliser le même nom de variable pour stocker deux données différentes. Lorsque l'on souhaite connaitre le type d'une variable on utilise la fonction type. >>> i=1 >>> type(i) <class 'int'> >>> type('abcd') <class 'str'> 1.2 Conversion de type La conversion d'un type en un autre type est envisageable. Elle peut permettre de récupérer un nombre à partir d'une chaine de caractères par exemple. Pour convertir en un type donné, on utilise le nom du type comme une fonction. >>> a='120' >>> int(a) 120 >>> float(120) 120.0 Lycée Jules Ferry Cannes Page 1 sur 4 TSI1 Informatique Cours S1.2 Stockage des données en python >>> str(120) '120' Si la conversion n'est pas possible, par exemple int("abcd"), python indique une erreur. Une autre solution pour convertir un texte en variable est la fonction exec, utile notamment lors de la lecture de fichiers. Cette fonction permet d'exécuter les instructions qui sont inscrites dans la chaine de caractère. >>> exec("a=20") >>> a 20 1.3 Effet du type sur les opérations de base Les opérations de base se comportent différemment selon le type des variables. Pour l'addition, par exemple : • pour les nombres, pas de surprises : - 1+1 2 - 1.0+1.0 2.0 - 1+1.0 2.0 • pour les chaines de caractères, les caractères sont concaténés (ajouter les uns derrière les autres) : - 'a'+'b' 'ab' - 'a'+'1' 'a1' • pour les listes, les éléments de la liste sont regroupés dans une liste commune : - [1,2]+[2] [1,2,2] - ['a','b']+['c',1] ['a','b','c',1] 2 Fonctions d'interface homme-machine 2.1 Saisie par l'utilisateur au cours d'un programme La fonction input permet de demander une saisie à l'utilisateur : • entrées : - la chaine de caractère inscrite entre les parenthèses (voire rien entre les parenthèses), les caractères frappés par l'utilisateur lorsque la fonction input est en cours d'exécution. La saisie se termine grâce à la touche Entrée du clavier, La chaine de caractère de la fonction input est inscrite dans la console où s'exécute le programme. Ce message est appelé l'invite de la fonction input. La saisie de l'utilisateur est inscrite dans la console à la suite de l'invite. • sortie : une chaine de caractère qui contient toutes les frappes de l'utilisateur. Il est nécessaire de stocker cette sortie dans une variable pour pouvoir la traiter dans la suite du programme. >>> a=input('Entrer la valeur de a :') Entrer la valeur de a :1 >>> a '1' Lycée Jules Ferry Cannes Page 2 sur 4 TSI1 Informatique Cours S1.2 Stockage des données en python Si on souhaite récupérer l'entier saisi, on utilisera l'instruction int(a) : >>> a=int(a) >>> a 1 2.2 Affichage dans la console au cours d'un programme La fonction print permet d'afficher du texte ou le contenu des variables dans la console python où s'exécute le programme : • • entrées : du texte ou le nom des variables séparés par des virgules. sortie : aucune , la fonction affiche du texte dans la console mais elle ne renvoie rien. Si on stocke ce qu'elle renvoie dans une variable on obtient None (rien en anglais). >>> print("abc") abc >>> a=120 >>> print(a) 120 >>> print('La valeur de a est :' , a , ',sans unité.') La valeur de a est : 120 ,sans unité. 3 Stockage sur disque dur Les variables dans la console python sont initialisée à chaque nouvelle session. Le moyen pour stocker des données dans la durée est un fichier (enregistré sur le disque dur à priori). Les fichiers que l'on va utiliser sont des fichiers texte dont le contenu est une chaine de caractères à plusieurs lignes. Chaque caractère (lettre, chiffre, espace, retour à la ligne…) occupe un octet en mémoire. 3.1 Ouverture (voire création) d'un fichier Pour ouvrir le fichier on utilise la commande suivante : >>> monfichier=open("nom","mode") où : • monfichier est un nom qui sera ensuite utilisé pour désigner le fichier lors des opérations de traitement. • nom est le nom du fichier à ouvrir. Par défaut, le répertoire courant de chargement est celui d’exécution du programme. • mode est le mode d’ouverture du fichier (d’autres mode sont disponibles nous ne citons que ceux que nous utiliserons ) : - "r" mode lecture (On ne peut pas écrire dans le fichier) - "w" mode écriture. Le fichier est créé s’il n’existe pas. Si le fichier existe déjà son contenu est détruit. - "a" mode ajout. On peut écrire des lignes à partir de la fin du fichier. exemples : ouverture du fichier notes.txt en lecture : >>>fichierNotes =open("notes.txt","r") ouverture du fichier notes.txt en écriture (création ou écrasement du fichier initial): >>> fichierNotes =open("notes.txt","w") Lycée Jules Ferry Cannes Page 3 sur 4 TSI1 Informatique Cours S1.2 Stockage des données en python 3.2 Fermeture d'un fichier Si on a ouvert un fichier (avec la commande open) dont le nom est file1. Pour la fermeture du fichier file1: >>> file1.close() 3.3 Lecture des données contenues dans le fichier On ne s'intéresse dans ce paragraphe qu'à la lecture complète du fichier file1. Lecture du fichier en une seule chaine de caractère : >>> file= file1.read() # la chaine de caractère du fichier est lue puis stockée dans la variable texte Obtention de la liste des lignes d’un fichier >>> lignes=file1.readlines() # la liste lignes contient chaque ligne sous forme de chaine de caractères 3.4 Ecriture des données contenues dans le fichier Ecriture dans le fichier à partir de la position courante en mode "w", >>> file1.write("écriture de ce contenu") Références : http://general.developpez.com/cours/ https://docs.python.org/3/ Lycée Jules Ferry Cannes Page 4 sur 4 TSI1