SlideShare une entreprise Scribd logo
14/01/2018
1
LES CONTENEURS À ACCÈS
SÉQUENTIEL ET À ACCÈS
DIRECT
2017-2018
© Imene Sghaier
Octobre 2017
ISET Nabeul-Mastère SEM2
INTRODUCTION
 Python permet de regrouper un ensemble de
données de même type ou de types différents à
l’intérieur de structures de données spéciales
appelées conteneurs. Il en existe deux catégories:
 Les conteneurs séquentiels: on note les listes, les
tuples et les chaines de caractères. Les éléments
de ces structures sont rangés en utilisant des
index ( commençant à partir de 0)
 Les conteneurs à accès direct: qui n’utilisent les
index pour l’accès
2
Imene Sghaier-Programmation Python
14/01/2018
2
PROPRIÉTÉS COMMUNES AUX CONTENEURS
 Les listes: une séquences d’éléments encadrés par des
crochets
 Les chaines: une séquences de caractères encadrés par des
côtes ‘’ ‘’ ou des chevrons ‘ ’
 Les tuples: une séquences d’éléments encadrés par des
parenthèses ()
3
Imene Sghaier-Programmation Python
LES OPÉRATIONS COMMUNES POUR LES CONTENEURS
SÉQUENTIELS
 La taille: len(C)
 Accès à un élément : nomConteur[indexElement]
 Les index permis sont compris entre
 0 et len(nomConteneur)-1 pour un parcours de gauche à droite
 -1 et -len(nomConteur) pour un parcours de droite à gauche
4
Imene Sghaier-Programmation Python
14/01/2018
3
LES OPÉRATIONS COMMUNES POUR LES CONTENEURS
SÉQUENTIELS
 Accès à une partie des éléments:
 NomConteneur[i:j] Renvoie un conteneur constitué des éléments
se trouvant entre la position i et la position j-1
 NomConteneur[i:] Renvoie un conteneur constitué des éléments
se trouvant entre la position i et la position len(nomConteneur)-1
 NomConteneur[:i] Renvoie un conteneur constitué des éléments
se trouvant entre la position 0 et la position i-1
 NomConteneur[::] Renvoie la totalité de la liste
 NomConteneur[::-1] renvoie la liste en inversant l’ordre des
éléments
 Test d’appartenance: x in nomConteneur
 Test de non âppartenance: x not in nomConteneur
 Concaténation : nomConteneur1+nomConteneur2 (il faut
que ça soient des conteneurs de même type) 5
Imene Sghaier-Programmation Python
LES OPÉRATIONS COMMUNES POUR
LES CONTENEURS SÉQUENTIELS
6
Imene Sghaier-Programmation Python
14/01/2018
4
LES OPÉRATIONS COMMUNES POUR LES CONTENEURS
SÉQUENTIELS
 Répétition: Cont*n: l’opérateur * permet de créer un conteneur
contenant n copoies Cont
 Recherche de la position d’un élément: nomCont.index(elmnt)
 Nombre d’occurrence d’un élément: nomCont.count(x)
 Minimim et maximum: min(nomCont), max(nomCont)
7
Imene Sghaier-Programmation Python
EXERCICE
 Ecrivez un script Python qui vérifie si une chaine de
caractères lue à partir du clavier est un palindrome ou non.
Un palindrome est un mot qui se lit de droite à gauche
comme de gauche à droite.
8
Imene Sghaier-Programmation Python
14/01/2018
5
COMMANDES SPÉCIFIQUES AUX LISTES
 Liste vide:
 L=[]
 L=list()
 Commande list
 Liste en compréhension :
9
Imene Sghaier-Programmation Python
COMMANDES SPÉCIFIQUES AUX LISTES
 Conversion d’une chaine en liste:
 Conversion d’un tuple en liste:
 Modification d’un élément :
 Modification d’un slice:
10
Imene Sghaier-Programmation Python
14/01/2018
6
COMMANDES SPÉCIFIQUES AUX LISTES
 Ajout d’un élément à la fin:
 Ajout d’un slice:
 Insertion dans une liste:
 Suppression d’un élément d’une liste:
 Suppression d’un slice d’une liste:
11
Imene Sghaier-Programmation Python
COMMANDES SPÉCIFIQUES AUX LISTES
 La copie :
 Le tri et l’inversion: avec les commandes sort et reverse
12
Imene Sghaier-Programmation Python
14/01/2018
7
COMMANDES SPÉCIFIQUES AUX TUPLES
 Création:
13
Imene Sghaier-Programmation Python
COMMANDES SPÉCIFIQUES AUX TUPLES
 Modification et ajout: Les tuples sont non
modifiables, toute tentative de mise à jour génère
une erreur
 On peut cependant ajouter des éléments on
écrasant l’ancien tuple
 NB: le (2, ) est un tuple à un seul élément, la
virgule est obligatoire
14
Imene Sghaier-Programmation Python
14/01/2018
8
COMMANDES SPÉCIFIQUES AUX CHAINES
 Test sur type de la chaine:
 Alphabétique: isalpha()
 Numérique : isdigit()
 Vide: isspace()
 Alphanumérique: isalnum()
 Conversion Majuscule/miniscule:
 upper()
 lower()
 Commence/se termine par:
 startswith(‘’… ‘’)
 endswith(‘’…’’)
 Eliminer les espaces à gauche et à droite: strip()
 Décomposition: la commande split utilise un caractere separateur
