0% ont trouvé ce document utile (0 vote)
4 vues22 pages

Cours - Python Brahim Bakkas Structures

Ce document présente les structures de données en Python, en se concentrant principalement sur les listes. Il explique comment créer, modifier et manipuler des listes, ainsi que les opérations et méthodes associées. Des exemples pratiques illustrent l'utilisation des listes dans des contextes variés.
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
4 vues22 pages

Cours - Python Brahim Bakkas Structures

Ce document présente les structures de données en Python, en se concentrant principalement sur les listes. Il explique comment créer, modifier et manipuler des listes, ainsi que les opérations et méthodes associées. Des exemples pratiques illustrent l'utilisation des listes dans des contextes variés.
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Python: Structures de données

Cours et exercices
Liste
Programmation sous Python
MPSI/PCSI
2022-2023 dictionnaire ensembles

Python

Brahim BAKKAS

Chaines de
tuple
caractères

Listes Définition Listes Définition

Les variables, telles que nous les avons vues, ne permettent de stocker qu'une Un tableau est un ensemble de cases (espace mémoire).
seule donnée à la fois. Or, pour de nombreuses données, comme cela est La taille de chacune des cases est conditionnée par le type de donnée que
souvent le cas, des variables distinctes seraient beaucoup trop lourdes à gérer. contient cette case.
Heureusement, tous les langages proposent des structures de données
permettant de stocker l'ensemble de ces données dans une «variable commune». Voici donc une manière de représenter un tableau (liste):
Ainsi, pour accéder à ces valeurs il suffit de parcourir la variable en utilisant les
indices.
Un tableau est une structure référencée par un seul nom et qui est composée de Data Data Data Data Data Data Data Data
plusieurs données stockées de manière contiguë en mémoire (les unes à la suite
0 1 2 3 4 5 6 7
des autres).

Brahim BAKKAS Langage Python 3 Brahim BAKKAS Langage Python 4


Listes initialisation Listes Définition

Listes sous python

En python, les tableaux sont appelés autrement : listes


peuvent être positifs ou bien négatifs.
A la différence des tableaux où on ne peut stocker que des données de même
Exemple: soit une liste des jours de la semaine:
type, une liste peut contenir des données de types différents.
Jours=['Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi', 'Dimanche']
La création liste se fait simplement par insertion des différentes valeurs Indices des déférentes valeurs de la liste
entre crochets [square brackets] en les séparées par virgules.
Exemples Indice pos 0 1 2 3 4 5 6
Jours Lundi Mardi Mercredi Jeudi Vendredi Samedi Dimanche
L=[] # Pour déclarer une liste vide
Indice nég -7 -6 -5 -4 -3 -2 -1

L = [ 10, 28 , 3, 9, -5 ] # Pour déclarer une liste de 5 entiers

L = [ 2.5 , False, "Meknes" , 50] # Pour déclarer une liste de quatre données -1.
# de types différents

Brahim BAKKAS Langage Python 5 Brahim BAKKAS Langage Python 6

Listes Modification Listes

Listes sont modifiables (mutable) Opérations sur les listes: + et *

Soit les deux listes suivantes


