Introduction à Python et ses caractéristiques
Introduction à Python et ses caractéristiques
Département d’Informatique
Filière : IDDL– S5
Année universitaire : 2024- 2025
2
Pr . A. Zannou FST d’ Al-Hoceima
les caractéristiques principales de Python
Un langage interprété
Un langage facile à utiliser
Un langage à typage dynamique
Un langage de haut niveau
Un langage orienté objet
3
Pr . A. Zannou FST d’ Al-Hoceima
les caractéristiques principales de Python
Langage de haut niveau : Le code est plus lisible et plus proche du langage
Langage de bas niveau : Le code est moins lisible et plus proche du langage
4
Pr . A. Zannou FST d’ Al-Hoceima
Compilation et Interprétation
Compilation
5
Pr . A. Zannou FST d’ Al-Hoceima
Compilation et Interprétation
Compilation
6
Pr . A. Zannou FST d’ Al-Hoceima
Compilation et Interprétation
Compilation
Avantages de compilation:
Les programmes compilés ont tendance à être plus rapides et plus efficaces, car tout
le travail de traduction est fait à l'avance.
Le code compilé peut être distribué sous forme d'exécutable sans révéler le code
source.
Inconvénients de compilation
Le processus de compilation peut être long, surtout pour de gros programmes.
Chaque fois qu'un changement est apporté au code source, il faut recompiler
l'ensemble du programme pour exécuter les modifications.
7
Pr . A. Zannou FST d’ Al-Hoceima
Compilation et Interprétation
Interprétation
8
Pr . A. Zannou FST d’ Al-Hoceima
Compilation et Interprétation
Interprétation
Avantages:
Il est possible de tester et exécuter le code immédiatement, sans avoir besoin de
compiler l'ensemble du programme, ce qui est idéal pour le développement rapide et
le prototypage.
Les erreurs dans le code sont généralement plus faciles à identifier, car elles sont
signalées dès leur apparition pendant l'exécution.
Inconvénients:
L'exécution des programmes interprétés est généralement plus lente, car chaque
instruction doit être traduite en code machine en temps réel.
Le code source doit être disponible pour être interprété, ce qui peut poser des
problèmes de sécurité ou de confidentialité.
9
Pr . A. Zannou FST d’ Al-Hoceima
Compilation et Interprétation
Comparaison
Compilation :
• Convertit tout le code source en un exécutable complet avant l'exécution.
• L'exécution est ensuite rapide et indépendante du code source.
Interprétation :
Traduit et exécute le code source au fur et à mesure, ce qui permet une flexibilité accrue
mais une performance généralement plus lente
Langages compilés : Python , PHP, JavaScript, Ruby
Langages interprétés : C, C++
Langages compilés et interprétés (hybrides) : Java, C#, Kotlin
10
Pr . A. Zannou FST d’ Al-Hoceima
Interprétation - Python
Python est principalement un langage interprété, bien qu'il possède également des
aspects de compilation.
Compilation vers le bytecode :
Lors de l'exécution d'un script Python, le code source (.py) est d'abord compilé
en bytecode (un code intermédiaire), ce qui crée des fichiers .pyc.
Cependant, cette compilation diffère de la compilation classique des langages
compilés comme C ou C++. En effet, elle est transparente pour l'utilisateur, et ce
bytecode est stocké pour être interprété ultérieurement.
11
Pr . A. Zannou FST d’ Al-Hoceima
Interprétation - Python
Interprétation du bytecode :
Le bytecode est ensuite interprété par la Python Virtual Machine (PVM). Cette
machine virtuelle exécute le code ligne par ligne, ce qui donne à Python ses
caractéristiques de langage interprété.
C'est la raison pour laquelle Python est souvent considéré comme un langage
interprété : l'exécution du code est réalisée par l'interpréteur Python (le PVM),
ce qui permet de tester et d'exécuter le code rapidement sans une phase explicite
de compilation
12
Pr . A. Zannou FST d’ Al-Hoceima
Interprétation - Python
13
Pr . A. Zannou FST d’ Al-Hoceima
Compilation – C/C++
Le code source écrit en C ou C++ (.c ou .cpp) est compilé par un compilateur (comme GCC ou
Clang). La compilation traduit le code source en code machine ou binaire qui est spécifique à
l'architecture de l'ordinateur cible.
Une fois le code source compilé, le code machine généré peut être exécuté directement par le
processeur, ce qui conduit généralement à de meilleures performances.
Il n’y a pas de conversion en bytecode intermédiaire ni d’étape d'interprétation lors de
l'exécution, ce qui distingue clairement ces langages des langages interprétés comme Python.
C et C++ nécessitent une compilation explicite du code source avant l’exécution, ce qui les
classe clairement comme des langages compilés.
L'étape de compilation est nécessaire pour traduire le code source en un format exécutable par
la machine, garantissant une exécution rapide et optimisée une fois la compilation terminée.
14
Pr . A. Zannou FST d’ Al-Hoceima
Compilation/interprété – JAVA
Java est un langage à la fois compilé et interprété, car il combine des éléments des
deux approches.
Compilation vers le bytecode :
Le code source Java (.java) est compilé par le compilateur Java (javac) en
bytecode, qui est un code intermédiaire indépendant de la machine. Ce bytecode
est stocké dans des fichiers .class.
Contrairement à C ou C++, cette compilation ne produit pas directement un
exécutable machine, mais une représentation portable du code qui peut être
exécutée sur n'importe quelle plateforme supportant une machine virtuelle Java
(JVM).
15
Pr . A. Zannou FST d’ Al-Hoceima
Compilation/interprété – JAVA
16
Pr . A. Zannou FST d’ Al-Hoceima
Compilation/interprété – JAVA
17
Pr . A. Zannou FST d’ Al-Hoceima
Compilation/interprété – JAVA
Langage hybride :
Java est donc un langage compilé dans le sens où le code source est converti en
bytecode. Il est aussi interprété car ce bytecode est exécuté par la JVM de manière
interprétée ou compilée à la volée.
L’architecture de Java le classe comme un langage hybride, combinant les avantages
de la portabilité d’un langage interprété et les performances optimisées d’un langage
compilé.
18
Pr . A. Zannou FST d’ Al-Hoceima
ByteCode
19
Pr . A. Zannou FST d’ Al-Hoceima
Bibliothèques Python (1)
Une bibliothèque est une collection de codes fréquemment utilisés que les
développeurs peuvent inclure dans leurs programmes Python pour éviter
d'écrire du code à partir de zéro.
Par défaut, Python est livré avec la bibliothèque standard, qui contient un
grand nombre de fonctions réutilisables.
20
Pr . A. Zannou FST d’ Al-Hoceima
Bibliothèques Python (2)
22
Pr . A. Zannou FST d’ Al-Hoceima
Framework Python Web (1)
23
Pr . A. Zannou FST d’ Al-Hoceima
Framework Python Web (2)
Flask : Un micro-framework web léger, Flask est utilisé pour créer des
applications web en Python. Il est simple à utiliser et flexible, parfait pour des
projets de taille moyenne.
Django : Un framework web de haut niveau qui encourage un
développement rapide et propre, Django permet de créer des applications web
robustes et sécurisées avec moins de code.
24
Pr . A. Zannou FST d’ Al-Hoceima
Les IDE Python
25
Pr . A. Zannou FST d’ Al-Hoceima
Les IDE Python - 1 -
PyCharm
IDLE
26
Pr . A. Zannou FST d’ Al-Hoceima
Les IDE Python - 2 -
Atom
Sublime Text
Spyder
Jupyter
27
Pr . A. Zannou FST d’ Al-Hoceima
Conventions générales du langage
28
Pr . A. Zannou FST d’ Al-Hoceima
Variables et Types de Données en Python
Variables
Une variable est un conteneur qui stocke une valeur. nous pouvons penser à
une variable comme une étiquette attachée à une valeur.
nom_de_variable = valeur
Affectation multiple
a, b, c = 2, 4.3, "ahmed"
29
Pr . A. Zannou FST d’ Al-Hoceima
Variables et Types de Données en Python
Types de Données
30
Pr . A. Zannou FST d’ Al-Hoceima
Variables et Types de Données en Python
Conversion de Types (Casting)
On peut convertir une variable d'un type à un autre en utilisant des fonctions de
conversion.
31
Pr . A. Zannou FST d’ Al-Hoceima
Affichage de données
32
Pr . A. Zannou FST d’ Al-Hoceima
Variables et Types de Données en Python
Déterminer le Type d'une Variable
33
Pr . A. Zannou FST d’ Al-Hoceima
Variables et Types de Données en Python
Déterminer le Type d'une Variable
34
Pr . A. Zannou FST d’ Al-Hoceima
lire des données
Syntaxe :
variable = input(prompt)
35
Pr . A. Zannou FST d’ Al-Hoceima
lire des données
Exemple :
nom = input("Entrez votre nom : ")
print("Bonjour, " + nom + " !")
Exemple :
age = int(input("Entrez votre âge : "))
print("Vous avez", age, "ans.")
36
Pr . A. Zannou FST d’ Al-Hoceima
L’affectation des variables
37
Pr . A. Zannou FST d’ Al-Hoceima
Les opérateurs et expressions
Opérateurs arithmétiques:
+-*/
Opérateurs de comparaison :
<
<=
==
!=
>=
>
Connecteurs logiques :
and
or
not(valeur)
true
false
38
Pr . A. Zannou FST d’ Al-Hoceima
Les opérateurs et expressions
# Variables de base
a = 10
b = 20
c = 15
d=5
# Expressions algébriques usuelles
addition = a + b # a + b = 10 + 20 = 30
soustraction = b - c # b - c = 20 - 15 = 5
multiplication = c * d # c * d = 15 * 5 = 75
division = b / d # b / d = 20 / 5 = 4.0
39
Pr . A. Zannou FST d’ Al-Hoceima
Les opérateurs et expressions
a=10
b=20
# Opérateurs de comparaison
inferieur = a < b # 10 < 20, donc True
inferieur_ou_egal = a <= 10 # 10 <= 10, donc True
egalite = a == b # 10 == 20, donc False
different = a != c # 10 != 15, donc True
superieur_ou_egal = b >= c # 20 >= 15, donc True
superieur = c > d # 15 > 5, donc True
# Connecteurs logiques
et_condition = (a < b) and (c > d) # True et True, donc True
ou_condition = (a > b) or (c > d) # False ou True, donc True
non_condition = not(a == b) # Non False, donc True
40
Pr . A. Zannou FST d’ Al-Hoceima
Structures de Contrôle
Définition
41
Pr . A. Zannou FST d’ Al-Hoceima
Structures de Contrôle
Instructions Conditionnelles
Syntaxe :
if condition:
# Code à exécuter si la condition est vraie
elif autre_condition:
# Code à exécuter si la première condition est fausse et que cette condition est vraie
else:
# Code à exécuter si aucune des conditions précédentes n'est vraie
42
Pr . A. Zannou FST d’ Al-Hoceima
Structures de Contrôle
Instructions Conditionnelles
Exemple :
age = 20
if age >= 18: #aussi if ( age >= 18):
print("Vous êtes majeur.")
elif age == 17:
print("Vous êtes presque majeur.")
else:
print("Vous êtes mineur.")
43
Pr . A. Zannou FST d’ Al-Hoceima
Structures de Contrôle
Boucles
Les boucles permettent de répéter une série d'instructions tant qu'une condition est
remplie ou pour un certain nombre de fois.
A. Boucle for
La boucle for est utilisée pour itérer sur une séquence (comme une liste, un tuple, ou
une chaîne de caractères).
Syntaxe :
for variable in sequence:
# Code à exécuter pour chaque élément de la séquence
Exemple: 0
for nombre in range(3): 1
2
print(nombre)
44
Pr . A. Zannou FST d’ Al-Hoceima
Structures de Contrôle
Boucles
B. Boucle while
La boucle while continue de s'exécuter tant qu'une condition est vraie.
Syntaxe :
while condition:
# Code à exécuter tant que la condition est vraie
Exemple: 5
4
compteur = 5 3
while compteur > 0: 2
1
print(compteur)
compteur -= 1
45
Pr . A. Zannou FST d’ Al-Hoceima
Structures de Contrôle
Break et continue
Exemple:
for nombre in range(10):
if nombre == 5:
break
print(nombre)
0
1
2
3
4
46
Pr . A. Zannou FST d’ Al-Hoceima
Structures de Contrôle
Break et continue
Exemple:
for nombre in range(5):
if nombre == 2:
continue
print(nombre)
0
1
3
4
47
Pr . A. Zannou FST d’ Al-Hoceima
Structures de Contrôle
Boucles
En Python, il n'existe pas de boucle do while comme dans certains autres langages de
Toutefois, on peut simuler une boucle do while en utilisant une boucle while avec
une condition qui est initialement toujours vraie et une vérification de la condition à
la fin de la boucle.
48
Pr . A. Zannou FST d’ Al-Hoceima
Structures de Contrôle
Boucles
Exemple :
while True:
note = float(input("Entrez une note entre 0 et 20 : "))
49
Pr . A. Zannou FST d’ Al-Hoceima
Structures de Contrôle
Combinaison de conditions
On peut combiner plusieurs conditions en utilisant les opérateurs logiques and, or, et not.
Exemple:
age = 20
nationalite = "Marocaine"
if age >= 18 and nationalite == " Marocaine":
print("Vous pouvez voter en Maroc.")
50
Pr . A. Zannou FST d’ Al-Hoceima
Fonctions
Définition
Les fonctions sont des blocs de code réutilisables qui effectuent une tâche
spécifique.
Elles permettent de structurer votre code de manière plus modulaire et de réduire
les répétitions.
Pour définir une fonction en Python, nous utilisons le mot-clé def suivi du nom de
la fonction et de parenthèses. Si la fonction prend des arguments (ou paramètres),
nous les placez entre les parenthèses
Syntaxe:
def nom_de_la_fonction(parametre1, parametre2):
# Bloc de code de la fonction
return valeur_a_renvoyer
51
Pr . A. Zannou FST d’ Al-Hoceima
Fonctions
Exemple
Exemple:
def saluer(nom):
message = "Bonjour, " + nom + "!"
return message
message = saluer("Alice")
print(message)
Bonjour, Alice!
52
Pr . A. Zannou FST d’ Al-Hoceima
Fonctions
Valeurs par défaut
Syntaxe:
def nom_de_la_fonction(parametre1=valeur_defaut):
# Bloc de code de la fonction
53
Pr . A. Zannou FST d’ Al-Hoceima
Fonctions
Valeurs par défaut
Exemple:
def saluer(nom="Invité"):
message = "Bonjour, " + nom + "!"
return message
message = saluer()
print(message)
Bonjour, Invité!
54
Pr . A. Zannou FST d’ Al-Hoceima
Fonctions
Fonctions lambda
Les fonctions lambda sont des fonctions anonymes, c'est-à-dire des fonctions sans nom,
qui sont souvent utilisées pour des opérations simples.
Syntaxe:
lambda parametres: expression
Exemple 1:
addition = lambda x, y: x + y
print(addition(3, 4))
Explication : lambda x, y: x + y est une fonction lambda qui prend deux arguments et
renvoie leur somme. Elle est utilisée pour une tâche simple en une seule ligne.
55
Pr . A. Zannou FST d’ Al-Hoceima
Fonctions
Fonctions lambda
Exemple 2:
# Fonction lambda pour élever un nombre à la puissance donnée
puissance = lambda x, y: x ** y
# Utilisation
resultat = puissance(3, 3)
print(resultat) # Résultat attendu : 27
56
Pr . A. Zannou FST d’ Al-Hoceima
Fonctions
Fonctions lambda
Exemple 3:
# Fonction lambda qui retourne la chaîne de caractères
salutation = lambda s: "Bonjour " + s
# Utilisation
resultat = salutation("Ahmed")
# Affichage du résultat
print(resultat) # Résultat attendu : 'Bonjour Ahmed'
57
Pr . A. Zannou FST d’ Al-Hoceima
Fonctions
Fonctions lambda
Exemple 4:
# Fonction lambda qui retourne un message
salutation = lambda: "Bonjour Ahmed"
# Utilisation
resultat = salutation()
print(resultat) # Résultat attendu : 'Bonjour Ahmed'
58
Pr . A. Zannou FST d’ Al-Hoceima
Fonctions
Portée des variables
Les variables définies à l'intérieur d'une fonction sont locales à cette fonction et ne sont pas
accessibles en dehors
Exemple:
def ma_fonction():
x = 10 # x est une variable locale
print(x)
ma_fonction()
print(x) # Provoquera une erreur car x n'est pas accessible en dehors de la fonction
59
Pr . A. Zannou FST d’ Al-Hoceima
Fonctions
Fonctions récursives
Exemple:
def factorielle(n):
if n == 1:
120
return 1
else:
return n * factorielle(n-1)
print(factorielle(5))
60
Pr . A. Zannou FST d’ Al-Hoceima
Listes et Tuples
Introduction
Les listes et les tuples sont des types de données qui permettent de stocker plusieurs
éléments dans une seule variable. Bien qu'ils soient similaires, il existe des
différences clés entre eux.
61
Pr . A. Zannou FST d’ Al-Hoceima
Listes et Tuples
Listes
Les listes ( sont différentes aux tableaux) sont des collections ordonnées et
modifiables d'éléments et peuvent être de différents éléments. Elles sont définies par
des crochets []
Syntaxe:
ma_liste = [élément1, élément2, élément3]
Accès aux éléments : On peut accéder à un élément d'une liste en utilisant son
index (la position de l'élément dans la liste, en commençant par 0).
Exemple:
print(fruits[0]) # Affiche: pomme
fruits[1] = "orange"
print(fruits) # Affiche: ["pomme", "orange", 1]
62
Pr . A. Zannou FST d’ Al-Hoceima
Listes et Tuples
Listes - append
Les listes sont modifiables, ce qui signifie que nous pouvons ajouter, supprimer et
modifier des éléments après leur création.
Ajouter des éléments : Utilisons append() pour ajouter un élément à la fin de la liste.
Exemple:
[Link]("mangue")
print(fruits) # Affiche ["pomme", "orange", 1 , "mangue"]
63
Pr . A. Zannou FST d’ Al-Hoceima
Listes et Tuples
Listes - index
Pour obtenir l'index d'un élément dans une liste, nous pouvons utiliser la méthode
index(). Cette méthode retourne l'index de la première occurrence de l'élément spécifié
dans la liste.
Exemple 1:
fruits = ["pomme", "banane", "kiwi", "banane"]
# Trouver l'index de "kiwi"
index_kiwi = [Link]("kiwi")
print("L'index de 'kiwi' est :", index_kiwi)
# Trouver l'index de "banane"
index_banane = [Link]("banane")
print("L'index de la première 'banane' est :", index_banane)
Remarques :
Si l'élément est présent plusieurs fois dans la liste, index() ne renvoie que l'index de la
première occurrence. Si l'élément n'existe pas dans la liste, une ValueError est levée.
Pour éviter cela, nous pouvons vérifier au préalable si l'élément est présent dans la liste
à l'aide de in.
Exemple 1:
fruits = ["pomme", "banane", "kiwi"]
# Vérifier si "orange" est dans la liste avant de trouver son index
if "orange" in fruits:
index_orange = [Link]("orange")
print("L'index de 'orange' est :", index_orange)
else: 'orange' n'est pas dans la liste.
print("'orange' n'est pas dans la liste.")
65
Pr . A. Zannou FST d’ Al-Hoceima
Listes et Tuples
Listes – suppression des éléments - remove
remove() :
Objectif : Supprime la première occurrence d'un élément spécifique dans
une liste en se basant sur sa valeur.
Paramètre : L'élément à supprimer (la valeur).
Utilisation : Ne fonctionne que si l'élément existe dans la liste, sinon il
lève une ValueError.
Retour : Ne retourne rien. Il modifie la liste en place
Exemple:
fruits = ["pomme", "banane", "kiwi"]
[Link]("banane")
print(fruits) # Résultat : ['pomme', 'kiwi']
66
Pr . A. Zannou FST d’ Al-Hoceima
Listes et Tuples
Listes – suppression des éléments - pop
pop() :
Objectif : Supprime et renvoie l'élément à un index spécifique.
Paramètre : L'index de l'élément à supprimer (si aucun index n'est donné,
il supprime et renvoie le dernier élément).
Utilisation : Si l'index fourni est hors de portée (out of range), il lève une
IndexError.
Retour : Renvoie l'élément supprimé.
Exemple 1:
fruits = ["pomme", "banane", "kiwi"]
element = [Link](1) # Supprime "banane" et le renvoie
print(fruits) # Résultat : ['pomme', 'kiwi']
print(element) # Résultat : 'banane'
67
Pr . A. Zannou FST d’ Al-Hoceima
Listes et Tuples
Listes – suppression des éléments - pop
Exemple 2:
fruits = ["pomme", "banane", "kiwi"]
[Link](1) # Supprime "banane"
print(fruits) # Résultat : ['pomme', 'kiwi']
68
Pr . A. Zannou FST d’ Al-Hoceima
Listes et Tuples
Listes – suppression des éléments - del
del() :
Objectif : Supprime des éléments ou des tranches d'éléments en se basant
sur leur index. Peut aussi supprimer des variables.
Paramètre : Un index ou une tranche d'index (ex: del liste[1:3]).
Utilisation : Peut également être utilisé pour supprimer entièrement une
variable.
Retour : Ne retourne rien. Il modifie la liste en place.
69
Pr . A. Zannou FST d’ Al-Hoceima
Listes et Tuples
Listes – suppression des éléments - del
70
Pr . A. Zannou FST d’ Al-Hoceima
Listes et Tuples
Listes - Longueur
Longueur d'une liste : Utilisons len() pour obtenir le nombre d'éléments dans une liste.
Exemple 1:
print(len(fruits)) # Affiche 2
1 mangue
71
Pr . A. Zannou FST d’ Al-Hoceima
Listes et Tuples
Listes - Parcourir
Il existe plusieurs façons de parcourir une liste en Python. Voici les méthodes les plus courantes
1. Boucle for classique : Nous pouvons parcourir une liste élément par élément en utilisant une
boucle for.
Exemple 1:
fruits = ["pomme", 4, "banane", "kiwi"]
for fruit in fruits:
print(fruit)
Pomme
4
banane
kiwi
72
Pr . A. Zannou FST d’ Al-Hoceima
Listes et Tuples
Listes - Parcourir
Exemple 2:
fruits = ["pomme", 4, "banane", "kiwi"]
for i in range(len(fruits)):
print(f"Index {i}: {fruits[i]}")
Index 0: pomme
Index 1: 4
Index 2: banane
Index 3: kiwi
73
Pr . A. Zannou FST d’ Al-Hoceima
Listes et Tuples
Listes - Parcourir
enumerate() est une méthode pratique qui permet de parcourir une liste tout en obtenant à la fois
Exemple 3:
fruits = ["pomme", 4, "banane", "kiwi"]
for index, fruit in enumerate(fruits):
print(f"Index {index}: {fruit}")
Index 0: pomme
Index 1: 4
Index 2: banane
Index 3: kiwi
74
Pr . A. Zannou FST d’ Al-Hoceima
Listes et Tuples
Listes – Listes imbriquées
Les listes peuvent contenir d'autres listes, ce qui permet de créer des structures
de données complexes.
Exemple:
liste_imbriquee = [["pomme", "banane"], ["carotte", "brocoli"]]
print(liste_imbriquee[0]) # Affiche: ["pomme", "banane"]
print(liste_imbriquee[1][1]) # Affiche: brocoli
75
Pr . A. Zannou FST d’ Al-Hoceima
Listes et Tuples
Listes – Autres opérations sur les listes
Si les éléments sont des chaînes de caractères alors traités par ordre alphabétique
76
Pr . A. Zannou FST d’ Al-Hoceima
Listes et Tuples
Listes – Autres opérations sur les listes
Exemple 3 (1):
# Créer une liste initiale
nombres = [4, 2, 9, 1, 5, 6, 2]
# 1. Calculer la somme des éléments
somme = sum(nombres)
print("Somme des éléments :", somme) # Somme des éléments : 29
# 2. Calculer la moyenne
moyenne = somme / len(nombres)
print("Moyenne des éléments :", moyenne) #Moyenne des éléments : 4.142857142857143
# 3. Trier la liste avec sort() (en place)
[Link]()
print("Liste triée (sort) :", nombres) # Liste triée (sort) : [1, 2, 2, 4, 5, 6, 9]
77
Pr . A. Zannou FST d’ Al-Hoceima
Listes et Tuples
Listes – Autres opérations sur les listes
Exemple 3 (2) :
# 4. Trier la liste avec sorted() (sans modifier la liste originale)
nombres_non_triee = [4, 2, 9, 1, 5, 6, 2]
nombres_triee = sorted(nombres_non_triee)
print("Liste triée avec sorted() :", nombres_triee) #Liste triée avec sorted() : [1, 2, 2, 4, 5, 6, 9]
# 5. Trouver le maximum et le minimum
maximum = max(nombres)
minimum = min(nombres)
print("Maximum :", maximum) #Maximum : 9
print("Minimum :", minimum) #Minimum : 1
# 6. Compter les occurrences d'un élément (exemple : nombre 2)
compte_de_2 = [Link](2)
print("Nombre d'occurrences de 2 :", compte_de_2) #Nombre d'occurrences de 2 : 2
78
Pr . A. Zannou FST d’ Al-Hoceima
Listes et Tuples
Listes – Autres opérations sur les listes
Exemple 3 (3):
# 7. Ajouter un élément à la liste avec append()
[Link](7)
print("Liste après append (ajout de 7) :", nombres) #Liste après append (ajout de 7) : [1, 2, 2, 4, 5, 6, 9, 7]
# 8. Ajouter plusieurs éléments à la liste avec extend()
[Link]([8, 10])
print("Liste après extend (ajout de 8 et 10) :", nombres) # Liste après extend (ajout de 8 et 10) : [1, 2, 2, 4, 5, 6, 9, 7, 8, 10]
79
Pr . A. Zannou FST d’ Al-Hoceima
Listes et Tuples
Listes – Autres opérations sur les listes
Exemple 3 (4) :
# 9. Insérer un élément à une position spécifique avec insert()
[Link](2, 3) # Insère le nombre 3 à l'index 2
Liste après insert (insertion de 3 à l'index 2) : [1, 2, 3, 2, 4, 5, 6, 9, 7, 8, 10]
print("Liste après insert (insertion de 3 à l'index 2) :", nombres)
# 10. Inverser la liste avec reverse()
[Link]()
print("Liste inversée (reverse) :", nombres) Liste inversée (reverse) : [10, 8, 7, 9, 6, 5, 4, 2, 3, 2, 1]
80
Pr . A. Zannou FST d’ Al-Hoceima
Listes et Tuples
Listes – Autres opérations sur les listes
# 11. Inverser la liste avec [::-1] Nouvelle liste inversée avec [::-1] : [1, 2, 3, 2, 4, 5, 6, 9, 7, 8, 10]
nombres_inversee = nombres[::-1]
print("Nouvelle liste inversée avec [::-1] :", nombres_inversee)
81
Pr . A. Zannou FST d’ Al-Hoceima
Listes et Tuples
Listes – Autres opérations sur les listes
Exemple 1:
nombres_non_triee = [4, 2, 9, 1, 5, 6, 2]
nombres_inversee = nombres_non_triee[1:4:1]
print("Nouvelle liste inversée :", nombres_inversee)
Nouvelle liste inversée : [2, 9, 1]
Exemple 2:
nombres_non_triee = [4, 2, 9, 1, 5, 6, 2]
nombres_inversee = nombres_non_triee[4:1:-1]
print("Nouvelle liste inversée :", nombres_inversee)
82
Pr . A. Zannou FST d’ Al-Hoceima
Listes et Tuples
Listes – Autres opérations sur les listes
Déballage : On peut affecter les éléments d’une liste à des variables individuelles.
Exemple:
couleurs =["rouge", "vert", "bleu"]
r, v, b = couleurs
print(r) # Affiche: rouge
Exemple:
couleurs =["rouge", "vert", "bleu"]
del couleurs
print(couleurs) NameError: name 'couleurs' is not defined
83
Pr . A. Zannou FST d’ Al-Hoceima
Listes et Tuples
Tuples
Les tuples sont similaires aux listes, mais ils sont immuables, ce qui signifie qu'une fois
créés, leurs éléments ne peuvent pas être modifiés. Les tuples sont définis par des
parenthèses ().
Syntaxe:
mon_tuple = (élément1, élément2, élément3)
Exemple:
couleurs = ("rouge", 2 , "bleu")
Accès aux éléments : Comme pour les listes, on peut accéder aux éléments d'un
tuple en utilisant leur index.
Exemple:
print(couleurs[1]) # Affiche: 2
84
Pr . A. Zannou FST d’ Al-Hoceima
Listes et Tuples
Tuples
Immuabilité : Contrairement aux listes, les tuples ne peuvent pas être modifiés après
leur création.
Exemple:
# couleurs[1] = "jaune" # Provoquera une erreur car les tuples sont immuables
85
Pr . A. Zannou FST d’ Al-Hoceima
Listes et Tuples
Tuples - Opérations
Bien que les tuples soient immuables, on peut effectuer certaines opérations :
Exemple:
tuple1 = (1, 2, 3)
tuple2 = (4, 5, 6)
tuple3 = tuple1 + tuple2
print(tuple3) # Affiche: (1, 2, 3, 4, 5, 6)
Longueur d'un tuple : Utilisons len() pour obtenir le nombre d'éléments dans un tuple.
Exemple:
print(len(couleurs)) # Affiche 3
86
Pr . A. Zannou FST d’ Al-Hoceima
Listes et Tuples
Tuples - Opérations
Déballage : On peut affecter les éléments d'un tuple à des variables individuelles.
Exemple:
couleurs =("rouge", "vert", "bleu")
r, v, b = couleurs
print(r) # Affiche: rouge
87
Pr . A. Zannou FST d’ Al-Hoceima
Listes et Tuples
Tuples - Opérations
88
Pr . A. Zannou FST d’ Al-Hoceima
Listes et Tuples
Tuples - Opérations
Exemple:
t = ('bonjour', 'tout', 'le', 'monde')
result = max(t)
print(result) # Retourne 'tout' (car 't' est la dernière lettre dans l'ordre alphabétique)
89
Pr . A. Zannou FST d’ Al-Hoceima
Listes et Tuples
Tuples - Opérations
Voici une liste des opérations que l'on ne peut pas faire avec des tuples en raison de leur
nature immutable :
append()
extend()
insert()
remove()
pop()
sort()
reverse()
Modification directe des éléments (ex. : tuple[index] = new_value)
Supprimer un élément (aucune méthode pour retirer un élément)
90
Pr . A. Zannou FST d’ Al-Hoceima
Listes et Tuples
Comparison
91
Pr . A. Zannou FST d’ Al-Hoceima
Dictionnaires et Ensembles
Introduction
92
Pr . A. Zannou FST d’ Al-Hoceima
Dictionnaires et Ensembles
Dictionnaires
Les dictionnaires sont des collections de paires clé-valeur. Chaque clé est unique, et elle
est associée à une valeur.
Syntaxe:
mon_dictionnaire = {
"clé1": valeur1,
"clé2": valeur2,
"clé3": valeur3
}
Exemple *:
etudiant = {
"nom": "Alice",
"age": 25,
"note": 90} # ou etudiant = { "nom": "Alice", "age": 25, "note": 90}
93
Pr . A. Zannou FST d’ Al-Hoceima
Dictionnaires et Ensembles
Dictionnaires
Accès aux valeurs : On peut accéder à la valeur associée à une clé en utilisant la clé
entre crochets.
Exemple*:
print(etudiant["nom"]) # Affiche: Alice
Exemple *:
etudiant["age"] = 26 # Modifie l'âge
etudiant["cours"] = "Mathématiques" # Ajoute un nouvel élément
print(etudiant)
94
Pr . A. Zannou FST d’ Al-Hoceima
Dictionnaires et Ensembles
Dictionnaires - Opérations
Les dictionnaires offrent plusieurs méthodes utiles pour manipuler les paires clé-valeur.
Supprimer un élément : Utilisons del/pop pour supprimer une clé (et sa valeur
associée) du dictionnaire.
Exemple:
del etudiant["note"]
print(etudiant) # Affiche {'nom': 'Alice', 'age': 26, 'cours': 'Mathématiques'}
Obtenir toutes les clés : Utilisons keys() pour obtenir une liste de toutes les clés.
Exemple:
print([Link]()) # Affiche dict_keys(['nom', 'age', 'cours'])
95
Pr . A. Zannou FST d’ Al-Hoceima
Dictionnaires et Ensembles
Dictionnaires - Opérations
Obtenir toutes les valeurs : Utilisons values() pour obtenir une liste de toutes les valeurs.
Exemple:
print([Link]()) # Affiche dict_values(['Alice', 26, 'Mathématiques'])
Parcourir un dictionnaire : Utilisons une boucle for pour parcourir les paires clé-valeur.
Exemple:
p est le clé
for p, q in [Link](): q est la valuer
print(p, ":", q)
nom : Alice
age : 26
cours : Mathématiques
96
Pr . A. Zannou FST d’ Al-Hoceima
Dictionnaires et Ensembles
Dictionnaire : Opérations possibles et Opérations non possibles
Dictionnaire*
Opérations possibles :
sum() (sur les clés ou les valeurs si elles sont numériques)
max() (sur les clés ou les valeurs si elles sont comparables)
min() (sur les clés ou les valeurs si elles sont comparables)
sorted() (retourne une liste triée des clés ou des valeurs)
len() (retourne le nombre de paires clé-valeur)
Accès direct aux éléments (par clé, ex. : d['clé'])
pop() (retire et retourne un élément par clé)
Modification directe des éléments (par clé)
Supprimer un élément (avec del ou pop())
Opérations non possibles :
count()
index()
Slicing (ex. : dictionnaire[start:end])
append()
extend()
insert()
remove()
sort()
reverse()
97
Pr . A. Zannou FST d’ Al-Hoceima
Dictionnaires et Ensembles
Ensembles
Les ensembles sont des collections d'éléments uniques. Les ensembles ne permettent
pas de valeurs dupliquées.
Syntaxe:
mon_ensemble = {élément1, élément2, élément3}
Exemple:
fruits = {"pomme", "banane", 8}
Exemple:
ensemble_a = {"pomme", "banane", 8}
ensemble_b = {8, "orange", "kiwi"}
union = ensemble_a.union(ensemble_b)
print(union) # Affiche {'pomme', 'banane’, 8, 'orange', 'kiwi'}
Intersection : Trouve les éléments communs aux deux ensembles.
Exemple:
intersection = ensemble_a.intersection(ensemble_b)
print(intersection) # Affiche {8'}
99
Pr . A. Zannou FST d’ Al-Hoceima
Dictionnaires et Ensembles
Ensembles - Opérations
Différence : Trouve les éléments qui sont dans le premier ensemble mais pas dans
le second.
Exemple:
ensemble_a = {"pomme", "banane", 8}
ensemble_b = {8, "orange", "kiwi"}
difference = ensemble_a.difference(ensemble_b)
print(difference) # Affiche {'pomme', 'banane'}
100
Pr . A. Zannou FST d’ Al-Hoceima
Dictionnaires et Ensembles
Comparison
Ces concepts sur les dictionnaires et les ensembles en Python vous permettront de gérer
des collections de données de manière efficace et de les manipuler selon vos besoins.
Les dictionnaires sont idéaux pour les associations clé-valeur, tandis que les ensembles
sont utiles pour gérer des collections uniques et effectuer des opérations ensemblistes.
101
Pr . A. Zannou FST d’ Al-Hoceima
Dictionnaires et Ensembles
Opérations possibles et Opérations non possibles
Ensembles (sets)
Opérations possibles :
sum() (si les éléments sont numériques)
max() (si les éléments sont comparables)
min() (si les éléments sont comparables)
sorted() (retourne une liste triée des éléments)
len() (retourne le nombre d'éléments)
add() (ajoute un élément)
update() (ajoute plusieurs éléments)
remove() (retire un élément, erreur si non présent)
discard() (retire un élément, pas d'erreur si non présent)
pop() (retire et retourne un élément arbitraire)
Supprimer un élément (avec remove() ou discard())
Opérations non possibles :
count()
index()
Slicing (ex. : tuple[start:end])
Accès direct aux éléments
append()
extend()
insert()
sort()
reverse()
Modification directe des éléments (car les éléments doivent être immuables)
102
Pr . A. Zannou FST d’ Al-Hoceima
Gestion de fichiers
Introduction
La gestion des fichiers en Python permet de lire, écrire, et manipuler des fichiers sur le
disque. Python offre une interface simple pour interagir avec différents types de fichiers,
qu'ils soient texte ou binaire.
Ouverture et Fermeture de Fichiers
Avant de lire ou écrire dans un fichier, il faut l'ouvrir en utilisant la fonction open().
Après avoir terminé les opérations sur le fichier, il est important de le fermer en
utilisant la méthode close() pour libérer les ressources.
Syntaxe:
fichier = open("nom_du_fichier", "mode")
# Opérations sur le fichier
[Link]()
103
Pr . A. Zannou FST d’ Al-Hoceima
Gestion de fichiers
Modes d’ouverture
Exemple:
fichier = open("[Link]", "w")
[Link]("Bonjour, monde! \n Module de programmation \nCeci est une ligne ajoutée.")
[Link]()
Modes d'ouverture :
Les fichiers binaires peuvent contenir divers types de données comme des images, des
vidéos, des fichiers audio, des fichiers exécutables ou des bases de données.
rb, wb, ab, xb
104
Pr . A. Zannou FST d’ Al-Hoceima
Gestion de fichiers
Lecture
Exemple:
fichier = open("[Link]", "r")
contenu = [Link]()
print(contenu)
[Link]()
105
Pr . A. Zannou FST d’ Al-Hoceima
Gestion de fichiers
Lecture
Lire ligne par ligne : Utilisons readline() pour lire une ligne à la fois.
Exemple 1:
fichier = open("[Link]", "r")
ligne = [Link]()
print(ligne)
[Link]()
Bonjour, monde!
106
Pr . A. Zannou FST d’ Al-Hoceima
Gestion de fichiers
Lecture
Exemple 2:
fichier = open("[Link]", "r")
for i in range(3):
ligne = [Link]()
print(ligne)
[Link]()
Bonjour, monde!
Module de programmation
107
Pr . A. Zannou FST d’ Al-Hoceima
Gestion de fichiers
Lecture
Lire toutes les lignes dans une liste : Utilisons readlines() pour lire toutes les
lignes du fichier et les stocker dans une liste.
Exemple:
fichier = open("[Link]", "r")
lignes = [Link]()
print(lignes)
[Link]()
['Bonjour, monde! \n', 'Module de programmation \n', 'Ceci est une ligne ajoutée.']
108
Pr . A. Zannou FST d’ Al-Hoceima
Gestion de fichiers
Ecriture
Exemple:
fichier = open("[Link]", "w")
[Link]("Bonjour, monde! \n Module de programmation \n")
[Link]()
Ajout du texte : Ouvrons le fichier en mode "a" pour ajouter du contenu à la fin
du fichier.
Exemple:
fichier = open("[Link]", "a")
[Link]("\nCeci est une ligne ajoutée.")
[Link]()
109
Pr . A. Zannou FST d’ Al-Hoceima
Gestion de fichiers
With
Exemple:
with open("[Link]", "r") as fichier:
contenu = [Link]()
print(contenu)
Explication : Le fichier est automatiquement fermé lorsque le bloc with est terminé,
même en cas d'erreur.
110
Pr . A. Zannou FST d’ Al-Hoceima
Gestion de fichiers
Manipulation Avancée des Fichiers
Lire et écrire des fichiers binaires : Utilisez le mode "rb" ou "wb" pour lire ou
écrire des fichiers binaires.
Exemple:
with open("[Link]", "rb") as fichier:
contenu = [Link]()
print(contenu)
111
Pr . A. Zannou FST d’ Al-Hoceima
Gestion de fichiers
Manipulation Avancée des Fichiers
Exemple:
fichier = open("[Link]", "r")
[Link](10) # Déplace le curseur à la 10ème position
contenu = [Link]()
print(contenu)
[Link]()
onde!
Module de programmation
Ceci est une ligne ajoutée.
112
Pr . A. Zannou FST d’ Al-Hoceima
Gestion de fichiers
Manipulation Avancée des Fichiers
Obtenir la position actuelle du curseur : Utilisez tell() pour obtenir la position actuelle
du curseur dans le fichier.
Exemple:
fichier = open("[Link]", "r")
[Link](10)
position = [Link]()
print( "Position ", position)
[Link](0)
position = [Link]()
Affichage:
print( "Position ", position) Position 10
[Link]() Position 0
113
Pr . A. Zannou FST d’ Al-Hoceima
Gestion de fichiers
Suppression et renommage de fichiers
Pour manipuler les fichiers au niveau du système, Python fournit des fonctions via le
module os.
Supprimer un fichier : Utilisons [Link]() pour supprimer un fichier.
Exemple:
import os
[Link]("[Link]") # OU [Link]("D:/IDDL/[Link]")
Exemple:
import os
[Link]("[Link]", "nouveau_nom.txt")
114
Pr . A. Zannou FST d’ Al-Hoceima
Modules
Introduction
Un module est simplement un fichier contenant du code Python. Ce code peut inclure
des fonctions, des classes, et des variables. En organisant le code en modules, nous
pouvons le structurer de manière plus claire et le réutiliser facilement dans d'autres
programmes.
Création d'un module :
• Créer un fichier Python avec un nom explicite, par exemple mon_module.py.
• Ajouter des fonctions ou des variables à ce fichier.
Exemple : Créer un fichier mon_module.py avec le contenu suivant :
def saluer(nom):
return f"Bonjour, {nom}!"
pi = 3.14159
115
Pr . A. Zannou FST d’ Al-Hoceima
Modules
Module
Importer un Module
Une fois que nous avons créé un module, nous pouvons l'importer dans un autre
fichier Python en utilisant le mot-clé import.
Syntaxe:
import nom_du_module
Exemple:
import mon_module
print(mon_module.saluer("Alice")) # Affiche "Bonjour, Alice!"
print(mon_module.pi) # Affiche 3.14159
116
Pr . A. Zannou FST d’ Al-Hoceima
Modules
Module
Importer des éléments spécifiques : Si nous ne voulons importer qu'une partie d'un module,
nous pouvons utiliser la syntaxe suivante :
Syntaxe:
from nom_du_module import fonction_ou_variable
Exemple:
from mon_module import saluer
print(saluer("Bob")) # Affiche "Bonjour, Bob!"
Renommer un module : nous pouvons renommer un module lors de son
importation avec le mot-clé as.
Exemple:
import mon_module as mm
print([Link]("Charlie")) # Affiche "Bonjour, Charlie!"
117
Pr . A. Zannou FST d’ Al-Hoceima
Modules
Modules standard de Python
Python est livré avec de nombreux modules standard qui couvrent une large gamme
de fonctionnalités. Voici quelques-uns des modules les plus utilisés :
math : Fournit des fonctions mathématiques avancées.
Syntaxe:
import nom_du_module
Exemple:
import math
print([Link](16)) # Affiche 4.0
print([Link](5)) # Affiche 120
118
Pr . A. Zannou FST d’ Al-Hoceima
Modules
Modules standard de Python
Exemple:
from datetime import datetime
maintenant = [Link]()
print(maintenant) # Affiche la date et l'heure actuelles
Exemple:
import random
print([Link](1, 10)) # Affiche un nombre entier aléatoire entre 1 et 10
print([Link](1, 10)) # Affiche un nombre réel aléatoire entre 1 et 10
print([Link](["pomme", "banane", "cerise"])) # Sélectionne un élément aléatoire d'une liste
119
Pr . A. Zannou FST d’ Al-Hoceima
Modules
Modules standard de Python
Exemple:
import os
print([Link]()) # Affiche le répertoire de travail actuel
[Link]("nouveau_dossier") # Crée un nouveau dossier
120
Pr . A. Zannou FST d’ Al-Hoceima
Packages
Création
Exemple:
mon_package/
__init__.py
[Link]
[Link]
121
Pr . A. Zannou FST d’ Al-Hoceima
Packages
Importation
Exemple:
from mon_package import module1, module2
122
Pr . A. Zannou FST d’ Al-Hoceima
POO en python
Définition
123
Pr . A. Zannou FST d’ Al-Hoceima
POO en python
Classe et objets
Classe : Une classe est un plan ou un modèle à partir duquel des objets
peuvent être créés. Elle définit les attributs (propriétés) et les méthodes
(fonctions) que les objets de ce type posséderont.
Objet : Un objet est une instance concrète d'une classe. Lorsqu'un objet est
créé à partir d'une classe, il hérite des attributs et méthodes définis par cette
classe
124
Pr . A. Zannou FST d’ Al-Hoceima
POO en python
Classe et objets
Classe : Une classe est un plan ou un modèle à partir duquel des objets
peuvent être créés. Elle définit les attributs (propriétés) et les méthodes
(fonctions) que les objets de ce type posséderont.
Objet : Un objet est une instance concrète d'une classe. Lorsqu'un objet est
créé à partir d'une classe, il hérite des attributs et méthodes définis par cette
classe
125
Pr . A. Zannou FST d’ Al-Hoceima
POO en python
Classe et objets
Exemple:
class Voiture:
def __init__(self, marque, modele, annee):
[Link] = marque
[Link] = modele
[Link] = annee
def demarrer(self):
print(f"La {[Link]} {[Link]} démarre.")
# Création d'objets (instances de la classe)
ma_voiture = Voiture("Toyota", "Corolla", 2020)
ta_voiture = Voiture("Honda", "Civic", 2019)
# Utilisation des méthodes
ma_voiture.demarrer() # Affiche : La Toyota Corolla démarre
ta_voiture.demarrer() # Affiche : La Honda Civic démarre
Dans cet exemple, Voiture est une classe. Les objets ma_voiture et ta_voiture sont des
instances de cette classe, avec des propriétés spécifiques (marque, modèle, année) et
une méthode (démarrer).
126
Pr . A. Zannou FST d’ Al-Hoceima
POO en python
Constructeur __init__
Le constructeur __init__
__init__ : C'est une méthode spéciale appelée constructeur. Elle est
automatiquement appelée lorsqu'une nouvelle instance de la classe est créée. Elle
sert à initialiser les attributs de l'objet.
Détails :
La méthode __init__ permet de définir les valeurs initiales des attributs d'une
classe lorsqu'un objet est créé.
Le mot-clé self dans les méthodes de classe fait référence à l'instance actuelle
de la classe. Il est utilisé pour accéder aux attributs et méthodes de l'objet dans
la classe.
127
Pr . A. Zannou FST d’ Al-Hoceima
POO en python
Constructeur __init__
Exemple:
class Personne:
def __init__(self, nom, age):
[Link] = nom # Attribut nom
[Link] = age # Attribut age
def saluer(self):
print(f"Bonjour, je m'appelle {[Link]} et j'ai {[Link]} ans.")
# Création d'un objet
individu = Personne("Alice", 30)
[Link]() # Affiche : Bonjour, je m'appelle Alice et j'ai 30 ans
Dans cet exemple, __init__ est utilisée pour initialiser les attributs nom
et age lorsque l'objet individu est créé.
128
Pr . A. Zannou FST d’ Al-Hoceima
POO en python
Encapsulation
L'encapsulation est un concept de la POO qui consiste à protéger les données d'une
classe en les rendant inaccessibles directement de l'extérieur. Cela permet de contrôler
l'accès aux attributs et méthodes.
Public : Les attributs et méthodes sont accessibles de l'extérieur de la classe. Par
défaut, tous les attributs et méthodes en Python sont publics.
Protégé : Les attributs et méthodes qui commencent par un underscore (_) sont
considérés comme protégés. Cela signifie qu'ils sont destinés à être utilisés à l'intérieur
de la classe et dans les classes dérivées, mais pas par des utilisateurs extérieurs.
Privé : Les attributs et méthodes qui commencent par deux underscores (__) sont
considérés comme privés. Cela renforce l'encapsulation en rendant ces attributs
accessibles uniquement à l'intérieur de la classe
129
Pr . A. Zannou FST d’ Al-Hoceima
POO en python
Encapsulation
Dans cet exemple, l'attribut __solde est privé et ne peut pas être modifié directement
de l'extérieur. Seules les méthodes deposer et afficher_solde permettent d'interagir
avec cet attribut.
130
Pr . A. Zannou FST d’ Al-Hoceima
POO en python
Encapsulation
131
Pr . A. Zannou FST d’ Al-Hoceima
POO en python
Héritage
L'héritage est un mécanisme qui permet à une classe (appelée classe enfant) d'hériter
des attributs et méthodes d'une autre classe (appelée classe parent). Cela favorise la
réutilisation du code et permet d'étendre des fonctionnalités sans les réécrire.
Classe Parent : La classe de base dont les propriétés et méthodes sont héritées.
Classe Enfant : La classe dérivée qui hérite des propriétés et méthodes de la classe
parent.
132
Pr . A. Zannou FST d’ Al-Hoceima
POO en python
Héritage
Syntaxe:
class ClasseEnfant(ClasseParent):
# Nouveaux attributs et méthodes spécifiques à ClasseEnfant
133
Pr . A. Zannou FST d’ Al-Hoceima
POO en python
Héritage
Exemple:
class AppareilElectronique:
def __init__(self, marque):
[Link] = marque
def allumer(self):
print(f"L'appareil {[Link]} est allumé.")
Ici, la classe Ordinateur hérite de la classe AppareilElectronique. L'objet mon_pc peut utiliser la méthode allumer
définie dans AppareilElectronique ainsi que la méthode lancer_programme propre à Ordinateur.
134
Pr . A. Zannou FST d’ Al-Hoceima
POO en python
Héritage : attribut protégé
135
Pr . A. Zannou FST d’ Al-Hoceima
POO en python
Polymorphisme
136
Pr . A. Zannou FST d’ Al-Hoceima
POO en python
Polymorphisme
137
Pr . A. Zannou FST d’ Al-Hoceima
POO en python
Méthodes Spéciales (Méthodes Magiques)
Les méthodes spéciales, ou méthodes magiques, sont des méthodes prédéfinies par
Python qui commencent et se terminent par des doubles underscores (__).
Elles permettent de définir des comportements spéciaux pour les objets, comme leur
création, leur représentation en chaîne.
__init__ : Déjà discutée, c'est la méthode utilisée pour initialiser un objet lorsqu'il est
créé.
__str__ : Cette méthode est appelée pour obtenir une représentation en chaîne de l'objet,
souvent utilisée avec la fonction print.
138
Pr . A. Zannou FST d’ Al-Hoceima
POO en python
Méthodes Spéciales (Méthodes Magiques)
Affichage
Affichage
139
Pr . A. Zannou FST d’ Al-Hoceima
Analyse de données avec Numpy
Introduction
140
Pr . A. Zannou FST d’ Al-Hoceima
Analyse de données avec Numpy
Tableaux
Le tableau « array en anglais » de NumPy est une structure de données pour stocker des
éléments de même type, indexés par une séquence d'entiers. Contrairement aux listes
Python, les tableaux NumPy sont beaucoup plus efficaces pour les opérations
numériques.
Exemple:
import numpy as np
# Création d'un tableau 1D (vecteur)
a = [Link]([1, 2, 3, 4])
print(a)
[1 2 3 4]
141
Pr . A. Zannou FST d’ Al-Hoceima
Analyse de données avec Numpy
Type de données
Les tableaux NumPy peuvent stocker des données de différents types (int, float,str
complex, etc.). Nous pouvons spécifier le type de données lors de la création du
tableau.
Exemple : Spécification du Type de Données
Exemple:
b = [Link]([1, 2, 3], dtype=float)
print(b)
[1. 2. 3.]
142
Pr . A. Zannou FST d’ Al-Hoceima
Analyse de données avec Numpy
Opérations Mathématiques sur les Tableaux
143
Pr . A. Zannou FST d’ Al-Hoceima
Analyse de données avec Numpy
Opérations Mathématiques sur les Tableaux
Exemple 1
144
Pr . A. Zannou FST d’ Al-Hoceima
Analyse de données avec Numpy
Opérations Mathématiques sur les Tableaux
import numpy as np
Exemple 1 (suite) c = [Link]([9, 4, 1, 16])
145
Pr . A. Zannou FST d’ Al-Hoceima
Analyse de données avec Numpy
Indexation et Slicing
Nous pouvons accéder aux éléments d'un tableau NumPy en utilisant l'indexation,
tout comme pour les listes Python. NumPy permet également de faire du slicing
pour accéder à des sous-parties du tableau.
Exemple 2 :
146
Pr . A. Zannou FST d’ Al-Hoceima
Analyse de données avec Numpy
Indexation et Slicing
147
Pr . A. Zannou FST d’ Al-Hoceima
Analyse de données avec Numpy
Tableaux Multidimensionnels
Les tableaux NumPy peuvent être de n dimensions. Les tableaux 2D (matrices) sont
particulièrement courants.
148
Pr . A. Zannou FST d’ Al-Hoceima
Analyse de données avec Numpy
Tableaux Multidimensionnels
Exemple 3
149
Pr . A. Zannou FST d’ Al-Hoceima
Analyse de données avec Numpy
Manipulation de Formes
reshape : Change la forme d’un tableau sans en modifier les données, permettant de
réorganiser ses dimensions.
flatten : Convertit un tableau multidimensionnel en un tableau 1D, ce qui simplifie les
opérations sur les éléments.
concatenate : Concatène plusieurs tableaux le long d’un axe donné, permettant de
combiner plusieurs tableaux en un seul.
transpose : Transpose les dimensions d’un tableau, utile pour les opérations
matricielles.
150
Pr . A. Zannou FST d’ Al-Hoceima
Analyse de données avec Numpy
Manipulation de Formes
Exemple 4
151
Pr . A. Zannou FST d’ Al-Hoceima
Analyse de données avec Numpy
Manipulation de Formes
152
Pr . A. Zannou FST d’ Al-Hoceima
Analyse de données avec Numpy
Tableaux spéciaux
NumPy propose des fonctions pour créer des tableaux spéciaux, comme des tableaux
de zéros, de uns, ou des tableaux identités.
153
Pr . A. Zannou FST d’ Al-Hoceima
Analyse de données avec Numpy
Tableaux spéciaux
Exemple 5
154
Pr . A. Zannou FST d’ Al-Hoceima
Analyse de données avec Numpy
Tableaux spéciaux
Exemple 5 (Suite)
155
Pr . A. Zannou FST d’ Al-Hoceima
Analyse de données avec Numpy
Randomisation
NumPy propose un module random pour générer des nombres aléatoires, des
échantillons, et plus encore.
156
Pr . A. Zannou FST d’ Al-Hoceima
Analyse de données avec Numpy
Randomisation
Exemple 6
157
Pr . A. Zannou FST d’ Al-Hoceima
Analyse de données avec Numpy
Calcul sur les Axes
NumPy vous permet d'effectuer des calculs sur des axes spécifiques dans des tableaux
multidimensionnels. Par exemple, vous pouvez calculer la somme de chaque colonne
ou ligne d'une matrice.
158
Pr . A. Zannou FST d’ Al-Hoceima
Analyse de données avec Numpy
Masquage et Filtrage
Nous pouvons filtrer les éléments d'un tableau en utilisant des masques, c'est-à-dire
des tableaux de booléens qui indiquent quels éléments sont sélectionnés.
159
Pr . A. Zannou FST d’ Al-Hoceima
Analyse de données avec Numpy
Algebra Linéaire
[[19 22]
[43 50]]
160
Pr . A. Zannou FST d’ Al-Hoceima
Bibliothèque pandas
Introduction
161
Pr . A. Zannou FST d’ Al-Hoceima
Bibliothèque pandas
Structures de Données : Series
Une Series est une structure de données unidimensionnelle similaire à une liste, mais
avec des fonctionnalités supplémentaires. Chaque élément d'une Series est indexé.
162
Pr . A. Zannou FST d’ Al-Hoceima
Bibliothèque pandas
Structures de Données : Series
0 10
1 20
2 30
3 40
dtype: int64
163
Pr . A. Zannou FST d’ Al-Hoceima
Bibliothèque pandas
Structures de Données : Series
a 100
b 200
c 300
dtype: int64
164
Pr . A. Zannou FST d’ Al-Hoceima
Bibliothèque pandas
Structures de Données : Series
s = [Link](data)
print(s)
0 100
1 200
2 300
dtype: int64
165
Pr . A. Zannou FST d’ Al-Hoceima
Bibliothèque pandas
Structures de Données : DataFrame
Nom,Âge,Ville
Alice,25,Paris
Bob,30,Lyon
Charlie,35,Marseille
167
Pr . A. Zannou FST d’ Al-Hoceima
Bibliothèque pandas
Fichiers en pandas
168
Pr . A. Zannou FST d’ Al-Hoceima
Bibliothèque pandas
Fichiers en pandas
[
{"Nom":"Alice","Âge":25,"Ville":"Paris"},
{"Nom":"Bob","Âge":30,"Ville":"Lyon"},
{"Nom":"Charlie","Âge":35,"Ville":"Marseille"}
]
169
Pr . A. Zannou FST d’ Al-Hoceima
Bibliothèque pandas
Fichiers en pandas
Le paramètre orient dans la méthode to_json() de Pandas contrôle la manière dont les
données du DataFrame sont structurées dans le fichier JSON. En d'autres termes, il
détermine l'organisation et le format du fichier JSON généré.
170
Pr . A. Zannou FST d’ Al-Hoceima
Bibliothèque pandas
Fichiers en pandas
Chaque ligne du DataFrame est convertie en un objet JSON (dictionnaire). Le fichier JSON [{"col1": valeur1, "col2": valeur2}, {"col1": valeur3,
'records'
final est une liste de ces objets. "col2": valeur4}]
Les données sont organisées en dictionnaires imbriqués, où les index du DataFrame servent {"index1": {"col1": valeur1, "col2": valeur2}, "index2":
'index'
de clés principales. {"col1": valeur3, "col2": valeur4}}
Les colonnes deviennent les clés principales. Chaque clé contient un dictionnaire où les {"col1": {"index1": valeur1, "index2": valeur3}, "col2":
'columns'
index servent de sous-clés. {"index1": valeur2, "index2": valeur4}}
Les données sont représentées comme une liste de listes, chaque sous-liste correspondant à
'values' [[valeur1, valeur2], [valeur3, valeur4]]
une ligne du DataFrame.
Génère une structure au format JSON Schema (idéal pour les bases de données {"schema": {...}, "data": [{"col1": valeur1, "col2":
'table'
relationnelles ou les frameworks JSON). valeur2}, {"col1": valeur3, "col2": valeur4}]}
171
Pr . A. Zannou FST d’ Al-Hoceima
Bibliothèque pandas
Fichiers en pandas
Nom|Âge|Ville
Alice|25|Paris
Bob|30|Lyon
Charlie|35|Marseille
172
Pr . A. Zannou FST d’ Al-Hoceima
Bibliothèque pandas
Fichiers en pandas
173
Pr . A. Zannou FST d’ Al-Hoceima
Bibliothèque pandas
Exploration de données
174
Pr . A. Zannou FST d’ Al-Hoceima
Bibliothèque pandas
Exploration de la structure du DataFrame
Taille et forme
[Link] : Renvoie le nombre de lignes et de colonnes sous forme d'un tuple
(lignes, colonnes).
[Link] : Renvoie le nombre total d'éléments dans le DataFrame (lignes ×
colonnes).
[Link] : Renvoie le nombre de dimensions (2 pour un DataFrame).
Noms des colonnes et des index
[Link] : Renvoie les noms des colonnes.
[Link] : Renvoie les index des lignes.
[Link] : Affiche le type de données de chaque colonne.
Aperçu des données
[Link](n) : Renvoie les premières n lignes (par défaut, n=5).
[Link](n) : Renvoie les dernières n lignes.
[Link](n) : Renvoie un échantillon aléatoire de n lignes
175
Pr . A. Zannou FST d’ Al-Hoceima
Bibliothèque pandas
Résumé de données
Informations générales
[Link]() : Affiche un résumé du DataFrame, y compris le type de données, le
nombre de valeurs non nulles et la mémoire utilisée.
Statistiques descriptives
[Link]() : Calcule des statistiques descriptives pour les colonnes
numériques (moyenne, écart type, min, max, quartiles).
[Link](include='all') : Inclut toutes les colonnes, y compris les colonnes
non numériques.
[Link]() : Calcule la matrice de corrélation entre les colonnes numériques.
[Link]() : Calcule la matrice de covariance entre les colonnes numériques.
176
Pr . A. Zannou FST d’ Al-Hoceima
Bibliothèque pandas
Exploration des valeurs
Valeurs uniques
df['colonne'].unique() : Renvoie les valeurs uniques d'une colonne.
df['colonne'].nunique() : Renvoie le nombre de valeurs uniques dans une
colonne.
Comptage des occurrences
df['colonne'].value_counts() : Compte le nombre d'occurrences de chaque
valeur dans une colonne.
177
Pr . A. Zannou FST d’ Al-Hoceima
Bibliothèque pandas
Détection des valeurs manquantes
Vérification
[Link]() : Renvoie un DataFrame booléen indiquant où se trouvent les valeurs
manquantes.
[Link]() : Renvoie un DataFrame booléen indiquant où les valeurs ne sont
pas manquantes.
Somme des valeurs manquantes
[Link]().sum() : Renvoie le nombre de valeurs manquantes pour chaque
colonne.
[Link]().any() : Renvoie True pour les colonnes contenant au moins une
valeur manquante.
178
Pr . A. Zannou FST d’ Al-Hoceima
Bibliothèque pandas
Exploration des types de données
Conversion de types
[Link](dtype) : Convertit une colonne ou un DataFrame vers un type
spécifique (par exemple, float, int, category).
Filtrage par type
df.select_dtypes(include=[type]) : Filtre les colonnes correspondant à un type
donné (par exemple, include=['number'] pour les colonnes numériques).
df.select_dtypes(exclude=[type]) : Exclut les colonnes d'un type donné.
179
Pr . A. Zannou FST d’ Al-Hoceima
Bibliothèque pandas
Exploration des relations entre les colonnes
Corrélations
[Link]() : Calcule les corrélations de (Pearson par défaut) entre les colonnes
numériques.
[Link](other) : Calcule les corrélations entre le DataFrame et une autre
série ou DataFrame.
Comptage des doublons
[Link]() : Identifie les lignes dupliquées.
df.drop_duplicates() : Supprime les lignes dupliquées.
180
Pr . A. Zannou FST d’ Al-Hoceima
Bibliothèque pandas
Exploration avancée des distributions
181
Pr . A. Zannou FST d’ Al-Hoceima
Bibliothèque pandas
Exploration des colonnes catégoriques
182
Pr . A. Zannou FST d’ Al-Hoceima
Bibliothèque pandas
Sélection des colonnes
183
Pr . A. Zannou FST d’ Al-Hoceima
Bibliothèque pandas
Sélection des lignes
184
Pr . A. Zannou FST d’ Al-Hoceima
Bibliothèque pandas
Filtrage des données
Condition simple :
df[df['colonne'] condition valeur]
Exemple : df[df['colonne'] > 10]
Conditions combinées avec des opérateurs logiques :
ET (&) :
df[(df['colonne1'] condition1) & (df['colonne2'] condition2)]
OU (|) :
df[(df['colonne1'] condition1) | (df['colonne2'] condition2)]
NON (~) :
df[~(condition)]
Filtrage par liste de valeurs :
df[df['colonne'].isin([valeur1, valeur2])]
185
Pr . A. Zannou FST d’ Al-Hoceima
Bibliothèque pandas
Sélection de sous-ensembles
186
Pr . A. Zannou FST d’ Al-Hoceima
Bibliothèque pandas
Application d’une fonction
187
Pr . A. Zannou FST d’ Al-Hoceima
Bibliothèque pandas
Sélectionner un échantillon aléatoire
[Link](n)
188
Pr . A. Zannou FST d’ Al-Hoceima
Bibliothèque pandas
Gestion des doublons
189
Pr . A. Zannou FST d’ Al-Hoceima
Bibliothèque pandas
Filtrage avancé
190
Pr . A. Zannou FST d’ Al-Hoceima
Bibliothèque pandas
Ajout et Suppression de Données
Pandas offre une variété de méthodes pour effectuer des opérations sur les données,
comme l'agrégation, le regroupement, la fusion, etc.
Agrégation
GroupBy
Regrouper les données par une colonne et appliquer des opérations d'agrégation.
192
Pr . A. Zannou FST d’ Al-Hoceima
Bibliothèque pandas
Fusion
193
Pr . A. Zannou FST d’ Al-Hoceima
Bibliothèque pandas
Fusion
La fusion est similaire aux opérations de jointure dans les bases de données
relationnelles (ex. SQL).
Clé de jointure : colonne(s) commune(s) sur lesquelles la fusion est effectuée.
Type de jointure : détermine comment les lignes des DataFrames sont combinées :
• Inner Join (par défaut) : conserve uniquement les lignes présentes dans les
deux DataFrames.
• Outer Join : conserve toutes les lignes des deux DataFrames, même celles sans
correspondance.
• Left Join : conserve toutes les lignes du DataFrame de gauche, même si elles
n'ont pas de correspondance dans celui de droite.
• Right Join : conserve toutes les lignes du DataFrame de droite, même si elles
n'ont pas de correspondance dans celui de gauche
194
Pr . A. Zannou FST d’ Al-Hoceima
Bibliothèque pandas
Fusion
195
Pr . A. Zannou FST d’ Al-Hoceima
Bibliothèque pandas
Fusion
196
Pr . A. Zannou FST d’ Al-Hoceima
Bibliothèque pandas
Fusion
197
Pr . A. Zannou FST d’ Al-Hoceima
Bibliothèque pandas
Fusion
198
Pr . A. Zannou FST d’ Al-Hoceima
Bibliothèque pandas
Manipulation des Dates
Pandas est très puissant pour travailler avec des données temporelles. Pandas permet
facilement de convertir des colonnes en format date et effectuer des opérations sur
ces données.
Exemple : Convertir une colonne contenant des dates sous forme de chaînes en objets
datetime
data = {'Date': ['2023-11-15', '2024-01-01', '2024-02-30']}
# Conversion en format datetime
df = [Link](data)
# Remplace les dates invalides par NaT
Année : df['Date'].[Link]
Année de la date (ex. 2024)
Mois : df['Date'].[Link]
Mois (1-12)
Nom du mois : df['Date'].dt.month_name()
Nom complet du mois (ex. November)
Jour : df['Date'].[Link]
Jour du mois (1-31)
Jour de l'année : df['Date'].[Link]
Numéro du jour dans l’année (1-365/366)
200
Pr . A. Zannou FST d’ Al-Hoceima
Bibliothèque pandas
Manipulation des Dates
201
Pr . A. Zannou FST d’ Al-Hoceima