pour decomposer une chaine
15
Imene Sghaier-Programmation Python
COMMANDES SPÉCIFIQUES AUX CHAINES
 Rechercher une sous chaine: find
 Remplacer une sous chaine
 Coller plusieurs chaines
16
Imene Sghaier-Programmation Python
14/01/2018
9
LES DICTIONNAIRES
 Un dictionnaire est un conteneur modifiable non ordonné
composé d’un ensemble de couple (clès, valeur)
 Création:
 La commande dict avec comme paramètre une liste de listes,
chacun de la forme (clés, valeur)
 On peut remplir un dictionnaire vide on associant une valeur
à chaque clés
17
Imene Sghaier-Programmation Python
LES DICTIONNAIRES
 Si l'on demande la valeur associée à une clé inexistante, une
exception KeyError est levée
 Il est aussi possible de demander si la clé existe, avec
l'opérateur in
 La recherche est donc unidirectionnelle, comme dans un
dictionnaire Français-->Anglais. On va de la clé vers la
valeur !
 La clé doit être non mutable. Donc essentiellement des
chaînes et des nombres mais pas de listes. On peut utiliser
des tuples comme clés à condition qu'ils ne contiennent aucun
objet mutable.
dico = {1:'one', 2:'two', 3:'three'}
dico[2]
'two'
18
Imene Sghaier-Programmation Python
14/01/2018
10
LES DICTIONNAIRES
 On peut vouloir obtenir la liste de toutes les clés
ou bien la liste de toutes les valeurs. Les méthodes
keys() et values() retournent des vues (views) sur
les clés et les valeurs.
 Ces vues sont des objets itérables que l'on peut
parcourir avec une boucle for, ou transformer en
listes/ensembles. des objets bizarres...
cpt = 0
for k in dico.keys() :
if k % 2 == 0 :
cpt = cpt + 1
19
Imene Sghaier-Programmation Python
LES DICTIONNAIRES
20
Imene Sghaier-Programmation Python
14/01/2018
11
LES DICTIONNAIRES
 update: la syntaxe est dic1.update(dic2): fusionne 2
dictionnaires. Si une clès figure dans dic1 et dic2 alors la
valeur correspondante dans dic1 sera mise à jour sinon
une nouvelle clès est crée dans dic1
 pop: nomDic.pop(index): supprime l’entrée don’t la clè
est index et la retourne en résultat
 get : Elle fait la même chose que l’indexation mais si la
clé fourni en argument n’existe pas dans le dictionnaire
elle renvoie une autre valeur : None par défaut
21
Imene Sghaier-Programmation Python
LES DICTIONNAIRES
 Si on essaye de récupérer la valeur d’une clés qui
n’existe pas dans un dictionnaire une erreur de
type KeyError est génerée.
22
Imene Sghaier-Programmation Python
14/01/2018
12
LES DICTIONNAIRES
 NB: Seulement les objets immutable peuvent être
utilisés comme des clès dans un dictionnaire
 Les objets immutables sont ceux qui ne peuvent
pas changer
 Les seuls objets mutables qu’on connait jusqu’à
maintenant sont les listes et les dictionnaires
 En essayant d’utiliser un objet mutable comme clè
dans un dictionnaire gènère une erreur de type
TypeError
23
Imene Sghaier-Programmation Python
LES DICTIONNAIRES
 Juste comme les listes, les clès d’un dictionnaire
peuvent être affectées à de différentes valeur.
Mais, contrairement aux listes une nouvelle clè du
dictionnaire peut être affectée à de nouvelles
valeurs.
24
Imene Sghaier-Programmation Python
14/01/2018
13
LES ENSEMBLES
 Un ensemble en Python est une collection d'objets sans
répétition et sans ordre (donc sans numérotage). Ce n'est PAS
une séquence !
 On les note comme en maths avec des accolades {...}. Les
éléments sont de types quelconques. Exemples : {5,3,-8,2}
{'o','e','y','u','a','i'} {5,'foo',(3,-2),7.4}
 L'ensemble vide se note set() et non {} qui crée un dictionnaire
 On construit un ensemble comme suit
 Un ensemble est défini à l'ordre près :
 Un ensemble paraît trié en interne mais c'est uniquement
pour accélérer la recherche d'un élément :
25
Imene Sghaier-Programmation Python
LES ENSEMBLES
 Les ensembles “Sets” sont des structures similaires aux
listes et aux dictionnaires.
 Ils sont créés avec des accolades { et }
 On peut faire
 E = set('aeiouy')
 E = set([5,2,5,6,2])
 Ils ont quelques fonctions communes avec les listes comme
l’utilisation de in pour vérifier l’appartenance ou non d’un
élément à un ensemble.
 Pour créer un ensemble vide il suffit d’appeler la fonction
set() comme {} qui créé un dictionnaire vide
26
Imene Sghaier-Programmation Python
14/01/2018
14
LES ENSEMBLES
 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 sens
 L'opérateur in permet de savoir si un objet appartient à un
ensemble.
 L'opération E < F permet de tester si l'ensemble E est
strictement inclus dans l'ensemble F.
 Axiome du choix : il est possible d'obtenir un élément d'un
ensemble E et de le supprimer en même temps avec la
méthode pop().
27
Imene Sghaier-Programmation Python
LES ENSEMBLES
 Les ensembles diffèrent des listes mais possèdent divers fonctions