L1 = [0, 1, 2, 3, 4]
L2 = [5, 6, 7, 8, 9]
+ permet de concaténer deux listes
liste[indice]=nouvelle valeur
* permet de répéter une liste
Exemple modifier le jours lundi avec le jours anglais : Monday
Monday EXPRESSION RESULTAT DESCRIPTION
Ou bien avec les indices négatifs L1 + L2 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] Concaténation de deux
Jours[- Monday listes
L1+[10,12,13] [0, 1, 2, 3, 4, 10,12,13] Concaténation de deux
Si on affiche la liste jours on aura: listes
Jours L1*2 [0, 1, 2, 3, 4, 0, 1, 2, 3, 4]
['monday', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi', 'Dimanche']
Brahim BAKKAS Langage Python 7 Brahim BAKKAS Langage Python 8
Listes Listes Boucles

Opérateurs: in et not in Listes et boucles

généralement à un littérateur) ou bien while:


Soit les deux listes suivantes L= [0, 1, 2, 3, 4]
L1= [0, 1, 2, 3, 4] for i in range(5): Par indice de la case Par valeur de la case
L2 = [5, 6, 7, 8, 9] print(i, L[i])
0 for i in range(5): for element in L:
3 in L2
1 print(L[i]) print(element)
False ------------------------- -----------------------
2 0 0
Expression Résultats description 3 1 1
3 in L1 True 4 2 2
3 3
5 not in L2 False Teste de non appartenance. 4 4
Brahim BAKKAS Langage Python 9 Brahim BAKKAS Langage Python 10

Listes Boucles Listes Fonctions

Listes et boucles Manipulation des listes

Exemple 1: multiplier le contenu Exemple 2: somme des éléments Ci-dessous des fonctions qui manipule les listes sous python:

L= [0, 1, 2, 3, 4] FONCTION DESCRIPTION


L= [0, 1, 2, 3, 4]
for i in range(5): S=0 len(liste)
L[i] = L[i] *2 for elt in L:
Retourne la plus grande valeur dans la liste.
print(L) S += elt max(liste)
[0, 2,4,6,8] print(S)
Retourne la plus petite valeur dans la liste.
10 min(liste)

sum(liste)

Brahim BAKKAS Langage Python 11 Brahim BAKKAS Langage Python 12


Listes Fonctions Listes Méthodes

Manipulation des listes Manipulation des listes

>>>L= [8, 1, 6, 9, 2] Les listes sont des objets ( notion à étudier dans un
len
>>>L= [8, 1, 6, 9, 2] >>> len(L) cours plus loin)
>>> sum(L) 5
26
Les listes ont des méthodes très utiles qui facilite leurs
sum Fonctions max

>>>L= [8, 1, 6, 9, 2] >>>L= [8, 1, 6, 9, 2]


>>> min(L) min >>> max(L)
1 9
Brahim BAKKAS Langage Python 13 Brahim BAKKAS Langage Python 14

Listes Méthodes Listes

extend Méthodes de suppression: pop et remove

Méthode Description Exemples


méthodes
[Link](elem) elem à la fin de la A = [ 1, 2, 3] pop(indice) :par indice de la case
liste. [Link](0)
A = [1, 2, 3, 0] remove
[Link](pos, elem) elem à la position A = [ 1, 2, 3]
pos avec décalage des éléments [Link](2,8) Méthode Description Exemple
suivants. A=[1, 2, 8, 3]
>>>A = [ 2 , 5 , -3, 9]
[Link](liste2) Ajouter tous les éléments de la liste A=[1, 2, 3] >>>X = [Link]()
liste2 à la fin de la liste Liste B=[5,6]
[Link](i) -1 (le dernier élément # Résultat A = [ 2 , 5, -3 ] et X=9
[Link](B)
[1, 2, 3, 5, 6] de la liste). >>>Y=[Link](1)
résultat : A=[2,-3] et Y=5
Remarque: si on utilise la méthode append avec un élément de type liste: élement elem de la >>>A = [ 2 , 5 , -3, 9]
[Link](B) on aura le résultat suivant A= [1, 2, 3, [5, 6]] avec la liste B sera un
élément de la liste A qui se trouve à la position 3 A[3] contient la liste [5,6]
[Link](elem) esixte sinon une erreur. >>>[Link](5)
ValueError: [Link](x): x not in list A =[ 2 , -3 , 9 ]
Brahim BAKKAS Langage Python 15 Brahim BAKKAS Langage Python 16
Listes Listes

Méthodes: sort et reverse Méthodes: clear et copy

La méthode copy
Méthode Description exemple modifier sans toucher la premier liste.
>>> A=[1,2,3,4,5] La méthode clear permet de vider une liste, elle retourne une liste vide []
dans la liste >>> [Link]()
[Link]() >>> A Méthode Description Exemple
[5, 4, 3, 2, 1]
[Link]() Trie la liste dans un ordre: >>>A=[1,2,3]
>>> A = [2,6,1,9] Permet Liste
>>>B=[Link]()
- Croissant par défaut >>> [Link]() [Link]()
>>>B
[Link](reverse=False) (reverse=False) >>> A Liste de départ
[1,2,3]
- Décroissant (reverse=True) [1, 2, 6, 9]
>>>[Link](reverse=False)
[Link](reverse=True) >>> A=[1,2,3]
>>> A [1, 2, 6, 9]
élémént de la liste >>> [Link]()
>>>[Link](reverse=True) [Link]()
Liste, elle retourne une liste vide [] >>> A
>>> A [9, 6, 2, 1] []

Brahim BAKKAS Langage Python 17 Brahim BAKKAS Langage Python 18

Listes Listes

Méthodes: count et existe Méthode : count

La méthode count permet de Méthode .count : permet de compter le nombre d'occurrences d'un objet Python dans
La méthode index permet de une une liste, Il renvoie une valeur entière.
Méthode Description Exemple
>>>A=[1,2,3,2,4,2,5,1,2,6]
>>>A=[1,2,3,2,4,2,5,1,2,6]
>>>[Link](2) >>>[Link](2)
Permet de compter le nombre de
[Link](x) x dans la liste
3 # 2 existe 3 fois dans A 3
Liste. >>>[Link](9) >>>[Link](6)
1
>>>A=[1,2,3,2,4,2,5,1,2,6] >>>[Link](1)
Permet >>>[Link](2)
Liste sinon une 1 2
Liste. index(x, start=0) >>>[Link](2, 4) >>>[Link](7)
0. 5
ValueError: x is not in list >>>>>>[Link](8) 0
ValueError: 8 is not in list
Brahim BAKKAS Langage Python 19 Brahim BAKKAS Langage Python 20
Listes Listes

Méthode : index Copie d'une liste

Méthode .index (élément, début=0) ATTENTION !


indice de début par défaut 0. Dans le cas de plusieurs occurrences, il renvoie la >>> L = ['Dans', 'python', 'tout', 'est', 'objet']
première position de l'objet. >>> T = L T et L représente la même liste une
>>> T[4] = 'bon' modification de L entraine une
>>> T modification de T
>>> A=[1,2,3,3,1,2,1] >>> [Link](2)
['Dans', 'python', 'tout', 'est', 'bon']
>>> [Link](1) 1 >>> L
0 >>> [Link](2,3) ['Dans', 'python', 'tout', 'est', 'bon']
#position de 1 3 5 >>> R = [Link]() # ou bien R = T[ : ]
R est une copie identique à T mais
>>> [Link](1, 3) >>> [Link](5) >>> R[4] = 'objet' qui se trouve dans un autre
4 >>> T; R emplacement, une modification de
ValueError: [Link](x): x not in liste
['Dans', 'python', 'tout', 'est', 'bon'] L ne change pas la liste T
>>> [Link](3)
['Dans', 'python', 'tout', 'est', 'objet']
2
Brahim BAKKAS Langage Python 21 Brahim BAKKAS Langage Python 22

Listes Listes

Les sous-liste avec les slicing liste[start : stop : step] Exemples:

Créer une même liste avec une référence différente.


slicing Liste = [1, 2, 3, 4]
Pour créer une tranche (sous liste), tout se passe entre les crochets quand on sousListe = Liste [:]
appelle la liste. sousListe
[1,2,3,4]
liste = [1, 2, 3, 4]
sousListe = liste[0:2]
T= liste[ : 2] + [66] + Liste [ 2:]
sousListe
T
[1,2] [1, 2 , 66, 3, 4]
En fait on crée une tranche en mettant [stat (inclus) : stop (exclus)] à la place de
l'index seul. Ici on a demandé de copier dans tranche que liste[0] et liste[1]. T= Liste[:,2] + Liste [ 3:]
T
. [1, 2 , 4]
Brahim BAKKAS Langage Python 23 Brahim BAKKAS Langage Python 24
Listes

TP01 Python: Structures de données


Soit la liste suivante : [19, 6, 15, 6, 33, 9]
Liste
Ajoutez en fin de liste l'élément 17 et affichez la liste ;
Ajoutez en début de liste l'élément 24 et affichez la liste ;
Triez, affichez la liste ;
Renversez et affichez la liste ; dictionnaire ensembles

Supprimez le dernier élément de la liste. Affichez l'élément et la liste ;


Python
Supprimez le premier élément de la liste. Affichez l'élément et la liste;
Ajoutez à la fin de la liste la sous liste [27, 23, 4, 8] ;
Affichez la sous liste à partir du troisième élément ;
Affichez la sous liste composée du 2ième au 5ième élément ;
Chaines de
Affichez la liste composée des 2 derniers éléments en utilisant l'indexage négatif ; tuple
caractères
Affichez à l'aide de la boucle for la somme du contenu de la liste.
26
Brahim BAKKAS Langage Python 25

Tuples

tuple
Les Tuples en Python sont comme une liste. Il peut contenir une séquence d'éléments. La
différence est qu'elle est immuable. Un tuple est une collection séparés par une virgule,
et délimitées par des parenthèses.
Exemple
(1, 2.2)
Python : (0, 1, 2)
Remarques

Tuples recommandées pour la lisibilité.


>>> a =123,'abcd ',4.56,True
>>> b=(123,'abcd ',4.56,True)
>>> print(a==b)
True
Pour former un tuple
27
Brahim BAKKAS Langage Python 28
Tuples Tuples

Accès à un élément Affectations multiples

tuple Les tuples


tuple avec la même syntaxe que celle utilisée pour les listes. >>> a,b,c=1,2,3
Exemple
>>> t = (1, 2.2) variable auxiliaire) :
Pour obtenir la première composante du couple, on pourra alors évaluer : >>> a=2
>>> t[0] >>> b=3
1 >>> print('Avant :',a,b)
>>> t[1] >>> a , b = b , a
2.2 >>> print('Après :',a,b)

