Objectif général : Acquérir les connaissances nécessaires à la programmation avec le langage Python
Objectifs opérationnels :
- Mémoriser des données primitives
- Traiter des données
- Communiquer avec l’extérieur
- Contrôler le flux d’exécution des instructions
- Mémoriser des données composites
- Découper et réutiliser du code
Objectif général : Acquérir les connaissances nécessaires à la programmation avec le langage Python
Objectifs opérationnels :
- Mémoriser des données primitives
- Traiter des données
- Communiquer avec l’extérieur
- Contrôler le flux d’exécution des instructions
- Mémoriser des données composites
- Découper et réutiliser du code
Nettoyer et transformer ses données avec Openrefine : partie 2Mathieu Saby
2ème partie de la formation Openrefine donnée à l'URFIST de Paris le 25 mai 2018
La version pptx et les données sont disponibles librement sur Open Science Framework : https://osf.io/uqwrb/
C'est le chapitre 1 sur le langage Python qui est une introduction à ce langage.
Si vous avez des remarques ou des suggestions pour l’améliorer n’hésitez pas à m’écrire via ce courriel:
pr.azizdarouichi@gmail.com
Bonne lecture.
This course will introduce the core data structures of the Python programming language. We will move past the basics of procedural programming and explore how we can use the Python built-in data structures such as lists, dictionaries, and tuples to perform increasingly complex data analysis.
Ce cours explore les bases de la programmation en Python, en mettant l'accent sur l'utilisation des collections intégrées telles que listes, tuples, ensembles et dictionnaires pour stocker, organiser et manipuler les données. Une introduction succincte à NumPy est également incluse, fournissant des compétences avancées pour la manipulation de tableaux et d'opérations numériques, préparant ainsi les participants à des applications plus avancées dans la science des données et le traitement numérique.
Chapitre8: Collections et Enumerations En JavaAziz Darouichi
Voici le chapitre 8 sur les collections et les énumerations en Java.
Si vous avez des remarques ou suggestions afin de le parfaire.
N’hésitez pas à me contacter via mon email:
pr.azizdarouichi@gmail.com.
Bonne lecture.
Nettoyer et transformer ses données avec Openrefine : partie 2Mathieu Saby
2ème partie de la formation Openrefine donnée à l'URFIST de Paris le 25 mai 2018
La version pptx et les données sont disponibles librement sur Open Science Framework : https://osf.io/uqwrb/
C'est le chapitre 1 sur le langage Python qui est une introduction à ce langage.
Si vous avez des remarques ou des suggestions pour l’améliorer n’hésitez pas à m’écrire via ce courriel:
pr.azizdarouichi@gmail.com
Bonne lecture.
This course will introduce the core data structures of the Python programming language. We will move past the basics of procedural programming and explore how we can use the Python built-in data structures such as lists, dictionaries, and tuples to perform increasingly complex data analysis.
Ce cours explore les bases de la programmation en Python, en mettant l'accent sur l'utilisation des collections intégrées telles que listes, tuples, ensembles et dictionnaires pour stocker, organiser et manipuler les données. Une introduction succincte à NumPy est également incluse, fournissant des compétences avancées pour la manipulation de tableaux et d'opérations numériques, préparant ainsi les participants à des applications plus avancées dans la science des données et le traitement numérique.
Chapitre8: Collections et Enumerations En JavaAziz Darouichi
Voici le chapitre 8 sur les collections et les énumerations en Java.
Si vous avez des remarques ou suggestions afin de le parfaire.
N’hésitez pas à me contacter via mon email:
pr.azizdarouichi@gmail.com.
Bonne lecture.
L’équipe du projet BeBoP a proposé un webinaire le 30 mai 2024 pour découvrir comment la technologie vidéo, combinée à l’intelligence artificielle, se met au service de l’analyse du comportement des taurillons.
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