en commun comme la fonction len.
 Les ensembles ne sont pas ordonnés donc non indexés et il n’y
existe pas de duplication d’éléments
Grace à la façon don’t laquelle ils sont enregistrés, il est plus
rapide de vérifier si un élément appartient à un ensemble que de
vérifier la meme chose dans une liste.
 Les ensembles utilisent la méthode add pour l’ajout d’élément.
 La méthode remove supprime un élément specifique à partir
d’un ensemble
 La méthode pop supprime un élément arbitraire element.
28
Imene Sghaier-Programmation Python
14/01/2018
15
LES ENSEMBLES
 On peut combiner des ensembles en utilisant:
 L’opérateur de l’union | qui combine 2 ensembles pour
produire un nouvel ensemble contenant les éléments des 2
ensembles
 L’opérateur de l’intersection & qui produit un ensemble
contenant les éléments existant dans les deux ensembles
 L’operateur de difference - qui produit un ensemble
contenant les éléments existant dans l’un des ensemble et
pas dans l’autre.
 L’operateur de difference symmitrique ^ qui produit un
ensemble contenant les éléments ne figurant pas dans
l’intersection de deux ensembles
29
Imene Sghaier-Programmation Python
STRUCTURES DE DONNÉES
 Python supporte les structures de données suivantes: liste
dictionnaire, tuple et set
 La structure dictionnaire est conseillée d’être utilisé quand:
 On a besoin d’une association logique entre des paires de clè et
valeur
 On a besoin d’un accès direct et rapide aux données basé sur des
clès
 Nos données sont constament modifiées
 NB: Les dictionnaires sont mutables et les tuples sont
immutables
 On utilise une liste si nous avons une collection de données qui n’a
pas besoin d’accès direct, ou que nous avons besoin d’une collection
iterable de données qui sont fréquement modifiées
 Les ensembles sont distingués par l’unicité de leur éléments
 Les tuples sont utilisés quand les données changent fréquemment
30
Imene Sghaier-Programmation Python

Contenu connexe

Similaire à Python chapitre 2.pdf

Algo inf102 2007
Algo inf102 2007Algo inf102 2007
Algo inf102 2007
SergeCowouvi1
 
Language INtegrated Query LINQ
 Language INtegrated QueryLINQ Language INtegrated QueryLINQ
Language INtegrated Query LINQ
Said Sadik
 
Chap5 La manipulation des iterables en python
Chap5 La manipulation des iterables en pythonChap5 La manipulation des iterables en python
Chap5 La manipulation des iterables en python
Mariem ZAOUALI
 
ExJava.pdf
ExJava.pdfExJava.pdf
ExJava.pdf
OumaimaHm
 
Nettoyer et transformer ses données avec Openrefine : partie 2
Nettoyer et transformer ses données avec Openrefine : partie 2Nettoyer et transformer ses données avec Openrefine : partie 2
Nettoyer et transformer ses données avec Openrefine : partie 2
Mathieu Saby
 
Chapitre1: Langage Python
Chapitre1: Langage PythonChapitre1: Langage Python
Chapitre1: Langage Python
Aziz Darouichi
 
Python For Data Science - French Course
Python For Data Science - French CoursePython For Data Science - French Course
Python For Data Science - French Course
Haytam EL YOUSSFI
 
06 visual basic .net - les structures de donnees, les enumerations de constan...
06 visual basic .net - les structures de donnees, les enumerations de constan...06 visual basic .net - les structures de donnees, les enumerations de constan...
06 visual basic .net - les structures de donnees, les enumerations de constan...
Hamza SAID
 
M2 INAE introduction python.pdf
M2 INAE introduction python.pdfM2 INAE introduction python.pdf
M2 INAE introduction python.pdf
Hajer Amdouni
 
Chapitre 3 elements de base de java
Chapitre 3  elements de base de javaChapitre 3  elements de base de java
Chapitre 3 elements de base de java
Amir Souissi
 
Ns python 2
Ns python 2Ns python 2
Ns python 2
Olivier Rovellotti
 
Programmation en VBA Introduction au language Visual Basic for Applications ...
Programmation en VBA  Introduction au language Visual Basic for Applications ...Programmation en VBA  Introduction au language Visual Basic for Applications ...
Programmation en VBA Introduction au language Visual Basic for Applications ...
Bassim ELKHATTABY
 
Formation python 3
Formation python 3Formation python 3
Formation python 3
WajihBaghdadi1
 
Chap1 Introduction à python
Chap1 Introduction à pythonChap1 Introduction à python
Chap1 Introduction à python
Mariem ZAOUALI
 
Chapitre8: Collections et Enumerations En Java
Chapitre8: Collections et Enumerations En JavaChapitre8: Collections et Enumerations En Java
Chapitre8: Collections et Enumerations En Java
Aziz Darouichi
 
4sci ap(2)
4sci ap(2)4sci ap(2)
4sci ap(2)
bouatay adel
 
Typescript-V2_1.pptx
Typescript-V2_1.pptxTypescript-V2_1.pptx
Typescript-V2_1.pptx
LamineFahmi
 
Python.pptx
Python.pptxPython.pptx
Python.pptx
Jaouad Rachek
 

Similaire à Python chapitre 2.pdf (20)