Avant : 2 3
Après : 3 2

Brahim BAKKAS Langage Python 29 Brahim BAKKAS Langage Python 30

Tuples Tuples

Tuples sont non immutables Fonctions

Attention : Valeurs immuables (nom modifiables)


sont:
Les tuples sont immuables >>> sum(a)
>>> a=(1,2,3,3,1,2,1) 13
>>> t =(1,2,3,4) >>> len(a) >>>b=[1,2,4]
>>> type(t) 7 # tuple converti une liste à un tuple
class tuple >>> max(a) >>> tuple(b)
>>> t[0] = 2 3 (1,2,4)
TypeError: 'tuple' object does not support item assignment >>> min(a) >>> a=(5,2,3,1,4)
2 >>> sorted(a) #return une liste trie
[1,2,3,4,5]

Brahim BAKKAS Langage Python 31 Brahim BAKKAS Langage Python 32


Tuples Tuples

Méthode : count Méthode : index

Méthode .count : permet de compter le nombre d'occurrences d'un objet Python dans Méthode .index (élément, début=0)
le tuple. Il renvoie une valeur entière. indice de début par défaut 0. Dans le cas de plusieurs occurrences, il renvoie la
>>> a=(1,2,3,3,1,2,1) première position de l'objet.
>>> [Link](1)
>>> a=(1,2,3,3,1,2,1) >>> [Link](2)
3
>>> [Link](1) 1
>>> [Link](2)
0 >>> [Link](2,3)
2
>>> [Link](3) 5
>>> [Link](1, 2) >>> [Link](5)
2
4 ValueError: [Link](x): x not in tuple
>>> [Link](5)
>>> [Link](3)
0
2
Brahim BAKKAS Langage Python 33 Brahim BAKKAS Langage Python 34

Tuples Tuples

Opérateurs + et *

Il est possible de tester si une valeur appartient à un tuple in :


