Vous êtes sur la page 1sur 38

Les dictionnaires

 Les dictionnaires sont un type composite, semblables aux listes dans une
certaine mesure (ils sont modifiables comme elles), mais ce ne sont pas
des séquences
 Un dictionnaire est composé de paires (clé, valeur)
 La clé permettra d’accéder à la valeur
 Une clé pourra être:
 Alphabétique

 Numérique

 Un type composite

 Les valeurs associées à ces clés peuvent êtres de n’importe quel type
Création d'un dictionnaire
2

 Puisque le type dictionnaire est un type modifiable, nous pouvons


commencer par créer un dictionnaire vide, puis le remplir petit à petit.
 Du point de vue syntaxique, on reconnaît une structure de données de
type dictionnaire au fait que ses éléments sont enfermés dans une paire
d'accolades
 Exemple:
Opérations sur les dictionnaires
3
les méthodes spécifiques aux dictionnaires
4

 keys() :renvoie la liste des clés utilisées dans le dictionnaire :

 values() :renvoie la liste des valeurs mémorisées dans le dictionnaire :

 items() : extrait du dictionnaire une liste équivalente de tuples :


les méthodes spécifiques aux dictionnaires
5

 copy() :permet d'effectuer une vraie copie d'un dictionnaire

 À ne pas confondre avec une affectation


Parcours d'un dictionnaire
6

 Le parcours d’un dictionnaire pose quelques difficultés. Comme ce n’est


pas une séquence, il n’ya pas de relation d’ordre pré-établie entre les
éléments afin de parcourir toutes les données d’un dictionnaire.

Pour effectuer un traitement sur les valeurs, il suffit de récupérer chacune d'elles
à partir de la clé correspondante
Parcours d'un dictionnaire
7

 Il est recommandé de faire appel à la méthode items()


Les clés ne sont pas nécessairement des chaînes de
caractères
8
Exemple:
 Comment utiliser une structure
de matrice (100*100) pour
n’y mettre que quelques
éléments
 Nous avons 4 pions à placer
sur la matrice
 Comment optimiser la
mémoire?
 Solution: utiliser un
dictionnaire, dont les clés
seront des tuples indiquant les
coordonnées x,y de chaque
arbre

La méthode get admet deux paramètres: Le premier argument est la clé de recherche,
le second argument est la valeur que nous voulons obtenir en retour si la clé n'existe
pas dans le dictionnaire.
9 Les chaines de caractères
Chaînes de caractères
10

 Une chaine de caractères est structure de données non


modifiable

On peut modifier la valeur