Algo inf102 2007
Algo inf102 2007Algo inf102 2007
Algo inf102 2007
 
Language INtegrated Query LINQ
 Language INtegrated QueryLINQ Language INtegrated QueryLINQ
Language INtegrated Query LINQ
 
Python chapitre 4.pdf
Python chapitre 4.pdfPython chapitre 4.pdf
Python chapitre 4.pdf
 
Chap5 La manipulation des iterables en python
Chap5 La manipulation des iterables en pythonChap5 La manipulation des iterables en python
Chap5 La manipulation des iterables en python
 
ExJava.pdf
ExJava.pdfExJava.pdf
ExJava.pdf
 
Nettoyer et transformer ses données avec Openrefine : partie 2
Nettoyer et transformer ses données avec Openrefine : partie 2Nettoyer et transformer ses données avec Openrefine : partie 2
Nettoyer et transformer ses données avec Openrefine : partie 2
 
Python chapitre 1.pdf
Python chapitre 1.pdfPython chapitre 1.pdf
Python chapitre 1.pdf
 
Chapitre1: Langage Python
Chapitre1: Langage PythonChapitre1: Langage Python
Chapitre1: Langage Python
 
Python For Data Science - French Course
Python For Data Science - French CoursePython For Data Science - French Course
Python For Data Science - French Course
 
06 visual basic .net - les structures de donnees, les enumerations de constan...
06 visual basic .net - les structures de donnees, les enumerations de constan...06 visual basic .net - les structures de donnees, les enumerations de constan...
06 visual basic .net - les structures de donnees, les enumerations de constan...
 
M2 INAE introduction python.pdf
M2 INAE introduction python.pdfM2 INAE introduction python.pdf
M2 INAE introduction python.pdf
 
Chapitre 3 elements de base de java
Chapitre 3  elements de base de javaChapitre 3  elements de base de java
Chapitre 3 elements de base de java
 
Ns python 2
Ns python 2Ns python 2
Ns python 2
 
Programmation en VBA Introduction au language Visual Basic for Applications ...
Programmation en VBA  Introduction au language Visual Basic for Applications ...Programmation en VBA  Introduction au language Visual Basic for Applications ...
Programmation en VBA Introduction au language Visual Basic for Applications ...
 
Formation python 3
Formation python 3Formation python 3
Formation python 3
 
Chap1 Introduction à python
Chap1 Introduction à pythonChap1 Introduction à python
Chap1 Introduction à python
 
Chapitre8: Collections et Enumerations En Java
Chapitre8: Collections et Enumerations En JavaChapitre8: Collections et Enumerations En Java
Chapitre8: Collections et Enumerations En Java
 
4sci ap(2)
4sci ap(2)4sci ap(2)
4sci ap(2)
 
Typescript-V2_1.pptx
Typescript-V2_1.pptxTypescript-V2_1.pptx
Typescript-V2_1.pptx
 
Python.pptx
Python.pptxPython.pptx
Python.pptx
 

Plus de Institut Supérieur des Etudes Technologiques de Nabeul

Les sockets.pptx
Les sockets.pptxLes sockets.pptx
chapitre 7 Android 2.pptx
chapitre 7 Android 2.pptxchapitre 7 Android 2.pptx
chapitre 6 Android 2.pptx
chapitre 6 Android 2.pptxchapitre 6 Android 2.pptx
chapitre 5 Android 2.pptx
chapitre 5 Android 2.pptxchapitre 5 Android 2.pptx
chapitre 4 Android 2.pptx
chapitre 4 Android 2.pptxchapitre 4 Android 2.pptx
chapitre 3 Android 2.pptx
chapitre 3 Android 2.pptxchapitre 3 Android 2.pptx
chapitre 2 Android 2.pptx
chapitre 2 Android 2.pptxchapitre 2 Android 2.pptx
chapitre 1 Android 2.pptx
chapitre 1 Android 2.pptxchapitre 1 Android 2.pptx
chap 3 Technologies de communication.pdf
chap 3 Technologies de communication.pdfchap 3 Technologies de communication.pdf
chap 3 Technologies de communication.pdf
Institut Supérieur des Etudes Technologiques de Nabeul
 
Introduction à l'IoT.pdf
Introduction à l'IoT.pdfIntroduction à l'IoT.pdf
chap 7 POO Java Les Exceptions.pptx
chap 7 POO Java Les Exceptions.pptxchap 7 POO Java Les Exceptions.pptx
chap 7 POO Java Les Exceptions.pptx
Institut Supérieur des Etudes Technologiques de Nabeul
 
Chap 6 POO Java.pptx
Chap 6 POO Java.pptxChap 6 POO Java.pptx
chap 5 POO Java.pptx
chap 5 POO Java.pptxchap 5 POO Java.pptx
chap 4 POO Java.pptx
chap 4 POO Java.pptxchap 4 POO Java.pptx

Plus de Institut Supérieur des Etudes Technologiques de Nabeul (20)

Les sockets.pptx
Les sockets.pptxLes sockets.pptx
Les sockets.pptx
 
chapitre 8 Android 2.pptx
chapitre 8 Android 2.pptxchapitre 8 Android 2.pptx
chapitre 8 Android 2.pptx
 
chapitre 7 Android 2.pptx
chapitre 7 Android 2.pptxchapitre 7 Android 2.pptx
chapitre 7 Android 2.pptx
 