>>> 3 in (1,2,3) + permet de faire la concaténation
True *
>>> 4 in (1,2,3)
False Expression Résultat Description
>>> 4 not in (1,2,3)
True (1,2,3)+(4,5,6) (1,2,3,4,5,6) Concaténation

>>> (1,2) in (1,2,3)


Répétition
False
>>> (2,1) in (1,2,3)

Brahim BAKKAS Langage Python 35 Brahim BAKKAS Langage Python 36


Tuples Tuples

Boucles (itération) Exemples

Les tuples sont itérables:


Expression Résultat Description
o avec index

o par élément. len((1,2,3)) 3 Nombre de valeurs dans un tuple

Itération par élément itération par index et range


(1,2,3)+(4,5,6) (1,2,3,4,5,6) Concaténation

T=(1,2,3) T=(1,2,3)
Répétition

for x in T: for i in range (len(T)):


print(x) print(T[i]) 3 in (1,2,3) True Teste

1 1
2 2 T=(1,2,3) 1
for x in T : 2 Iteration par boucle for
print(x) 3
3 3

Brahim BAKKAS Langage Python 37 Brahim BAKKAS Langage Python 38

Chaine de caractères Définition Chaine de caractères Définition

Chaine de caractères Chaine de caractères : initialisation

On peut les créer simplement les variables de type chaînes de caractères par
Les chaînes de caractères sont des variables contenants du texte. On
placement des caractères entre deux guillemets.
appelle ça "chaîne de caractères" car ce sont plusieurs caractères qui se
suivent (une suite de caractère) Exemples :
nom = "Python"
Dans une chaîne de caractères on peut trouver une succession de
adresse = "Meknès Marjane 2 N299"
Exemples de chaînes de caractères : Python traite les guillemets (double quottes) et les primes (les simples quottes) et
même un triplé de primes ou de guillemets, de la même façon.

Bonjour Je suis une chaine Programmation


Exemples description

Le type chaînes de caractères est très utilisé en informatique, il permet ch1 = "Bonjour Tout le monde ! " création par double quottes
dans plusieurs cas de simplifier la résolution des problèmes difficile à ch2 = 'Bonjour tout le monde !' création par simple quotes
résoudre de manière numérique.
ch3 = '''Bonjour tout le monde ! ''' création par un triple de primes

ch4 = """Bonjour tout le monde! """ création par un triple de guillemets

Brahim BAKKAS Langage Python 39 Brahim BAKKAS Langage Python 40


Chaine de caractères Définition Chaine de caractères Accès aux caractères

Chaine sur plusieurs lignes

Remarque: Une chaine de caractères est considérée comme étant une suite de caractère (liste), chaque
Avec les triples quottes, on peut étaler la chaîne de caractères sur plusieurs lignes. caractère occupe un emplacement de 0 à la langueur de la chaine -1
Exemple : Exemple >>> chaine = "HELLO"
>>> print( chaine[0]) >>> print( chaine[2])
>>> Ch = """ H L

nom: BAKKAS
Prenom : Brahim 0, le deuxième a pour index 1, etc...
0 1 2 3 4
Ville : Meknes
H E L L O
"""
-5 -4 -3 -2 -1

-1.

Brahim BAKKAS Langage Python 41 Brahim BAKKAS Langage Python 42

Chaine de caractères Méthodes utiles Chaines de caractères

Les chaînes sont des séquences non modifiables Opérateurs: in et not in

in teste si un élément appartient à une chaine ( généralement à un


[] ittérateur)
Soit les deux listes suivantes
(qui cherche intuitivement à remplacer une lettre dans une chaîne) : S1= "Salut"
salut = 'bonjour à tous' S2 = "MPSI"
salut[0] = 'B' Expression Résultats description
print(salut) True
Le résultat attendu par le programmeur qui a écrit ces instructions est « Bonjour à False Teste de non appartenance.
tous » (avec un B majuscule). Mais contrairement à ses attentes, ce script lève
une erreur du genre :
TypeError 'str' object does not support item assignment. Cette erreur est
provoquée à la deuxième ligne du script. On y essaie de remplacer une lettre
par une autre dans la chaîne, mais cela n'est pas permis.
Brahim BAKKAS Langage Python 43 Brahim BAKKAS Langage Python 44
Chaines de caractères Chaines de caractères Définition

Chaines et boucles Chaines de caractères sont immuables

En python, les chaines de caractères ne peuvent pas subir des modifications de la même. Ainsi
while:
S="Salut" >>> A= "Hello"
Par indice Par élément (caractère) >>> A[0] = "P" # instruction non permise.

for i in range(5): for car in S: Par contre on peut reconstruire une autre chaine à partir des partie de la premier chaine
print (S[i] ) print (car)
------------------------- -----------------------
S S >>> A= "Hello"
>>> A = "P" +A[1:] ello .
a a Pello
l l
u u
t t

Brahim BAKKAS Langage Python 45 Brahim BAKKAS Langage Python 46

Chaines de caractères Les opérateurs Chaines de caractères

Les opérateurs + et *

sousCHaine = chaine [début: fin: pas]