de la variable avec une
affectation, mais pas l'un de
ses caractères
individuellement
Nous ne modifions pas la chaîne message. Nous en re-créons une nouvelle
avec le même nom à la deuxième ligne du script (à partir d'un morceau de la
précédente : il s'agit bien d'une nouvelle chaîne
Codage des chaines de caractères
11

 il existe plusieurs systèmes de codage : les plus connus sont les codages
ASCII,et ANSI, assez proches l'un de l'autre sauf en ce qui concerne les
caractères particuliers spécifiques des langues autres que l'anglais
(caractères accentués, cédilles, etc.).

 Un nouveau système de codage intégrant tous les caractères spéciaux de


toutes les langues mondiales est apparu depuis quelques années. Ce
système appelé unicode. Python l'intègre à partir de sa version 2
La table ASCII (7bit)
12
La table ASCII Etendue (8bit)
13
UNICODE
14

 le consortium Unicode initié par Xerox et Apple proposait d'abandonner


la limitation des 255 caractères en traitant d'un seul coup toutes les
langues du monde ( plus de 110 000 caractères couvrant 100 écritures)
 Les caractères Unicode sont numérotés en hexadécimal (base 16).
 Par exemple, le symbole euro a pour numéro 20AC en hexa :
Code ASCII en python
15

 La fonction ord(ch) accepte n'importe quel caractère comme argument.


elle retourne le code ASCII correspondant à ce caractère.
 La fonction chr(num) fait exactement le contraire. L'argument qu'on lui
transmet doit être un entier compris entre 0 et 255. En retour, on obtient
le caractère ASCII correspondant
Les chaînes sont comparables
16

 Tous les opérateurs de comparaison fonctionnent aussi avec les chaînes


de caractères
 les caractères forment une suite bien ordonnée dans le code ASCII, on
peut donc les comparer
 Exemple: Ecrire une fonction qui renvoie « vrai » si le paramètre qu'on lui
passe est une minuscule :
Opérations sur les chaines de caractères
17

 Len(): retourne la taille de la chaine


 +: Concaténation
 *: Répétition
Méthodes des chaines de caractères
18

 On peut classer les méthodes en plusieurs catégories :


 Gestion des espaces
 Gestion des majuscules et minuscules
 Test de la nature d’une chaine
 Recherche et remplacement
 Découpage et collage de chaînes
 Une nouvelle chaine est créée et renvoyée par les méthodes
 L'appel à une méthode ne modifie pas la chaine en elle-
même
Gestion des majuscules et des minuscules
19

Méthode Effet
upper() Remplace les minuscules par des majuscules
lower() Remplace les majuscules par des minuscules
capitalize() Passe la 1ère lettre de la chaine en majuscule et les autres en minuscules
title() Formate comme un titre (1ère lettre de chaque mot en majuscule, les
suivantes en minuscules)
swapcase() Inverse les majuscules et minuscules
Gestion des espaces
20

Méthode Effet
strip() Supprime les espaces en début et fin de chaine
rstrip() Supprime les espaces en fin de chaine
lstrip() Supprime les espaces en début de chaine
isspace() Renvoie True s’il n’y a que des espaces
expandtabs(tabsize) Remplace les tabulations par des espaces
Tests sur la nature de la chaîne
21

Méthode Effet
startswith(prefix) True si la chaine commence par prefix
endswith(prefix) True si la chaine se termine par prefix
isupper() True si la chaine ne contient que des majuscules
islower() True si la chaine ne contient que des minuscules
istitle() True si la chaine est formatée comme un titre
isdigit() True si la chaine ne contient que des caractères numériques
isalpha() True si la chaine ne contient que des caractères alphabétiques
isalnum() True si la chaine ne contient que des caractères
alphanumériques
Recherche et remplacement
22

Méthode Effet
index(sub) Renvoie l’index de la 1ère occurrence de la chaine sub,
exception si pas trouvée
rindex() Idem pour la dernière occurrence
find(sub) Comme index mais renvoie -1 si la chaine n’est pas
trouvée
rfind() Idem pour la dernière occurrence
count(sub) Retourne le nbr d’occurrence de la sous-chaine
replace(old, new [,max]) Remplace la sous-chaine old par new, au plus max fois
(par défaut, remplace toutes les occurrences)
Découpage et collage
23

Méthode Effet
split(sep) Crée une liste de tous les mots de la chaîne en utilisant sep
comme séparateur
Lien.join(list) Fusionner les membres d’une liste avec le mot de liaison lien
Accès et extraction
24
25 Les fichiers
définitions
26

 Un fichier stocke des informations sur un support physique (disque dur,


clé USB, CD, DVD, carte mémoire SD...).
 Ouvrir un fichier consiste à le charger dans la mémoire vive (RAM) de
l'ordinateur (c'est une mémoire volatile : elle s'efface quand on éteint
l'ordinateur).
 Enregistrer un fichier consiste à l'écrire sur un support physique de
stockage (l'information est alors conservée de manière permanente).
 Il existe deux types de fichiers :
 Les fichiers textes : l'information est stockée sous forme de caractères
lisibles par un éditeur de texte (principalement des lettres et des
chiffres).
 Les fichiers binaires : l'information est stockée en binaire
Ouvrir un fichier
27
Ecrire dans un fichier
28

 L’écriture de données d’un fichier se fait avec la fonction write() en mode


Ecriture
 Exemple:
 Créer un fichier avec le nom « liste_enseignants » dans le répertoire
courant(le même répertoire qui contient le script)
 Écrire le texte « Belghiti Moulay Taib) dans le fichier
Exemple
29
Résultat
30
Fermeture d’un fichier
31

 Tant que le fichier n’est pas fermé, son contenu n’est pas garanti sur le
disque. Une seule méthode de fermeture :
Nom_fichier_logique.close()
Lecture d’un fichier texte
32

 La lecture de données d’un fichier se fait avec la fonction read() en mode


lecture

 Les fichiers texte sont structurés en lignes .

 Afin de traiter plus facilement un fichier texte on utilisera le marqueur de


fin de ligne

 La fonction readlines() lira toute une ligne du fichier en y incluant le


marqueur de fin de ligne
Lecture avec readlines :Exemple 1
33

Code source

Résultat
Lecture avec readlines: Exemple 2
34

Code source

Résultat
Lecture avec read()
35

 Il existe d'autres méthodes que readlines() pour lire (et manipuler) un


fichier. Par exemple, la méthode read() lit tout le contenu d'un fichier et
renvoie une chaîne de caractères unique.
Lecture avec readline()
36

 La méthode readline() (sans s) lit une ligne d'un fichier et la renvoie sous
forme d'une chaîne de caractères.
 À chaque nouvel appel de readline(), la ligne suivante est renvoyée.
Associée à la boucle while, cette méthode permet de lire un fichier ligne
par ligne.
Itérations directement sur le fichier

37

La boucle for va demander à Python d'aller lire le fichier ligne par ligne.
Privilégiez cette méthode par la suite.
Ajouter des lignes à un fichier
38

Vous aimerez peut-être aussi