chapitre 6 Android 2.pptx
chapitre 6 Android 2.pptxchapitre 6 Android 2.pptx
chapitre 6 Android 2.pptx
 
chapitre 5 Android 2.pptx
chapitre 5 Android 2.pptxchapitre 5 Android 2.pptx
chapitre 5 Android 2.pptx
 
chapitre 4 Android 2.pptx
chapitre 4 Android 2.pptxchapitre 4 Android 2.pptx
chapitre 4 Android 2.pptx
 
chapitre 3 Android 2.pptx
chapitre 3 Android 2.pptxchapitre 3 Android 2.pptx
chapitre 3 Android 2.pptx
 
chapitre 2 Android 2.pptx
chapitre 2 Android 2.pptxchapitre 2 Android 2.pptx
chapitre 2 Android 2.pptx
 
chapitre 1 Android 2.pptx
chapitre 1 Android 2.pptxchapitre 1 Android 2.pptx
chapitre 1 Android 2.pptx
 
Python chapitre 7.pdf
Python chapitre 7.pdfPython chapitre 7.pdf
Python chapitre 7.pdf
 
Python chapitre 6.pdf
Python chapitre 6.pdfPython chapitre 6.pdf
Python chapitre 6.pdf
 
Python chapitre 5.pdf
Python chapitre 5.pdfPython chapitre 5.pdf
Python chapitre 5.pdf
 
Python chapitre 3.pdf
Python chapitre 3.pdfPython chapitre 3.pdf
Python chapitre 3.pdf
 
chap 3 Technologies de communication.pdf
chap 3 Technologies de communication.pdfchap 3 Technologies de communication.pdf
chap 3 Technologies de communication.pdf
 
Chap 2 capteurs et IoT.pdf
Chap 2 capteurs et IoT.pdfChap 2 capteurs et IoT.pdf
Chap 2 capteurs et IoT.pdf
 
Introduction à l'IoT.pdf
Introduction à l'IoT.pdfIntroduction à l'IoT.pdf
Introduction à l'IoT.pdf
 
chap 7 POO Java Les Exceptions.pptx
chap 7 POO Java Les Exceptions.pptxchap 7 POO Java Les Exceptions.pptx
chap 7 POO Java Les Exceptions.pptx
 
Chap 6 POO Java.pptx
Chap 6 POO Java.pptxChap 6 POO Java.pptx
Chap 6 POO Java.pptx
 
chap 5 POO Java.pptx
chap 5 POO Java.pptxchap 5 POO Java.pptx
chap 5 POO Java.pptx
 
chap 4 POO Java.pptx
chap 4 POO Java.pptxchap 4 POO Java.pptx
chap 4 POO Java.pptx
 

Dernier

RAPPORT DE STAGE sur CHANTIER BTP (by BR Engineering ) (1) (1).pdf
RAPPORT DE STAGE  sur CHANTIER  BTP (by BR Engineering ) (1) (1).pdfRAPPORT DE STAGE  sur CHANTIER  BTP (by BR Engineering ) (1) (1).pdf
RAPPORT DE STAGE sur CHANTIER BTP (by BR Engineering ) (1) (1).pdf
fatima413951
 
Accompagner les éleveurs dans l'analyse de leurs coûts de production
Accompagner les éleveurs dans l'analyse de leurs coûts de productionAccompagner les éleveurs dans l'analyse de leurs coûts de production
Accompagner les éleveurs dans l'analyse de leurs coûts de production
Institut de l'Elevage - Idele
 
Accompagner les porteurs de projets en transformation fermière
Accompagner les porteurs de projets en transformation fermièreAccompagner les porteurs de projets en transformation fermière
Accompagner les porteurs de projets en transformation fermière
Institut de l'Elevage - Idele
 
JTC 2024 - Atelier APaChe-Pâturage des arbres par les chèvres
JTC 2024 - Atelier APaChe-Pâturage des arbres par les chèvresJTC 2024 - Atelier APaChe-Pâturage des arbres par les chèvres
JTC 2024 - Atelier APaChe-Pâturage des arbres par les chèvres
Institut de l'Elevage - Idele
 
BeeBOP diaporama webinaire : Et si l’IA permettait de compléter l’observatio...
BeeBOP diaporama webinaire : Et si l’IA permettait de compléter l’observatio...BeeBOP diaporama webinaire : Et si l’IA permettait de compléter l’observatio...
BeeBOP diaporama webinaire : Et si l’IA permettait de compléter l’observatio...
Institut de l'Elevage - Idele
 
COUPROD Une méthode nationale commune à l’ensemble des filières herbivores
COUPROD Une méthode nationale commune à l’ensemble des filières herbivoresCOUPROD Une méthode nationale commune à l’ensemble des filières herbivores
COUPROD Une méthode nationale commune à l’ensemble des filières herbivores
Institut de l'Elevage - Idele
 
Leviers d’adaptation au changement climatique, qualité du lait et des produit...
Leviers d’adaptation au changement climatique, qualité du lait et des produit...Leviers d’adaptation au changement climatique, qualité du lait et des produit...
Leviers d’adaptation au changement climatique, qualité du lait et des produit...
Institut de l'Elevage - Idele
 
JTC 2024 - Approche collective de la santé
JTC 2024 - Approche collective de la santéJTC 2024 - Approche collective de la santé
JTC 2024 - Approche collective de la santé
Institut de l'Elevage - Idele
 