chaine1 = "Bonjour" Exemple1:
chaine2 = "Brahim" S= "Salut"
chaine = chaine1 + " " +chaine2 SH= S[:3]
print(chaine) SH
On obtient : Bonjour Brahim On extrait la chaine jusqu'au troisième élément (copier du début jusqu'à
l'index 3 (exclus), on obtient:
Opérateur * permet de multiplier (recopier) un chaine plusieurs fois
Exemple2:
ch = "abc"
S= "Salut"
chaine = ch*3
CH= S [1:]
print(chaine) CH
On obtient la chaine abc 3 fois: abcabcabc Ceci permet de copier de l'index demandé (inclus) jusqu'à la fin.

Brahim BAKKAS Langage Python 47 Brahim BAKKAS Langage Python 48


Chaines de caractères Slicing Chaine de caractères Méthodes utiles

Tableau des idiomes sur les slices: Exercices


les tranches avec la présence des deux points entre les crochets
(Chaine[début: fin: pas]). Action Code Exécution (s = "ABCDEFGHIJKL")
Début : index (inclus) correspond au début de la tranche (sous chaine). Extraction s[2:7] CDEFG
Fin: index (exclus) correspond à la fin de tranche Les 4 premiers s[:4] ABCD
Pas présente le pas de décalage, par défaut =1. Les 4 derniers s[-4:] IJKL
chaine[2:4] Tous sauf les 4 premiers s[4:] EFGHIJKL
Chaine = "abcdef "
Tous sauf les 4 derniers s[:-4] ABCDEFGH
chaine[2:] chaine[1:5:2] Partitionner s[:3], s[3:7], s[7:] ('ABC', 'DEFG', 'HIJKL')
'cdef
De 3 en 3 s[::3] ADGJ
chaine[:4] chaine[:] De 3 en 3 à partir de la fin s[::-3] LIFC
'abcd 'abcdef' Les indices pairs s[::2] ACEGIK
chaine[:] chaine[0:6:3] Les indices impairs s[1::2] BDFHJL
Copie superficielle s[ : ] ABCDEFGHIJKL
'abcdef' chaine[::-1]
Copie à l'envers s[::-1] LKJIHGFEDCBA
'fedcba

Brahim BAKKAS Langage Python 49 Brahim BAKKAS Langage Python 50

Chaines de caractères Méthodes utiles Chaine de caractères Fonctions utiles

Opérateur de formatage des chaines de caractères (%) Fonctions: len, str et eval.

