Télécharger la présentation
Publié parIvon Delage Modifié depuis plus de 9 années
1
Programmer en Python Jean-Philippe Poli
2
Accès aux fichiers (généralités)
Comment désigner un fichier ? Par son nom: nomfichier . txt nom extension Extension Type de fichier Images jpg, gif, png … Documents doc, txt, xls Données binaires bin, dat Programmes exe
3
Accès aux fichiers (généralités)
Comment désigner un fichier ? Par son nom: nomfichier . txt nom extension Par son chemin: Absolu C:\répertoire1\sousrépertoire\ Relatif sousrépertoire\
4
Accès aux fichiers (généralités)
Mignonne, allons voir si la rose Qui ce matin avoit desclose Sa robe de pourpre au Soleil, A point perdu ceste vesprée Les plis de sa robe pourprée, Et son teint au vostre pareil. Las ! voyez comme en peu d'espace, Mignonne, elle a dessus la place Las ! las ses beautez laissé cheoir ! Ô vrayment marastre Nature, Puis qu'une telle fleur ne dure Que du matin jusques au soir ! Donc, si vous me croyez, mignonne, Tandis que vostre âge fleuronne En sa plus verte nouveauté, Cueillez, cueillez vostre jeunesse : Comme à ceste fleur la vieillesse Fera ternir vostre beauté. Fichier texte Fichier binaire
5
Accès aux fichiers (généralités)
6
Accès aux fichiers (généralités)
Fichier exécutable (exe) binaire Fichier excel (xls) binaire Fichier word (doc) binaire Fichier texte brut (txt) texte Fichier python (py) compliqué
7
Accès aux fichiers (généralités)
Un fichier python (py) est un fichier texte Si on l’ouvre avec l’éditeur de texte brut, on peut lire le contenu Pourtant si je double-clique dessus, le « programme » est exécuté ?? Table d’association des applications / type de fichiers .doc word .xls excel .py python (et pas idle!) double cliquer sur un fichier word indique à Windows de démarrer Word en mode « ouverture du fichier en paramètre » Double cliquer sur un fichier python indique à python d’interpréter le fichier Un fichier python est donc un texte que le programme python interprète à la volée: on parle de script et non pas de programme
8
Accès aux fichiers (en python)
Ouverture du fichier: monfichier = open(nom_du_fichier,mode) nom_du_fichier (str): l’adresse (absolue ou relative) et le nom du fichier mode (str): un mode d’ouverture parmi w, r, a monfichier (file): un objet représentant le fichier ouvert Exception levée: IOError Fermeture du fichier: monfichier.Close()
9
Accès aux fichiers (en python)
Attention, si vous employez des adresses relatives, vous devez spécifier un répertoire courant, à partir duquel le cheminement vers le fichier va se faire. from os import chdir chdir(r’c:\tp\AlgoProg’) Notez l’emploi du r devant l’adresse du fichier!
10
Accès aux fichiers (en python)
Entre l’ouverture en lecture et la fermeture, on peut lire des données: monfichier.read() (str) retourne tout le fichier monfichier.read(octets) (str) retourne au plus le nombre d’octets spécifiés suivants monfichier.readline() (str) lit la ligne suivante du fichier monfichier.readlines() (list of str) met toutes les lignes dans une liste Ce sont toutes des fonctions donc des expressions!
11
Accès aux fichiers (en python)
Entre l’ouverture en écriture et la fermeture, on peut écrire des données: monfichier.write(string) Écrit la chaîne string dans le fichier monfichier.writelines(li) Ecrit toutes les chaînes de li (list of string) dans le fichier. Attention, le retour à la ligne n’est pas ajouté automatiquement! Ce sont des procédures, donc pas de retour, donc des instructions.
12
Programmation orientée objet
On distingue les types de bases (int, float) des objets (str, list, dict…) Un objet est une entité qui regroupe: des variables pour caractériser son état des méthodes: instance.methode(…) Les objets sont des instances d’une classe Les listes et les dictionnaires sont des objets spéciaux
13
Méthodes des objets string (str)
Formatage de la chaîne de caractères S: S.capitalize() (str) Retourne une copie de S où seule la première lettre est en majuscule S.lower() (str) Retourne une copie de S où toutes les lettres sont en minuscules S.upper() (str) Retourne une copie de S où toutes les lettres sont en majuscules S.swapcase() (str) Retourne une copie de S où la casse est inversée S.title() (str) Retourne une copie de S où tous les mots commencent par une majuscule
14
Méthodes des objets string (str)
Tests de la chaîne de caractères S: S.isalnum() (bool) Retourne True si la chaîne S ne contient que des caractères alphanumériques et au moins 1 caractère. False sinon. Cousines: isalpha, isdigit, islower, isupper, isspace S.endswith(suffix,deb,fin) (bool) Retourne True si S termine par la chaîne suffix, False sinon. suffix peut être un tuple avec plusieurs suffixes alternatifs. deb et fin sont optionnels et fonctionnent comme le slicing. Cousine: startswith
15
Méthodes des objets string (str)
Passage de la chaîne de caractères S en liste (et vice versa): S.join(sequence) (str) Retourne une chaîne de caractère constituée de la concaténation des chaînes de caractères de la séquence séparées par S. S.split(sep) (list of str) Retourne une liste de chaînes de caractères formée des mots de S séparés par la chaîne sep. sep est optionnel: par défaut, c’est l’espace. S.splitlines(endchar) (list of str) Retourne une liste de chaînes de caractères constituée des lignes de S. endchar (bool) est optionnel et indique si le caractère <fin de ligne> doit être conservé ou pas.
16
Méthodes des objets string (str)
Recherche d’éléments dans S: S.count(sub,deb,fin) (int) Retourne le nombre de fois que la sous-chaîne sub apparaît dans S. deb,fin sont optionnels et fonctionnent comme le slicing. S.find(sub,deb,fin) (int) Retourne l’indice de la première occurrence de sub dans S, -1 en cas d’erreur. deb,fin sont optionnels et fonctionnent comme le slicing Jumelle: index, lance ValueError au lieu de -1. Cousine: rfind, rindex (r=reverse) S.replace(old,new) Remplace les occurrences de la chaîne old par new. Le module string comporte à peu près les mêmes fonctions.
17
Méthodes des listes (list)
Soit une liste L: L.append(elt) Ajoute l’élément en fin de liste L.extend(seq) Ajoute tous les éléments de seq ç la fin de L L.insert(index,objet) Ajoute l’élément à la position index. L.pop(index) (?) Retourne et supprime l’élément à la position index. index est optionnel, par défaut 0. L.remove(elt) Supprime l’élément de la liste L. L.sort() Trie la liste L. L.count(elt) (int) Indique le nombre d’occurrences de elt. L.index(elt,deb,fin) (int) Retourne l’indice de la première occurrence de elt. Deb et fin sont optionnels et se comportent comme le slicing. L.reverse() Inverse la liste.
18
Méthodes sur les dictionnaires (dict)
Soit D un dictionnaire: D.clear() Vide le dictionnaire. D.copy() (dict) Retourne une copie du dictionnaire. D.get(clé, default) (?) Retourne la valeur associée à clé si elle existe, sinon retourne la valeur default. default est optionnelle, par défaut vaut None. D.has_key(clé) (bool) Retourne True si la clé est présente, False sinon. D.items() (list of tuple) Retourne une liste de 2-tuples clé/valeur. D.keys() (list) Retourne la liste des clés. D.values() (list) Retourne la liste des valeurs.
19
Références d’objet En Python, TOUT est objet
ex.: 1 est une instance de la classe int, une fonction ou un module Une variable représente un lien vers cet objet (on parle de référence) La référence d’un objet est son adresse en mémoire c’est ce que nous donne la fonction id() Chaque nombre, chaque chaîne de caractère est une instance unique i.e.: il n’y a pas de instances de la classe int qui vaut 1
20
Références d’objet 2 1 Véritable sens de l’affectation
La variable A prend la valeur de la référence de l’objet 1 >>> B=A La variable B prend la valeur de la référence contenue dans la variable A, c’est-à-dire celle de l’objet 1 >>> A=A+1 La variable A prend la valeur de la référence de l’objet 2 (résultat de l’opération) 2 objet A 1 objet B
21
Références d’objet Mais alors que signifie tester l’égalité de deux objets ? Par exemple, de deux entiers ? Il existe deux opérateurs d’égalité d’objets == compare valeurs par valeurs deux objets is compare les références Illustration sur la console interactive
22
Slicing (découpage) Le slicing est une opération qui s’applique à n’importe quelle séquence. Elle permet de récupérer une partie ou la totalité d’une séquence. La nouvelle séquence est TOUJOURS un nouvel objet (même si la sous-séquence = séquence source). seq[indice1:indice2:pas] ATTENTION: indice2 n’est pas compris dans le résultat! Si indice1=indice2, cela retourne la séquence vide
23
Slicing (découpage) Soit L = range(1,11)
L est la liste (une séquence) [1,2,3,4,5,6,7,8,9,10] L[2:2] [] L[4:6] [5,6] L[:] [1,2,3,4,5,6,7,8,9,10] (copie d’une liste) L[1:100] [2,3,4,5,6,7,8,9,10] L[0:10:2] [1, 3, 5, 7, 9] L[-1] [10] L[:-2] [1,2,3,4,5,6,7,8] L[2:] [3,4,5,6,7,8,9,10] L[-5:-2] [6,7,8] L[-2:-5] []
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.