Reconquête de l’engraissement du chevreau à la ferme
Reconquête de l’engraissement du chevreau à la fermeReconquête de l’engraissement du chevreau à la ferme
Reconquête de l’engraissement du chevreau à la ferme
Institut de l'Elevage - Idele
 
1er webinaire INOSYS Réseaux d’élevage Ovins Viande
1er webinaire INOSYS Réseaux d’élevage Ovins Viande1er webinaire INOSYS Réseaux d’élevage Ovins Viande
1er webinaire INOSYS Réseaux d’élevage Ovins Viande
Institut de l'Elevage - Idele
 

Dernier (10)

RAPPORT DE STAGE sur CHANTIER BTP (by BR Engineering ) (1) (1).pdf
RAPPORT DE STAGE  sur CHANTIER  BTP (by BR Engineering ) (1) (1).pdfRAPPORT DE STAGE  sur CHANTIER  BTP (by BR Engineering ) (1) (1).pdf
RAPPORT DE STAGE sur CHANTIER BTP (by BR Engineering ) (1) (1).pdf
 
Accompagner les éleveurs dans l'analyse de leurs coûts de production
Accompagner les éleveurs dans l'analyse de leurs coûts de productionAccompagner les éleveurs dans l'analyse de leurs coûts de production
Accompagner les éleveurs dans l'analyse de leurs coûts de production
 
Accompagner les porteurs de projets en transformation fermière
Accompagner les porteurs de projets en transformation fermièreAccompagner les porteurs de projets en transformation fermière
Accompagner les porteurs de projets en transformation fermière
 
JTC 2024 - Atelier APaChe-Pâturage des arbres par les chèvres
JTC 2024 - Atelier APaChe-Pâturage des arbres par les chèvresJTC 2024 - Atelier APaChe-Pâturage des arbres par les chèvres
JTC 2024 - Atelier APaChe-Pâturage des arbres par les chèvres
 
BeeBOP diaporama webinaire : Et si l’IA permettait de compléter l’observatio...
BeeBOP diaporama webinaire : Et si l’IA permettait de compléter l’observatio...BeeBOP diaporama webinaire : Et si l’IA permettait de compléter l’observatio...
BeeBOP diaporama webinaire : Et si l’IA permettait de compléter l’observatio...
 
COUPROD Une méthode nationale commune à l’ensemble des filières herbivores
COUPROD Une méthode nationale commune à l’ensemble des filières herbivoresCOUPROD Une méthode nationale commune à l’ensemble des filières herbivores
COUPROD Une méthode nationale commune à l’ensemble des filières herbivores
 
Leviers d’adaptation au changement climatique, qualité du lait et des produit...
Leviers d’adaptation au changement climatique, qualité du lait et des produit...Leviers d’adaptation au changement climatique, qualité du lait et des produit...
Leviers d’adaptation au changement climatique, qualité du lait et des produit...
 
JTC 2024 - Approche collective de la santé
JTC 2024 - Approche collective de la santéJTC 2024 - Approche collective de la santé
JTC 2024 - Approche collective de la santé
 
Reconquête de l’engraissement du chevreau à la ferme
Reconquête de l’engraissement du chevreau à la fermeReconquête de l’engraissement du chevreau à la ferme
Reconquête de l’engraissement du chevreau à la ferme
 
1er webinaire INOSYS Réseaux d’élevage Ovins Viande
1er webinaire INOSYS Réseaux d’élevage Ovins Viande1er webinaire INOSYS Réseaux d’élevage Ovins Viande
1er webinaire INOSYS Réseaux d’élevage Ovins Viande
 