Une des choses les plus importantes en PYTHON Pour utiliser une fonction avec des arguments
%) de formatage de chaines de caractères chaine on doit utiliser la syntaxe suivante:
fonction(chaine)
len(chaine) Retourne la taille de la chaine
de données a aficher: ch ="Python"
taille = len(ch)
print(taille)
s pour chaine, d pur les entier, f pour les réels. On obtient : 6
print("Mon nom est %s %d str(nombre) Transforme un chiffre en texte
ch= str(6)
print("Mon nom est %s %f print(ch)
On obtient : le caractère '6'
eval
ch= eval('6')
print(ch)
On obtient : le chiffre 6

Brahim BAKKAS Langage Python 51 Brahim BAKKAS Langage Python 52


Chaine de caractères Fonctions utiles Chaine de caractères Fonctions utiles

Fonctions: ord et chr Fonctions: ord et chr

ord chr
Les deux fonctions chr et ord
Pour obtenir le code ascii d'un caractère - Pour obtenir le caractère correspondant
caractère dans une liste à un code ascii on utilise la fonction chr(i)
normalisée appelée ASCII), il suffit où i est un nombre compris entre 0 et 255
ord("A") d'appliquer la fonction ord(c) où c est le qui représente le code ascii du caractère.
caractère en question. ord renvoie un
Donne 65
nombre entre 0 et 65535.
ord("a")
S'il s'agit d'un caractère ascii, le code
Donne 97 sera compris entre 0 et 255.
chr(codeAscii) Transforme le code ASCII en caractère >>> ord('A'),ord('B'),ord('C') >>> chr(65),chr(66),chr(67)
(65, 66, 67) ('A', 'B', 'C')
chr(66)
>>> ord('a'),ord('b'),ord('c') >>> chr(97),chr(98),chr(99)
Donne 'B' (97, 98, 99)
('a', 'b', 'c')
chr(110) >>> ord(' ')
>>> chr(32)
32
''
>>> ord('à'),ord('è'),ord('é')
Application dans le cryptage des caractères (224, 232, 233)
>>> chr(224),chr(232),chr(233)
('à', 'è', 'é')

Brahim BAKKAS Langage Python 53 Brahim BAKKAS Langage Python 54

Chaine de caractères Méthodes utiles Chaine de caractères Méthodes utiles

Méthodes: majuscule et minuscule find et index

.find(car) Retourne l'index du caractère s'il est présent dans la chaîne ou -1 sinon.
Pour appliquer une méthode à une chaine avec une liste des arguments on doit utiliser la
syntaxe suivante: >>> chaine = "Brahim"
Chaine.méthode(listes arguments) >>> [Link]("h")
On obtient : 3
.upper() Retourne la chaîne en majuscule. Si le caractère n'est pas présent, find retourne -1
chaine = "brahim" >>> c="brahim"
majuscule = [Link]() >>> [Link]("d")
print(majuscule) on obtient -1.
On obtient : BRAHIM .index(car) Retourne l'index du caractère s'il est présent dans la chaîne.
.lower() Retourne la chaîne en minuscule. >>> c="brahim"
chaine = "BRAHIM" >>> [Link]("h")
minuscule = [Link]()
Si le caractère n'est pas présent, on aura une erreur: ValueError: substring not found
print(minuscule)
On obtient : brahim

Brahim BAKKAS Langage Python 55 Brahim BAKKAS Langage Python 56


Chaine de caractères Méthodes utiles Chaine de caractères Méthodes utiles

Méthodes: split et join Méthodes:

.split() Retourne la chaîne sous forme de liste selon du séparateur. Méthodes Description ( S est une chaine de caractère)
chaine = "Salut ca va ?" [Link]() Renvoit True si S est composé uniquement des caractères {abcd...z} {ABCD...Z}
liste = [Link](" ") # séparateur est un espace {012..9}
print(liste) [Link]() renvoit True si S est composé uniquement des caractères {abcd...z} {ABCD...Z}
Comme ici le séparateur est l'espace, on obtient la liste suivante:
['Salut', 'ca', 'va', '?']. [Link]() renvoit True si S est composé uniquement des caractères {012..9}

.join() Retourne une liste sous forme de chaîne selon du séparateur. [Link]() renvoit True si S est composé uniquement de caractères minuscules
liste = ["Salut", "ca", "va", "?"]
[Link]() renvoit True si S
chaine = " ".join(liste) # join les éléments de la liste avec un espace chariot..)
print(chaine) [Link]() renvoit True si S
Comme ici le séparateur est l'espace, on obtient la chaine suivante Salut ca va ?. majuscule.
[Link]() renvoit True si S est composé uniquement de caractères majuscules

Brahim BAKKAS Langage Python 57 Brahim BAKKAS Langage Python 58

Chaine de caractères Méthodes utiles Chaine de caractères Méthodes utiles

Les chaînes sont comparables Les chaînes sont comparables


Tous les opérateurs de comparaison dont nous avons parlé à propos des
instructions de contrôle de flux (c ' est-à-dire les instructions if ... elif ... Ces comparaisons sont possibles, parce que dans toutes les normes d'encodage, les codes
else ) fonctionnent aussi avec les chaînes de caractères. Cela peut vous numériques représentant les caractères ont été attribués dans l'ordre alphabétique, tout au moins
être utile pour trier des mots par ordre alphabétique : pour les caractères non accentués. Dans le système de codage ASCII, par exemple, A=65, B=66,
while True:
C=67, etc.
mot = input("Entrez un mot quelconque : (<enter> pour terminer)") Comprenez cependant que cela ne fonctionne bien que pour des mots qui sont tous entièrement
if mot =="": en minuscules, ou entièrement en majuscules, et qui ne comportent aucun caractère accentué.
Vous savez en effet que les majuscules et minuscules utilisent des ensembles de codes distincts.
break
Quant aux caractères accentués, vous avez vu qu'ils sont encodés en dehors de l'ensemble
if mot < "limonade":
constitué par les caractères du standard ASCII.
place = "précède"
Construire un algorithme de tri alphabétique qui prenne en compte à la fois la casse des
elif mot > "limonade":
caractères et tous leurs accents n'est donc pas une mince affaire.
place = "suit"
else:
place = "se confond avec"
print("Le mot", mot, place, "le mot 'limonade' dans l'ordre alphabétique")

Brahim BAKKAS Langage Python 59 Brahim BAKKAS Langage Python 60


Python: Structures de données

Liste

Python: dict
dictionnaire ensembles

Python
Dictionnaires

Chaines de
tuple
caractères

61 62

dictionnaire dictionnaire

Les types composés que nous avons abordés jusqu'à présent (chaînes, listes
et tuples) étaient tous des séquences, c'est-à-dire des suites ordonnées
d'éléments. Dans une séquence, il est facile d'accéder à un élément
quelconque à l'aide d'un index.
Les dictionnaires ressemblent aux listes dans une certaine mesure (ils sont
modifiables comme elles), mais ce ne sont pas des séquences (non
ordonnées). Nous pourrons accéder à n'importe lequel d'entre eux à l'aide
d'un index spécifique que l'on appellera une clé, laquelle pourra être

Brahim BAKKAS Langage Python 63 Brahim BAKKAS Langage Python 64


dictionnaire dictionnaire

Manipulation des dictionnaire

>>> dico = {'un' : 'one', 'deux': 'two three'} # Un dictionnaire >>> dico = {} # initialiser un dictionnaire vide
>>> print(dico) >>> # Ajouter une clé et sa valeur
{'un' : 'one', 'deux': 'two', 3: 'three'} >>> dico souris # Ajouter une clé et sa valeur
>>> dico # Ajouter une clé et sa valeur
>>>
>>> print(dico)
one
{'computer': 'ordinateur', 'keyboard': 'clavier', 'mouse': 'souris'}
>>> dico >>> print(dico['mouse'])
deux souris
>>> dico[3] >>> print(dico[ ])
three ordinateur
>>> type(dico) >>> dico['mouse'] = 100
dict >>> dico['keyboard'] = 200
>>> print(dico)
{'computer': 'ordinateur 200 100}

Brahim BAKKAS Langage Python 65 Brahim BAKKAS Langage Python 66

dictionnaire dictionnaire

Fonctions Méthodes

>>> dico= {'computer': 'ordinateur', 'keyboard': 'clavier', 'mouse': 'souris }


>>> len(dico)
3
>>> sorted(dico) # liste des clés tries
[ ]
>>> any(dico)
True
>>> all(dico)
True
>>> d={} # dictionnaire vide
>>> any(dico)
True
>>> all(dico)
True
Brahim BAKKAS Langage Python 67 Brahim BAKKAS Langage Python 68
dictionnaire dictionnaire

Méthodes .keys() .values() et .items() Méthodes : get( clé) .pop( clé)

>>> fruits = {"pommes":21, "melons":3, "poires":31} >>> fruits = {"pommes":21, "melons":3, "poires":31}
>>> print([Link]
>>> print([Link]()) 21 # la valeur de la clés pommes
[pommes, melons, poires] # la liste des clés >>> print
21 # la valeur de la clés pommes
On peut avoir le même résultat avec la method .keys()
>>> print(fruits)
>>> print([Link]()) {"pommes":21, "melons":3, "poires":31}
[21, 3, 31] # la liste des valeurs >>> print([Link]
21 # la valeur de la clés pommes et la supprime
>>> print([Link]()) >>> print(fruits)
[ (pommes,21) , (melons,3) , (poires,31)] # la liste des tuples (clé,valeur) {"melons":3, "poires":31} # la clé pommes est supprimé avec pop

Brahim BAKKAS Langage Python 69 Brahim BAKKAS Langage Python 70

dictionnaire dictionnaire

Méthodes : .copy() . clear() et .update(dict)

>>> fruits = {"pommes":21, "melons":3, "poires":31} Manipulation des dictionnaires par des clés method .keys()
>>> fruitscopie= [Link]() # faire une copie de dictionnaire fruits >>> fruits = {"pommes":21, "melons":3, "poires":31}
>>> print(fruitscopie) >>> for cle in fruits:
{"pommes":21, "melons":3, "poires":31} print(cle)
>>> fruitsNew={"oranges":120, "banane":180, "poires":160} pommes
>>> [Link](fruitsnew) # les fruits après mise à jours melons
>>> print(fruitscopie) poires
{'pommes': 21, 'melons': 3, 'poires': 160, 'oranges': 120, 'banane': 180} >>>for cle in [Link]():
>>> print(fruits) print(cle)
{"pommes":21, "melons":3, "poires":31} pommes
>>> [Link]() #vidé le dictionnaire fruitsNew melons
>>> print(fruitsNew) poires

Brahim BAKKAS Langage Python 71 Brahim BAKKAS Langage Python 72


dictionnaire dictionnaire

Parcours dictionnaire Parcours dictionnaire

Manipulation des dictionnaires par valeur method .values() Manipulation des dictionnaires par clé et valeur method .items()
>>> fruits = {"pommes":21, "melons":3, "poires":31} >>> fruits = {"pommes":21, "melons":3, "poires":31}
>>> for valeur in [Link](): >>> for cle,valeur in [Link]():
print(valeur) print(cle, 'sa valeur est: ', valeur)
21 pommes sa valeur est: 21
3 melons sa valeur est: 3
31 poires sa valeur est: 31
Manipulation des dictionnaires par valeur : method .keys() Pour avoir le même résultat avec la method .keys()
>>>for cle in [Link](): >>>for cle in [Link]():
print(fruits[cle]) print(cle cle])
21 pommes sa valeur est: 21
3 melons sa valeur est: 3
31 poires sa valeur est: 31

Brahim BAKKAS Langage Python 73 Brahim BAKKAS Langage Python 74

Dictionnaire Dictionnaire

in et not in Manipulation des dictionnaires (méthodes)

Soit le Dictionnaire suivant Python inclut des méthodes de manipulation des dictionnaires :
>>> d={'computer': 'ordinateur', 'keyboard': 'clavier', 'mouse': 'souris'}
D = {"name": "zahra

>>> 'mouse' in dico [Link]() Retourne la liste de paires (clé, valeur)

True [Link]()
>>> 'mouse' in [Link]()
[Link]() Retourne la liste de valeurs stockées dans le dictionnaire
True
>>> 'souris' in dico [Link](D2) Met à jour le dictionnaire dictionnaire

False [Link]() Retourne une copie du dictionnaire


>>> 'souris' in [Link]()
[Link](keys, value) Crée et retourne un dictionnaire à partir de la liste keys et la valeur
True
Return la valeur de la clé key si ça existe dans le dictionnaire si non la
[Link](key, default)
fonction retourne la valeur default

[Link]() Vide le dictionnaire

Brahim BAKKAS Langage Python 75 Brahim BAKKAS Langage Python 76


Dictionnaire

Operations de bases sur les dictionnaires

Hafidi Driss', 'E985477' : 'Makhsou khalid' }


Expression Résultat Description

len(D) 2 Nombre de valeur dans le disctionnaire

'C451236' in D
D.has_key('C451236')
True
True
Python: set
C451236
for cle in D : print(cle) Iteration par boucle for
E985477

for val in [Link](): print( val)


Hafidi Driss
Makhsou khalid
Iteration par boucle for
Ensembles
for cle,val in [Link](): Hafidi Driss Iteration par boucle for
print( cle,val)
makhsou khalid

78
Brahim BAKKAS Langage Python 77

Ensemble (set) Ensemble (set)

Ensemble : le type (set) Ensemble : le type (set)

Un ensemble en Python est une collection d'objets sans répétition et sans ordre (donc sans #sets are unordered, it rearranges itself in sorted order
numérotage). Ce n'est PAS une séquence ! On les note comme en maths avec des accolades >>> a = {1, 2, 7, 5, 5}
{...}. >>>
Les éléments sont de types quelconques. #ensemble vide est crée par la function set()
Exemples: {5,3,-8,2} {'o','e','y','u','a','i'} {5,'foo',(3,-2),7.4} >>> empty_set = set()
L'ensemble vide se note set() et non {} qui crée un dictionnaire ! Un ensemble est défini à l'ordre près >>> print(empty_set)
:
set()
Exemples
>>> print(type(empty_set))
>>> {3,1,2} == {2,3,1}
<class 'set' >
True
>>> empty_dictionary = {}
>>> {3,2,3,2} == {2,3}
>>> print(type(empty_dictionary))
True
<class 'dict' >
>>> a = {7, 6, 5, 4, 3, 4, 5, 6}
>>> print(a)

Brahim BAKKAS Langage Python 79 Brahim BAKKAS Langage Python 80


Ensemble (set) Ensemble (set)

Création Fonctions
En extension :
>>> E = {5,2,3,1}
>>> E = {1, 2, 3, 5}
Avec la fonction set(...) de la classe set :
>>> a={1,2,3,5,8} >>> sum(a)
Convertire Chaine de caractères vers un ensemble
>>> E = set('aeiouy >>> len(a) 19
5
Convertireune liste vers un ensemble >>> max(a)
>>> E = set([5,2,5,6,2]) 8 >>> a={5,2,3,1,4}
{2, 5, 6}
>>> min(a) >>> sorted(a) #return une liste trie
Convertire u tuple vers un ensemble
>>> E = set((5,2,5,6,2)) 1 [1,2,3,4,5]
{2, 5, 6}

Brahim BAKKAS Langage Python 81 Brahim BAKKAS Langage Python 82

Ensemble (set) Ensemble (set)

Fonctions méthodes

Python inclut des fonctions de manipulation des ensembles : [Link](elem): ajouter un élément à s
add

copy : renvoie une shallow [Link] : pour enlever un élément


len(ensemble) Retourne le Nombre des valeurs dans un ensemble copy
copy pop au hasard et le renvoyer

max(ensemble) Retourne la plus grande valeur dans un ensemble


Set
[Link] : pour effacer
méthodes [Link](e) : retrait d'un
tous les éléments de s
min(ensemble) Retourne la plus petite valeur dans un ensemble clear remove élément (exception
KeyError si non présent).
sum(ensemble) Retourne la somme des elements un ensemble

[Link](t) : rajoute les éléments t update discard [Link](elem) : retrait d'un


élément s'il existe dans s

Brahim BAKKAS Langage Python 83 Brahim BAKKAS Langage Python 84


Ensemble (set) Ensemble (set)

Méthodes: add et pop méthodes


ou bien s&t
intersection
On ajoute un élément à un ensemble E avec la méthode [Link](x)
[Link](t) : sous
>>> E = {5,3,2,1} ensemble [Link]
>>> [Link](8) Ou bien s<=t issubset union
Ou bien s | t
>>> E {8,1,2,3,5} mutation !
Les éléments d'un ensemble ne sont pas numérotés.
On ne peut pas utiliser une notation comme e[i] puisque parler de l'élément numéro i n'a pas de
Set
sens! [Link](t) : différence
[Link](t): méthodes entres les ensembles
Il est possible d'obtenir un élément d'un ensemble E et de le supprimer en même temps avec la
issuperset difference
méthode pop(). ou bien s>=t Ou bien s-t
>>> E = {5,2,3,1}
>>> x = [Link]()
>>> (x, E)
[Link](t) : sont disjoint Symmetric s.symmetric_difference(t)
(1, {2,3,5}) Isdisjoint
difference
donc un ensemble est mutable ! (ou bien s^t).

Brahim BAKKAS Langage Python 85 Brahim BAKKAS Langage Python 86

Ensemble (set) Ensemble (set)

Opérateurs in et < Opérations sur les ensembles


Ensemble vide se note par set()
Soit toujour ensembe E ={5,3,2,1} >>> v= set()
>>> E = {5,3,2,1} Soit les deux ensembles suivant:
>>> E= {3,2,5,4}
Les éléments d'un ensemble ne sont pas numérotés.
>>> F= {1,7,2,5}
On ne peut pas utiliser une notation comme e[i] puisque parler de l'élément numéro
i n'a pas de sens! >>> E | F # Ou bien [Link](F)
L'opérateur in permet de savoir si un objet appartient à un ensemble. >>> {1,2,3,4,5,7}

L'opération E < F permet de tester si l'ensemble E est strictement inclus dans


>>> E & F # ou bien E. intersection(F)
l'ensemble F.
{2,5}
>>> {2,4} < {1,2,3,4} La différence de deux ensemble
True >>> E- F # ou bien [Link](F)
{3,4}
Ne pas confondre E-{x} qui construit un nouvel ensemble, avec la méthode [Link](x) qui

Brahim BAKKAS Langage Python 87 Brahim BAKKAS Langage Python 88

Vous aimerez peut-être aussi