Python chapitre 2.pdf

  • 1. 14/01/2018 1 LES CONTENEURS À ACCÈS SÉQUENTIEL ET À ACCÈS DIRECT 2017-2018 © Imene Sghaier Octobre 2017 ISET Nabeul-Mastère SEM2 INTRODUCTION  Python permet de regrouper un ensemble de données de même type ou de types différents à l’intérieur de structures de données spéciales appelées conteneurs. Il en existe deux catégories:  Les conteneurs séquentiels: on note les listes, les tuples et les chaines de caractères. Les éléments de ces structures sont rangés en utilisant des index ( commençant à partir de 0)  Les conteneurs à accès direct: qui n’utilisent les index pour l’accès 2 Imene Sghaier-Programmation Python
  • 2. 14/01/2018 2 PROPRIÉTÉS COMMUNES AUX CONTENEURS  Les listes: une séquences d’éléments encadrés par des crochets  Les chaines: une séquences de caractères encadrés par des côtes ‘’ ‘’ ou des chevrons ‘ ’  Les tuples: une séquences d’éléments encadrés par des parenthèses () 3 Imene Sghaier-Programmation Python LES OPÉRATIONS COMMUNES POUR LES CONTENEURS SÉQUENTIELS  La taille: len(C)  Accès à un élément : nomConteur[indexElement]  Les index permis sont compris entre  0 et len(nomConteneur)-1 pour un parcours de gauche à droite  -1 et -len(nomConteur) pour un parcours de droite à gauche 4 Imene Sghaier-Programmation Python
  • 3. 14/01/2018 3 LES OPÉRATIONS COMMUNES POUR LES CONTENEURS SÉQUENTIELS  Accès à une partie des éléments:  NomConteneur[i:j] Renvoie un conteneur constitué des éléments se trouvant entre la position i et la position j-1  NomConteneur[i:] Renvoie un conteneur constitué des éléments se trouvant entre la position i et la position len(nomConteneur)-1  NomConteneur[:i] Renvoie un conteneur constitué des éléments se trouvant entre la position 0 et la position i-1  NomConteneur[::] Renvoie la totalité de la liste  NomConteneur[::-1] renvoie la liste en inversant l’ordre des éléments  Test d’appartenance: x in nomConteneur  Test de non âppartenance: x not in nomConteneur  Concaténation : nomConteneur1+nomConteneur2 (il faut que ça soient des conteneurs de même type) 5 Imene Sghaier-Programmation Python LES OPÉRATIONS COMMUNES POUR LES CONTENEURS SÉQUENTIELS 6 Imene Sghaier-Programmation Python
  • 4. 14/01/2018 4 LES OPÉRATIONS COMMUNES POUR LES CONTENEURS SÉQUENTIELS  Répétition: Cont*n: l’opérateur * permet de créer un conteneur contenant n copoies Cont  Recherche de la position d’un élément: nomCont.index(elmnt)  Nombre d’occurrence d’un élément: nomCont.count(x)  Minimim et maximum: min(nomCont), max(nomCont) 7 Imene Sghaier-Programmation Python EXERCICE  Ecrivez un script Python qui vérifie si une chaine de caractères lue à partir du clavier est un palindrome ou non. Un palindrome est un mot qui se lit de droite à gauche comme de gauche à droite. 8 Imene Sghaier-Programmation Python
  • 5. 14/01/2018 5 COMMANDES SPÉCIFIQUES AUX LISTES  Liste vide:  L=[]  L=list()  Commande list  Liste en compréhension : 9 Imene Sghaier-Programmation Python COMMANDES SPÉCIFIQUES AUX LISTES  Conversion d’une chaine en liste:  Conversion d’un tuple en liste:  Modification d’un élément :  Modification d’un slice: 10 Imene Sghaier-Programmation Python
  • 6. 14/01/2018 6 COMMANDES SPÉCIFIQUES AUX LISTES  Ajout d’un élément à la fin:  Ajout d’un slice:  Insertion dans une liste:  Suppression d’un élément d’une liste:  Suppression d’un slice d’une liste: 11 Imene Sghaier-Programmation Python COMMANDES SPÉCIFIQUES AUX LISTES  La copie :  Le tri et l’inversion: avec les commandes sort et reverse 12 Imene Sghaier-Programmation Python
  • 7. 14/01/2018 7 COMMANDES SPÉCIFIQUES AUX TUPLES  Création: 13 Imene Sghaier-Programmation Python COMMANDES SPÉCIFIQUES AUX TUPLES  Modification et ajout: Les tuples sont non modifiables, toute tentative de mise à jour génère une erreur  On peut cependant ajouter des éléments on écrasant l’ancien tuple  NB: le (2, ) est un tuple à un seul élément, la virgule est obligatoire 14 Imene Sghaier-Programmation Python
  • 8. 14/01/2018 8 COMMANDES SPÉCIFIQUES AUX CHAINES  Test sur type de la chaine:  Alphabétique: isalpha()  Numérique : isdigit()  Vide: isspace()  Alphanumérique: isalnum()  Conversion Majuscule/miniscule:  upper()  lower()  Commence/se termine par:  startswith(‘’… ‘’)  endswith(‘’…’’)  Eliminer les espaces à gauche et à droite: strip()  Décomposition: la commande split utilise un caractere separateur pour decomposer une chaine 15 Imene Sghaier-Programmation Python COMMANDES SPÉCIFIQUES AUX CHAINES  Rechercher une sous chaine: find  Remplacer une sous chaine  Coller plusieurs chaines 16 Imene Sghaier-Programmation Python
  • 9. 14/01/2018 9 LES DICTIONNAIRES  Un dictionnaire est un conteneur modifiable non ordonné composé d’un ensemble de couple (clès, valeur)  Création:  La commande dict avec comme paramètre une liste de listes, chacun de la forme (clés, valeur)  On peut remplir un dictionnaire vide on associant une valeur à chaque clés 17 Imene Sghaier-Programmation Python LES DICTIONNAIRES  Si l'on demande la valeur associée à une clé inexistante, une exception KeyError est levée  Il est aussi possible de demander si la clé existe, avec l'opérateur in  La recherche est donc unidirectionnelle, comme dans un dictionnaire Français-->Anglais. On va de la clé vers la valeur !  La clé doit être non mutable. Donc essentiellement des chaînes et des nombres mais pas de listes. On peut utiliser des tuples comme clés à condition qu'ils ne contiennent aucun objet mutable. dico = {1:'one', 2:'two', 3:'three'} dico[2] 'two' 18 Imene Sghaier-Programmation Python
  • 10. 14/01/2018 10 LES DICTIONNAIRES  On peut vouloir obtenir la liste de toutes les clés ou bien la liste de toutes les valeurs. Les méthodes keys() et values() retournent des vues (views) sur les clés et les valeurs.  Ces vues sont des objets itérables que l'on peut parcourir avec une boucle for, ou transformer en listes/ensembles. des objets bizarres... cpt = 0 for k in dico.keys() : if k % 2 == 0 : cpt = cpt + 1 19 Imene Sghaier-Programmation Python LES DICTIONNAIRES 20 Imene Sghaier-Programmation Python
  • 11. 14/01/2018 11 LES DICTIONNAIRES  update: la syntaxe est dic1.update(dic2): fusionne 2 dictionnaires. Si une clès figure dans dic1 et dic2 alors la valeur correspondante dans dic1 sera mise à jour sinon une nouvelle clès est crée dans dic1  pop: nomDic.pop(index): supprime l’entrée don’t la clè est index et la retourne en résultat  get : Elle fait la même chose que l’indexation mais si la clé fourni en argument n’existe pas dans le dictionnaire elle renvoie une autre valeur : None par défaut 21 Imene Sghaier-Programmation Python LES DICTIONNAIRES  Si on essaye de récupérer la valeur d’une clés qui n’existe pas dans un dictionnaire une erreur de type KeyError est génerée. 22 Imene Sghaier-Programmation Python
  • 12. 14/01/2018 12 LES DICTIONNAIRES  NB: Seulement les objets immutable peuvent être utilisés comme des clès dans un dictionnaire  Les objets immutables sont ceux qui ne peuvent pas changer  Les seuls objets mutables qu’on connait jusqu’à maintenant sont les listes et les dictionnaires  En essayant d’utiliser un objet mutable comme clè dans un dictionnaire gènère une erreur de type TypeError 23 Imene Sghaier-Programmation Python LES DICTIONNAIRES  Juste comme les listes, les clès d’un dictionnaire peuvent être affectées à de différentes valeur. Mais, contrairement aux listes une nouvelle clè du dictionnaire peut être affectée à de nouvelles valeurs. 24 Imene Sghaier-Programmation Python
  • 13. 14/01/2018 13 LES ENSEMBLES  Un ensemble en Python est une collection d'objets sans répétition et sans ordre (donc sans numérotage). Ce n'est PAS une séquence !  On les note comme en maths avec des accolades {...}. Les éléments sont de types quelconques. Exemples : {5,3,-8,2} {'o','e','y','u','a','i'} {5,'foo',(3,-2),7.4}  L'ensemble vide se note set() et non {} qui crée un dictionnaire  On construit un ensemble comme suit  Un ensemble est défini à l'ordre près :  Un ensemble paraît trié en interne mais c'est uniquement pour accélérer la recherche d'un élément : 25 Imene Sghaier-Programmation Python LES ENSEMBLES  Les ensembles “Sets” sont des structures similaires aux listes et aux dictionnaires.  Ils sont créés avec des accolades { et }  On peut faire  E = set('aeiouy')  E = set([5,2,5,6,2])  Ils ont quelques fonctions communes avec les listes comme l’utilisation de in pour vérifier l’appartenance ou non d’un élément à un ensemble.  Pour créer un ensemble vide il suffit d’appeler la fonction set() comme {} qui créé un dictionnaire vide 26 Imene Sghaier-Programmation Python
  • 14. 14/01/2018 14 LES ENSEMBLES  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 sens  L'opérateur in permet de savoir si un objet appartient à un ensemble.  L'opération E < F permet de tester si l'ensemble E est strictement inclus dans l'ensemble F.  Axiome du choix : il est possible d'obtenir un élément d'un ensemble E et de le supprimer en même temps avec la méthode pop(). 27 Imene Sghaier-Programmation Python LES ENSEMBLES  Les ensembles diffèrent des listes mais possèdent divers fonctions en commun comme la fonction len.  Les ensembles ne sont pas ordonnés donc non indexés et il n’y existe pas de duplication d’éléments Grace à la façon don’t laquelle ils sont enregistrés, il est plus rapide de vérifier si un élément appartient à un ensemble que de vérifier la meme chose dans une liste.  Les ensembles utilisent la méthode add pour l’ajout d’élément.  La méthode remove supprime un élément specifique à partir d’un ensemble  La méthode pop supprime un élément arbitraire element. 28 Imene Sghaier-Programmation Python
  • 15. 14/01/2018 15 LES ENSEMBLES  On peut combiner des ensembles en utilisant:  L’opérateur de l’union | qui combine 2 ensembles pour produire un nouvel ensemble contenant les éléments des 2 ensembles  L’opérateur de l’intersection & qui produit un ensemble contenant les éléments existant dans les deux ensembles  L’operateur de difference - qui produit un ensemble contenant les éléments existant dans l’un des ensemble et pas dans l’autre.  L’operateur de difference symmitrique ^ qui produit un ensemble contenant les éléments ne figurant pas dans l’intersection de deux ensembles 29 Imene Sghaier-Programmation Python STRUCTURES DE DONNÉES  Python supporte les structures de données suivantes: liste dictionnaire, tuple et set  La structure dictionnaire est conseillée d’être utilisé quand:  On a besoin d’une association logique entre des paires de clè et valeur  On a besoin d’un accès direct et rapide aux données basé sur des clès  Nos données sont constament modifiées  NB: Les dictionnaires sont mutables et les tuples sont immutables  On utilise une liste si nous avons une collection de données qui n’a pas besoin d’accès direct, ou que nous avons besoin d’une collection iterable de données qui sont fréquement modifiées  Les ensembles sont distingués par l’unicité de leur éléments  Les tuples sont utilisés quand les données changent fréquemment 30 Imene Sghaier-Programmation Python