Introduction à la programmation Python
Introduction à la programmation Python
Pr. K. Doumi
[Link]@[Link]
1
Pr. K. Doumi ([Link]@[Link] ) Programmation en langage Python 18 octobre 2022 1 / 111
Introduction
Le langage Python est crée en 1991 par Guido van Rossum (chez Google
maintenant )
Largement utilisé par :
Google
Yahoo
Youtube
...
Utilisé dans différentes disciplines, en particulier :
Big Data
Science de données
..
2
Pr. K. Doumi ([Link]@[Link] ) Programmation en langage Python 18 octobre 2022 2 / 111
Introduction
Quelques caractéristiques
Typage dynamique
Langage de script et orienté objet
Code moins volumineux : 5 à 10 fois moins de ligne de code que
C/C++/Java/...
Gestion automatique de la mémoire(ramasse-miettes)
Multiplateformes
Vitesse de développement
Erreurs facilement repérables
Open Source ⇒ Grande communauté
Riche en terme de bibliothèque spécialisées
Facile à appréhender
3
Pr. K. Doumi ([Link]@[Link] ) Programmation en langage Python 18 octobre 2022 3 / 111
Introduction
Écosystème Python
4
Pr. K. Doumi ([Link]@[Link] ) Programmation en langage Python 18 octobre 2022 4 / 111
Éléments de base
5
Pr. K. Doumi ([Link]@[Link] ) Programmation en langage Python 18 octobre 2022 5 / 111
Les opérateurs
6
Pr. K. Doumi ([Link]@[Link] ) Programmation en langage Python 18 octobre 2022 6 / 111
Les instructions élémentaires
Les instructions élémentaires qui figurent le plus souvent dans tous les algo-
rithmes sont au nombre de trois :
L’affectation.
Les instructions d’entrée des données.
Les instructions de sortie des données.
7
Pr. K. Doumi ([Link]@[Link] ) Programmation en langage Python 18 octobre 2022 7 / 111
Les instructions élémentaires
L’affectation
Exemple :
1 a = 5
2 b = 6
3 a , b = 5 , 6
4 a = a + b
8
Pr. K. Doumi ([Link]@[Link] ) Programmation en langage Python 18 octobre 2022 8 / 111
Les instructions élémentaires
L’affectation
Exercice :
Soient x et y deux variables telles que x = 5 et y = 6.
Donner le script permettant d’échanger leurs contenues.
9
Pr. K. Doumi ([Link]@[Link] ) Programmation en langage Python 18 octobre 2022 9 / 111
Les instructions élémentaires
Écriture de données
Exemple :
1 age, nom = 25, "Python"
2 print("Bonjour")
3 p r i n t ("J e m’appelle ",nom)
4 p r i n t ( ’ J \ ’ a i ’ , age , ’ ans’)
10
Pr. K. Doumi ([Link]@[Link] ) Programmation en langage Python 18 octobre 2022 10 / 111
Les instructions élémentaires
Lecture de données
La lecture des données permet d’affecter aux variables, les valeurs lues au
clavier. Cette instruction interrompt le programme et attend que l’utilisateur
saisisse ce qu’il veut puis appuie sur la touche Entrée.
Syntaxe :
1 variable = input()
2 variable = input("Message")
11
Pr. K. Doumi ([Link]@[Link] ) Programmation en langage Python 18 octobre 2022 11 / 111
Les instructions élémentaires
Lecture de données
Exemple 2 :
1 x = int(input("Entrer l e premier nombre : " ) )
2 y =int(input("Entrer l e deuxième nombre : " ) )
3 s = x + y
4 print(La somme est : ’ , s )
Exemple : Soit le script suivant qui calcule et affiche la valeur absolue d’un
entier.
14
Pr. K. Doumi ([Link]@[Link] ) Programmation en langage Python 18 octobre 2022 14 / 111
Les instructions conditionnelles
L’instruction if ... : ... else : ...
Syntaxe :
1 i f condition:
2 Bloc_instructions_1
3 else:
4 Bloc_instruction_2
Exercice :
Écrire un script qui demande un nombre réel, et qui vérifier si ce nombre est,
strictement négatif, strictement positif ou nul.
16
Pr. K. Doumi ([Link]@[Link] ) Programmation en langage Python 18 octobre 2022 16 / 111
Les instructions conditionnelles
L’instruction if ... : ... elif ... : ... elif ... : ... else : ...
Syntaxe :
1 i f condition 1:
2 Bloc_instructions_1
3 e l i f condition 2:
4 Bloc_instruction_2
5 ....
6 e l i f condition n:
7 Bloc_instruction_n
8 else:
9 Bloc_instruction_n+1
17
Pr. K. Doumi ([Link]@[Link] ) Programmation en langage Python 18 octobre 2022 17 / 111
Les instructions conditionnelles
L’instruction if ... : ... elif ... : ... elif ... : ... else : ...
Exemple :
1 x = float(input())
2 if x < 0 :
3 p r i n t ( x , "e s t négatif")
4 elif x > 0 :
5 p r i n t ( x , "e s t p o s i t i f " )
6 else:
7 p r i n t ( x , "e s t nul")
18
Pr. K. Doumi ([Link]@[Link] ) Programmation en langage Python 18 octobre 2022 18 / 111
Les instructions conditionnelles
Exercices
Exercice 1 :
Soit x un nombre entier lu au clavier. Écrire un script qui vérifier si x est un
nombre pair ou impair.
Exercice 2 :
Écrire un script qui lit les coefficients d’une équation ax +b = 0 et qui affiche
les solutions possibles (selon les cas, c’est : (1) −b , (2) aucune solution ou
a
(3) tout x ∈ R est une solution)
Exercice 3 :
Écrire un script de résolution d’une équation du deuxième degré
ax2 + bx + c = 0
19
Pr. K. Doumi ([Link]@[Link] ) Programmation en langage Python 18 octobre 2022 19 / 111
Les instructions répétitives
La boucle while
Syntaxe :
1 while condition:
2 Bloc_instructions
20
Pr. K. Doumi ([Link]@[Link] ) Programmation en langage Python 18 octobre 2022 20 / 111
Les instructions répétitives
La boucle while
Exercice 1 :
Comme le nombre de tentatives autorisées dans ce cas est illimité, proposer
une deuxième version où ce nombre sera limité à trois tentatives.
Exercice 2 :
Donner un script qui demande la valeur de n (un entier) et qui calcule la
valeur de la série : 1 + 2 + ... + n
Exercice 3 :
Donner un script qui demande la valeur de n (un entier) et qui calcule
n! = n ∗ (n − 1) ∗ ... ∗ 1
21
Pr. K. Doumi ([Link]@[Link] ) Programmation en langage Python 18 octobre 2022 21 / 111
Les instructions répétitives
La boucle for
Syntaxe :
1 f o r element i n sequence :
2 Bloc_instructions
Exemple 1 :
1 f o r k i n [2 , 5 , 8 , 3 . 4] :
2 print(k)
Exemple 1 :
1 f o r k i n "BONJOR" :
2 print(k)
22
Pr. K. Doumi ([Link]@[Link] ) Programmation en langage Python 18 octobre 2022 22 / 111
Les instructions répétitives
La boucle for
Exercice 1 :
En utilisant la boucle for, écrire un script calculant la somme : 1 + 2 + 3 +
4+ 5
Question : Comment faire maintenant pour calculer la somme 1+2+...+n,
avec n un entier quelconque à lire au clavier.
⇒ On aura besoin d’une séquence de valeurs 1, 2, 3, ...n que nous ne pouvons
pas générer explicitement.
23
Pr. K. Doumi ([Link]@[Link] ) Programmation en langage Python 18 octobre 2022 23 / 111
Les instructions répétitives
La fonction range
Exemple :
En utilisant la boucle for, écrire un script permettant de calculer la somme
1 + 2 + ... + n, avec n un entier quelconque à demander.
24
Pr. K. Doumi ([Link]@[Link] ) Programmation en langage Python 18 octobre 2022 24 / 111
Les instructions répétitives
Exercices
f0 = 0
f1 = 1
fn = f n−1 + fn−2 si n ≥ 2
Exercice 5 :
Écrire un script permettant de calculer la valeur approchée de π en utilisant
le développement suivant :
Σ
+∞
(−1) k
π=4
2k + 1
k=0
1
et en s’arrêtant lorsque le terme 2 k+1 du développement soit plus petit qu’un
réel epsilon(de votre choix).
27
Pr. K. Doumi ([Link]@[Link] ) Programmation en langage Python 18 octobre 2022 27 / 111
Les fonctions
28
Pr. K. Doumi ([Link]@[Link] ) Programmation en langage Python 18 octobre 2022 28 / 111
Les fonctions
Syntaxe :
1 def nom_de_la_fonction(paramètres):
2 Bloc_instructions
29
Pr. K. Doumi ([Link]@[Link] ) Programmation en langage Python 18 octobre 2022 29 / 111
Les fonctions
Exemples
Exemple 1 :
1 def carre(x):
2 return x*x
Exemple 2 :
1 def constante():
2 return 5
Exemple 3 :
1 def s a l ue r ( ) : #Fonction sans paramètres
2 print(’bonjour’)
30
Pr. K. Doumi ([Link]@[Link] ) Programmation en langage Python 18 octobre 2022 30 / 111
Les fonctions
Passage des paramètres
Appels :
1 f ( 5 , 3 , 7) # x=5, y=3 e t z=7
2 f ( 2 , "a b c " , [ 1 , 2 , 3 ] ) # x=2, y="abc" e t z=[1,2,3]
31
Pr. K. Doumi ([Link]@[Link] ) Programmation en langage Python 18 octobre 2022 31 / 111
Les fonctions
return
32
Pr. K. Doumi ([Link]@[Link] ) Programmation en langage Python 18 octobre 2022 32 / 111
Les fonctions
Exemple
Exercice :
Un nombre est dit premier si il n’a que deux diviseur 1 et le nombre lui-même.
Autrement dit, il suffit de trouver un autre diviseur entre 2 et n − 1 pour
conclure que le nombre n’est pas premier.
Écrire la fonction premier qui reçoit un entier en paramètres et qui retourne
True si ce dernier est un nombre premier et False sinon.
33
Pr. K. Doumi ([Link]@[Link] ) Programmation en langage Python 18 octobre 2022 33 / 111
Les fonctions
Exemple
1 def premier(n):
2 f o r i i n range(2,n) :
3 i f n%i==0 :
4 return False
5 return True
34
Pr. K. Doumi ([Link]@[Link] ) Programmation en langage Python 18 octobre 2022 34 / 111
Les fonctions
print vs return
Exemple 2 :
Exemple 1 :
1 def carre(x):
1 def carre(x):
2 print(x*x)
2 return x*x
Exécution :
Exécution :
1 a=carre(5)
1 a=carre(5)
2 print(a)
2 print(a)
3 m=a+4
3 m=a+4
4 print(m)
4 print(m)
Résultat :
Résultat :
25
25
None
9
Erreur ! 35
Pr. K. Doumi ([Link]@[Link] ) Programmation en langage Python 18 octobre 2022 35 / 111
Les fonctions
les valeurs par défaut
Il est possible de préciser des valeurs par défaut pour les paramètres de la
fonction.
Exemple :
1 def f ( a =1 , b=2, c=3):
2 print ("a = " , a , "b = " , b , " c = " , c)
Exécution :
1 f ( ) # a=1 b=2 c=3
2 f ( 6 ) # a=6 b=2 c=3
3 f ( 4 , 5 ) # a=4 b=5 c=3
4 f ( 4 , 5 , 6 ) # a=4 b=5 c=6
5 f(b=5) # a=1, b=5, c=3
6 f ( c = 8 , b=4) # a=1 b=4 c=8
36
Pr. K. Doumi ([Link]@[Link] ) Programmation en langage Python 18 octobre 2022 36 / 111
Les fonctions
Porté des variable
Les noms des objets sont crées lors de leur première affectation, mais ne sont
visibles que dans certaines régions de la mémoire.
Variables globales : ils ont une portée qui s’étend sur l’ensemble du
programme.
Variables locales : ils ont une portée qui se limite au corps de la
fonction où il sons définis.
37
Pr. K. Doumi ([Link]@[Link] ) Programmation en langage Python 18 octobre 2022 37 / 111
Les fonctions
Porté des variable
1 x = 5
2 def f ( ) :
3 x = 7
1 x = 5 4 print("x de f = ",x)
1 x = 5 2 def f ( ) : 5 def g ( ) :
2 def f ( ) : 3 x = x + 3 6 x = 8
3 x = 7 4 f() 7 print("x de g = ",x)
4 f() 5 print(x) 8 f()
5 print("x=",x)
9 g()
6 Résultat : Résultat :
10 print("x global=",x)
7 x = 5 Erreur, x est appelé avant 11 Résultat :
affectation 12 x de f = 7
13 x de g = 8
14 x global = 5
38
Pr. K. Doumi ([Link]@[Link] ) Programmation en langage Python 18 octobre 2022 38 / 111
Les fonctions
Porté des variable
Résultat :
Résultat :
1 x = 5
1 x = 7
39
Pr. K. Doumi ([Link]@[Link] ) Programmation en langage Python 18 octobre 2022 39 / 111
Les fonctions
Porté des variable
Une fonction est dite récursive si elle est définie par une relation de récur-
rence. Autrement-dit, il fait appel à elle-même.
Exemple : La fonction factorielle
Yn (
fact(n) = k 1 si n = 0
fact(n) =
k=1
n ∗ fact(n − 1) sinon
41
Pr. K. Doumi ([Link]@[Link] ) Programmation en langage Python 18 octobre 2022 41 / 111
Les fonctions
La récursivité
42
Pr. K. Doumi ([Link]@[Link] ) Programmation en langage Python 18 octobre 2022 42 / 111
Les fonctions
La récursivité
Attention :
Les fonctions récursives sont très couteuses en terme d’espace mémoire.
Explication :
Chaque appel de fact entraîne une allocation d’espace pour les variables et
les paramètres de la fonction. Or chaque nouvel appel de fact, "à l’intérieur"
de fact, provoque une telle allocation, sans que les emplacements précédents
soient libérés.
43
Pr. K. Doumi ([Link]@[Link] ) Programmation en langage Python 18 octobre 2022 43 / 111
Les fonctions
Exercices
Exercice 1 :
Écrire la fonction définie par :
somme(n) = 1 + 2 + 3 + . . . + n
44
Pr. K. Doumi ([Link]@[Link] ) Programmation en langage Python 18 octobre 2022 44 / 111
Les fonctions
Exercices
Exercice 2 :
Sans utiliser l’opérateur **, Écrire une fonction qui reçoit en arguments un
nombre réel et un entier, et qui renvoi le premier à la puissance du 2éme.
1 En utilisant une fonction itérative.
2 En utilisant une fonction récursive.
45
Pr. K. Doumi ([Link]@[Link] ) Programmation en langage Python 18 octobre 2022 45 / 111
Les fonctions
Exercices
Exercice 3 :
Écrire une fonction qui vérifie si un entier passé en argument est un nombre
premier ou non (return True si oui et False sinon).
46
Pr. K. Doumi ([Link]@[Link] ) Programmation en langage Python 18 octobre 2022 46 / 111
Les fonctions
Exercices
Exercice 4 :
En utilisant la fonction définie dans l’exercice No 3, écrire une deuxième
fonction qui affiche tous les nombres premiers compris entre deux nombres
entiers fournis en argument.
47
Pr. K. Doumi ([Link]@[Link] ) Programmation en langage Python 18 octobre 2022 47 / 111
Les fonctions
Exercices
Exercice 5 :
La suite de Fibonacci est dénie par :
f0 = 0
f1 = 1
fn = f n−1 + fn−2 si n ≥ 2
C’est une suite de valeurs où chaque élément est repéré par un "indice"
précisant sa position au sein de l’ensemble.
Initialisation :
1 L=[]
1 L=[c f o r c i n ’ABCDE’]
2 L=list()
2 L=3*[3,4]
3 L=[1,4,3,7]
3 L=[3,4,5]+[70,80,90]
4 L=[4,’ABC’ ,[4,7,5]]
4 L=[int(input()) f o r i i n range(5)]
5 L=list(range(2,10))
6 L = l i s t ((4 , 5, 6))
7 L=[2*x f o r x i n range(5)]
49
Pr. K. Doumi ([Link]@[Link] ) Programmation en langage Python 18 octobre 2022 49 / 111
Les listes
Accès aux éléments d’une liste
Slicing :
1 - L[2:5] # [30, 40, 50]
2 - L [ 4 : ] # [50,60,70]
1 L=[10,20,30,40,50,60,70] 3 - L [ : 4 ] # [10,20,30,40]
2 - L[0] # 10 4 - L [ : ] # [10,20,30,40,50,60,70]
3 - L[len(L)] # Erreur 5 - L[2:7:2] # [30,50,70]
4 - L[len(L)-1 ] # 70 6 - L [ : : 2 ] # [10, 30, 50, 70]
5 - L[-1 ] # 70 7 - L [ : : - 1 ] # [70,60,50,40,30,20,10]
50
Pr. K. Doumi ([Link]@[Link] ) Programmation en langage Python 18 octobre 2022 50 / 111
Les listes
Deux noms pour un même tableau
51
Pr. K. Doumi ([Link]@[Link] ) Programmation en langage Python 18 octobre 2022 51 / 111
Les listes
Parcours d’une liste
52
Pr. K. Doumi ([Link]@[Link] ) Programmation en langage Python 18 octobre 2022 52 / 111
Les listes
Parcours d’une liste
53
Pr. K. Doumi ([Link]@[Link] ) Programmation en langage Python 18 octobre 2022 53 / 111
Les listes
Modifier une liste passée en paramètres
54
Pr. K. Doumi ([Link]@[Link] ) Programmation en langage Python 18 octobre 2022 54 / 111
Les listes
Les méthodes et opérateurs
NB : Taper dir(list) pour afficher les autres fonctions et help(fonction) pour comprendre.
55
Pr. K. Doumi ([Link]@[Link] ) Programmation en langage Python 18 octobre 2022 55 / 111
Les listes
Exercices
Exercice 1 :
Écrire une fonction smul(m,l) à deux paramètres, un nombre et une liste de
nombres, qui multiple chaque élément de la liste par le nombre et renvoie
une nouvelle liste.
Exemple : smul(2, [1, 2, 3]) renvoie [2, 4, 6].
Exercice 2 :
Écrire une fonction vsom(u,v) qui prend en paramètre deux listes de nombres
de même longueur et qui renvoie une nouvelle liste constituée de la somme
terme à terme de ces deux listes.
Exemple : vsom([1, 2, 3], [4, 5, 6]) renvoie [5, 7, 9].
56
Pr. K. Doumi ([Link]@[Link] ) Programmation en langage Python 18 octobre 2022 56 / 111
Les listes
Exercices
Exercice 3 :
Écrire la fonction binaire(n) permettant de retourner la représentation bi-
naire, sous forme d’une liste, correspondant au nombre n passé en argue-
ments.
Donner une version itérative.
Donner une version récursive.
Exercice 4 :
Sans utiliser la fonction prédéfinie max, définir la fonction maximum(l) per-
mettant de calculer le maximum d’une liste l .
Donner une version itérative.
Donner une version récursive.
57
Pr. K. Doumi ([Link]@[Link] ) Programmation en langage Python 18 octobre 2022 57 / 111
Les listes de listes
Les matrices
On peut choisir de représenter une matrice de dimensions (n, p) par une liste
de taille n, dont les éléments sont des listes de taille p.
Exemple : Soit la matrice suivante :
!
0 1 2
3 4 5
peut être définie en Python par le tableau M ci-après :
1 M = [ [ 0 , 1 , 2 ] , [ 3 , 4 , 5]]
58
Pr. K. Doumi ([Link]@[Link] ) Programmation en langage Python 18 octobre 2022 58 / 111
Les listes de listes
Les matrices
1 - v=[1,2,3]
2 - L=v+v # ou L=2*v ou M=[v f o r i i n range(3)]
3 - L # [1,2,3,1,2,3]
4 - M=[v]+[v]+[v] # ou M=3*[v] ou M=[v f o r i i n range(3)]
5 - M # [[1,2,3],[1,2,3],[1,2,3]]
6 - M[0][0]=44
7 - M # [[44,2,3],[44,2,3],[44,2,3]]
59
Pr. K. Doumi ([Link]@[Link] ) Programmation en langage Python 18 octobre 2022 59 / 111
Les listes de listes
Les matrices
Création :
1 - M= [[1 ,2 ,3 ]+ [1 ,2,3 ]+[1,2 ,3]] # ou M=3*[[1,2,3]] ou M=[[1,2,3]
f o r i i n range(3)]
2 - M # [[1,2,3],[1,2,3],[1,2,3]]
3 - M[0][0]=4
4 - M # [[4,2,3],[1,2,3],[1,2,3]]
60
Pr. K. Doumi ([Link]@[Link] ) Programmation en langage Python 18 octobre 2022 60 / 111
Les listes de listes
Les matrices
Exercice 1 : La trace d’une matrice carrée est la somme des valeurs situées
dans la diagonale. Écrire la fonction trace(A) qui calcule la trace de la matrice
A passée en paramètres.
Exercice 2 :
Une matrice A = (ai,j ) est dite symétrique si ∀i, j ai,j = aj,i
Écrire la fonction symetrie(A) qui retourne True si la matrice carrée A passée
en arguments est une matrice symétrique et False sinon.
61
Pr. K. Doumi ([Link]@[Link] ) Programmation en langage Python 18 octobre 2022 61 / 111
Les listes de listes
Les matrices
Exercice 3 :
1. Écrire une fonction qui calcule et retourne la somme de deux matrices
passées en paramètres.
2. Tester votre fonction sur des exemples de votre choix
Exercice 4 :
1. Écrire une fonction qui calcule et retourne la transposé d’une matrice
passée en paramètres.
2. Tester votre fonction sur une matrice de votre choix
62
Pr. K. Doumi ([Link]@[Link] ) Programmation en langage Python 18 octobre 2022 62 / 111
Les tuples
Définition
Un tuple est une séquence non modifiable de valeurs. C’est une séquence
comme les listes, la seule différence, c’est qu’il n’est pas modifiable.
63
Pr. K. Doumi ([Link]@[Link] ) Programmation en langage Python 18 octobre 2022 63 / 111
Les tuples
Création
On peut créer un tuple par insertion de valeurs entre deux parenthèses sépa-
rées par virgules.
Exemple :
1 >>> tuple1 = (’E1234’, ’ N a c i r i Karim’, 18)
2 >>> tuple2 = ( ’ R a b a t ’ , ’Casablanca’)
3 >>> tuple3 = ( 1 , 2 , 3 , 4 , 6 , 50)
4 >>> tuple4 = (12,) # n’oubliez pas l a virgule après l a valeur.
5 >>> tuple5= ( ) # tuple vide
64
Pr. K. Doumi ([Link]@[Link] ) Programmation en langage Python 18 octobre 2022 64 / 111
Les tuples
Accès
Comme toutes les autres séquences, pour accéder aux valeurs d’un tuple, on
utilise des crochets :
Exemple :
1 >>> T = (’E1234’, ’ N a c i r i Karim’, 18)
2 >>> T[0]
3 E1234
4 >>> T[1]
5 Naciri Karim
6 >>> T[2]
7 18
65
Pr. K. Doumi ([Link]@[Link] ) Programmation en langage Python 18 octobre 2022 65 / 111
Les tuples
Slicing dans les tuples
Comme pour toutes les autres séquences, on peut accéder aux sous-tuples
d’un tuple en utilisant deux indices séparés par " : "
Exemple :
1 >>> T = ( ’AB’ ,56,’Rabat’ ,’Maroc’,14.6,55,’CPGE’,’Informatique’ )
2 >>> T[2:5]
3 ( ’ R a b a t ’ , ’ M a r o c ’ , 14.6)
4 >>> T[3:]
5 ( ’ M a ro c’ , 1 4 . 6 , 55, ’CPGE’ , ’Informatique’)
6 >>> T[:3]
7 ( ’ A B ’ , 56, ’Rabat’)
8 >>> T [ - 1:]
9 (’Informatique’ ,)
10 >>> T[-1:3:-1 ]
66
Pr.11 (’Informatique’
K. Doumi , ’CP G
([Link]@[Link] ) E Programmation
’ , 55, 14.6) en langage Python 18 octobre 2022 66 / 111
Les tuples
Opérations de base
67
Pr. K. Doumi ([Link]@[Link] ) Programmation en langage Python 18 octobre 2022 67 / 111
Les ensembles
Définition
1 >>> E = { 5 , 2 , 3 , 1 }
2 >>> E
3 { 1 , 2 , 3 , 5}
4 >>> {x*x f o r x i n range(20) i f x % 3 == 0}
5 >>> E
6 { 0 , 9 , 36, 81, 144, 225, 324}
7 >>> e t ( ’ f a b f c d ef g ’ )
8 { ’ a ’ , ’ b ’ , ’ c ’ , ’ d ’ , ’ e ’ , ’ f ’ , ’g’}
9 >>> s e t ( [ 5 , 2 , 5 , 6 , 2 ] )
10 { 2 , 5 , 6}
Question : Afficher toutes les méthodes des ensembles ainsi que leurs
description tout en essayant de comprendre comment fonctionnent tout en
les manipulant avec des exemples de votre choix.
71
Pr. K. Doumi ([Link]@[Link] ) Programmation en langage Python 18 octobre 2022 71 / 111
Les dictionnaires
Définition
72
Pr. K. Doumi ([Link]@[Link] ) Programmation en langage Python 18 octobre 2022 72 / 111
Les dictionnaires
Création
73
Pr. K. Doumi ([Link]@[Link] ) Programmation en langage Python 18 octobre 2022 73 / 111
Les dictionnaires
Accès
Comme toutes les autres séquences pour accéder aux valeurs d’un diction-
naire, on utilise les crochets sauf qu’au lieu d’un indice, on utilise une clé :
Exemple :
NB : Une Erreur KeyError est générée si on fourni une clé qui n’existe pas
dans le dictionnaire
74
Pr. K. Doumi ([Link]@[Link] ) Programmation en langage Python 18 octobre 2022 74 / 111
Les dictionnaires
Les dictionnaires sont modifiables (mutables)
75
Pr. K. Doumi ([Link]@[Link] ) Programmation en langage Python 18 octobre 2022 75 / 111
Les dictionnaires
Les dictionnaires sont modifiables (mutables)
Ajout de valeurs :
1 >>> etudiant = { ’ C N E ’ : ’E1234’, ’Nom’: ’ N a c i r i Karim’,
’ A g e ’ : 18}
2 >>> e t u d i a n t [ ’ V i l l e ’ ] = ’Rabat’
76
Pr. K. Doumi ([Link]@[Link] ) Programmation en langage Python 18 octobre 2022 76 / 111
Les dictionnaires
Les dictionnaires sont modifiables (mutables)
Modification de valeurs :
1 >>> etudiant = { ’ C N E ’ : ’E1234’, ’Nom’: ’ N a c i r i Karim’,
’ A g e ’ : 18}
2 >>> etudiant[’Age’] = 22
77
Pr. K. Doumi ([Link]@[Link] ) Programmation en langage Python 18 octobre 2022 77 / 111
Les dictionnaires
Les dictionnaires sont modifiables (mutables)
Suppression de valeurs :
1 >>> etudiant = { ’ C N E ’ : ’E1234’, ’Nom’: ’ N a c i r i Karim’,
’ A g e ’ : 18}
2 >>> del e t u d i ant [ ’ag e’ ] # supprimer l a paire de c l e age
3 >>> [Link]() # vider l e dictionnaire
4 >>> del etudiant # supprimer l e dictionnaire tout entier
78
Pr. K. Doumi ([Link]@[Link] ) Programmation en langage Python 18 octobre 2022 78 / 111
Les dictionnaires
Opérations de bases sur les dictionnaires
Exemple :
1 >>> etudiant = { ’ C N E ’ : ’E1234’, ’Nom’: ’ N a c i r i Karim’, ’ A g e ’ : 18}
2 >>> len(etudiant) # Nombre d’éléments d’un dictionnaire
3 3
4 >>> ’CNE’ i n etudiant # Teste d’appartenance d’une clé
5 True
6 >>> f o r i i n etudiant : # Parcourir l e s c l é s du dictionnaire
7 p r i n t (i)
8 CNE Nom Age
9 >>> f o r i i n etudiant : # Parcourir l e s valeurs du dictionnaire
10 print(etudiant[i])
11 E1234 Naciri Karim 18
79
Pr. K. Doumi ([Link]@[Link] ) Programmation en langage Python 18 octobre 2022 79 / 111
Les dictionnaires
Manipulation des dictionnaires (méthodes)
Expression Description
[Link]() Vide le dictionnaire etudiant
[Link]() Retourne une copie du dictionnaire etudiant
[Link](keys, va- Crée et retourne un dictionnaire à partir des
lues) listes keys et values
80
Pr. K. Doumi ([Link]@[Link] ) Programmation en langage Python 18 octobre 2022 80 / 111
Les dictionnaires
Manipulation des dictionnaires (méthodes)
Expression Description
Retourne la valeur de la clé key si ça existe
[Link](key, default) dans le dictionnaire, si non la fonction re-
tourne la valeur default
[Link]() Retourne la séquence de paires (clé, valeur)
[Link]() Retourne la liste des clés du dictionnaire
Retourne la liste de valeurs stockées dans le
[Link]()
dictionnaire
81
Pr. K. Doumi ([Link]@[Link] ) Programmation en langage Python 18 octobre 2022 81 / 111
Les dictionnaires
Exercice
82
Pr. K. Doumi ([Link]@[Link] ) Programmation en langage Python 18 octobre 2022 82 / 111
Les chaines de caractères
Définition
Une chaîne de caractères est une suite quelconque de caractères délimités soit
par des apostrophes (simple quote), soit par des guillemets (double quote)
ou par triples guillemets ou de triples apostrophes dans le cas où la chaîne
de caractères est sur plusieurs lignes.
83
Pr. K. Doumi ([Link]@[Link] ) Programmation en langage Python 18 octobre 2022 83 / 111
Les chaines de caractères
Exemple :
1 ch1 = " " # chaine vide
2 ch2 = ’ J e suis en cla sse MPSI3’
3 ch3 = " J ’ a i une bonne note en informatique"
4 ch4 = ’"Python" est langage de programmation’
5 ch5 = " " " Trois principales types de séquences existent en python:
6 - Les l i s t e s ,
7 - Les tuples,
8 - Les chaines """
84
Pr. K. Doumi ([Link]@[Link] ) Programmation en langage Python 18 octobre 2022 84 / 111
Les chaines de caractères
Exemple
Remarques :
Les chaînes de caractères ont beaucoup de points communs avec les listes,
à savoir : la longueur avec len, l’accès aux éléments, la concaténation, le
slicing, le parcours... etc.
1 >>> s =’bonjour’
2 >>> len(s)
3 7 # i l y a bien 7 caractères dans l a chaîne s
4 >>> s[1]
5 ’ o ’ # comme l e s l i s t e s , l e s indices des chaînes commencent àzéro
6 >>> s + ’ UM6P’# remarquer l’espace avant UM6P
7 ’bonjour UM6P’
8 >>> s[1:4] # sous chaîne situé entre l e caractère 1 e t 4 (exclu)
9 onj
85
Pr. K. Doumi ([Link]@[Link] ) Programmation en langage Python 18 octobre 2022 85 / 111
Les chaines de caractères
Exemple
Une différence importante avec les listes : c’est que les chaînes de caractères
sont non modifiables.
1 >>> ch=’BONJOUR’
2 >>> ch[0]=’D’ # tentation de modifier ’ B ’ par ’ D ’
3 TypeError: ’ s t r ’ object does not support item assignment
86
Pr. K. Doumi ([Link]@[Link] ) Programmation en langage Python 18 octobre 2022 86 / 111
Les chaines de caractères
Les caractères spéciaux
87
Pr. K. Doumi ([Link]@[Link] ) Programmation en langage Python 18 octobre 2022 87 / 111
Les chaines de caractères
Codage des chaînes de caractères
88
Pr. K. Doumi ([Link]@[Link] ) Programmation en langage Python 18 octobre 2022 88 / 111
Les chaines de caractères
Codage des chaînes de caractères
La fonction ord
La fonction ord («ordinal») de Python permet d’obtenir le code correspon-
dant à un caractère.
Exemple :
1 >>> ord(’A’)
2 65
3 >>> o r d ( ’a’)
4 97
5 >>> ord(’#’)
6 35
89
Pr. K. Doumi ([Link]@[Link] ) Programmation en langage Python 18 octobre 2022 89 / 111
Les chaines de caractères
Codage des chaînes de caractères
La fonction chr
Inversement, on peut récupérer le caractère correspondant à un code avec la
fonction chr.
Exemple :
1 >>> chr(65)
2 A
3 >>> chr(97)
4 a
5 >>> chr(35)
6 #
90
Pr. K. Doumi ([Link]@[Link] ) Programmation en langage Python 18 octobre 2022 90 / 111
Les chaines de caractères
Les méthodes
91
Pr. K. Doumi ([Link]@[Link] ) Programmation en langage Python 18 octobre 2022 91 / 111
Les chaines de caractères
Les méthodes
92
Pr. K. Doumi ([Link]@[Link] ) Programmation en langage Python 18 octobre 2022 92 / 111
Les chaines de caractères
Les méthodes
93
Pr. K. Doumi ([Link]@[Link] ) Programmation en langage Python 18 octobre 2022 93 / 111
Les chaines de caractères
Les méthodes
La méthode split est aussi une méthode prédéfinie en python. Elle permet
de transformes une chaine de caractères en une liste.
Exemple :
1 >>> s="Je suis en prepas"
2 >>> s . s p l i t ( )
3 [’Je’,’suis’,’en’,’prepas’]
4 >>> s="Je:suis:en:prepas"
5 >>> s . s p l i t ( ’ : ’ )
6 [’Je’,’suis’,’en’,’prepas’]
94
Pr. K. Doumi ([Link]@[Link] ) Programmation en langage Python 18 octobre 2022 94 / 111
Les chaines de caractères
Les méthodes
95
Pr. K. Doumi ([Link]@[Link] ) Programmation en langage Python 18 octobre 2022 95 / 111
Les chaines de caractères
Exercices
Exercice 1 :
Une chaîne de caractères est dite palindrome si elle se lit de la même façon
dans les deux sens (Exemple : ’laval’, ’ELLE’,’ressasser’).
Définir la fonction palindrome permettant de vérifier si la chaîne passée en
argument est un palindrome (Retourne True si oui et False sinon).
Exemple :
1 >>> s = ’ELLE’
2 >>> palindrome(s)
3 True
4 >>> s = " J ’ a i 20 ANS"
5 >>> palindrome(s)
6 False
96
Pr. K. Doumi ([Link]@[Link] ) Programmation en langage Python 18 octobre 2022 96 / 111
Les chaines de caractères
Exercice
Exercice 2 :
En utilisant la fonctions chr, écrire une fonction ascii recevant deux entiers
en paramètres et retournant la table des caractères dont leurs codes ascii est
entre les deux entiers passés en paramètres.
Exemple :
1 >>> ascii(66,70)
2 B 66
3 C 67
4 D 68
5 E 69
6 F 70
97
Pr. K. Doumi ([Link]@[Link] ) Programmation en langage Python 18 octobre 2022 97 / 111
Les fichiers
Définition
Un fichier texte est un fichier qui contient des caractères et des espaces
organisés en lignes successives. Ces lignes étant séparées les unes des autres
par un caractère spécial non imprimable appelé «marqueur de fin de ligne».
98
Pr. K. Doumi ([Link]@[Link] ) Programmation en langage Python 18 octobre 2022 98 / 111
Les fichiers
Opérations sur les fichiers
99
Pr. K. Doumi ([Link]@[Link] ) Programmation en langage Python 18 octobre 2022 99 / 111
Les fichiers
Ouverture d’un fichier : la fonction open.
Syntaxe :
1 fichier=open(chemin, mode)
100
Pr. K. Doumi ([Link]@[Link] ) Programmation en langage Python 18 octobre 2022 100 / 111
Les fichiers
Ecriture dans fichier : la méthode write.
Remarque :
Lafonction write reçoit exactement un unique argument qui doit
obligatoirement être une chaine de caractère.
La fonction write ne peut être appelée que si le fichier est ouvert en
mode ‘w’ ou ‘a’
101
Pr. K. Doumi ([Link]@[Link] ) Programmation en langage Python 18 octobre 2022 101 / 111
Les fichiers
Lecture séquentielle d’un fichier : la méthode read
1 [Link]()
103
Pr. K. Doumi ([Link]@[Link] ) Programmation en langage Python 18 octobre 2022 103 / 111
Les fichiers
Méthodes supplémentaires
Remarque :
Une fois arrivé à la fin du fichier, la méthode readline renvoie une chaine
vide, tandis que la méthode readlines renvoie une liste vide.
104
Pr. K. Doumi ([Link]@[Link] ) Programmation en langage Python 18 octobre 2022 104 / 111
Les fichiers
Exercices
Exercice 1 :
Écrire la fonction copier qui reçoit en paramètres les noms de deux fichiers,
dont le premier est supposé existant et le deuxième est à créer en y copiant
le contenu du premier tout en remplaçant les espaces par le caractère "*".
105
Pr. K. Doumi ([Link]@[Link] ) Programmation en langage Python 18 octobre 2022 105 / 111
Les fichiers
Exercices
Exercice 2 :
Écrire une version modifiée copier_2 de la fonction copier de l’exercice
précèdent permettant de copier le contenu du premier dans le deuxième, en
omettant, toutes les lignes qui commencent par le caractère " # " .
106
Pr. K. Doumi ([Link]@[Link] ) Programmation en langage Python 18 octobre 2022 106 / 111
Les fichiers
Exercices
Exercice 3 :
Écrire la fonction permettant de compter le nombre de caractères d’un fichier
tout en omettant les espaces et les retours à la ligne (\n).
107
Pr. K. Doumi ([Link]@[Link] ) Programmation en langage Python 18 octobre 2022 107 / 111
Les fichiers
Exercices
Exercice 4 :
Sans utiliser la méthode upper (n’utiliser que les codes ASCII), écrire la
fonction toMaj qui reçoit en paramètres les noms de deux fichiers, dont
le premier est supposé existant et le deuxième est à créer en y copiant le
contenu du premier tout en le convertissant en majuscule.
108
Pr. K. Doumi ([Link]@[Link] ) Programmation en langage Python 18 octobre 2022 108 / 111
POO
Exercices
8
...
# Conversion en chaine de caractères
9
def str (self):
10
...
11
109
Pr. K. Doumi ([Link]@[Link] ) Programmation en langage Python 18 octobre 2022 109 / 111
POO
Exercices
111
Pr. K. Doumi ([Link]@[Link] ) Programmation en langage Python 18 octobre 2022 111 / 111
Connexion aux bases de données
(Mysql)
112
Pr. K. Doumi ([Link]@[Link] ) Programmation en langage Python 18 octobre 2022 112 / 111
Connexion aux bases de données
(Mysql)
113
Pr. K. Doumi ([Link]@[Link] ) Programmation en langage Python 18 octobre 2022 113 / 111
Connexion aux bases de données
(Mysql)
114
Pr. K. Doumi ([Link]@[Link] ) Programmation en langage Python 18 octobre 2022 114 / 111
Connexion aux bases de données:
Fonctions Clés
115
Pr. K. Doumi ([Link]@[Link] ) Programmation en langage Python 18 octobre 2022 115 / 111
Connexion aux bases de données:
Fonctions Clés
116
Pr. K. Doumi ([Link]@[Link] ) Programmation en langage Python 18 octobre 2022 116 / 111
Connexion aux bases de données:
Exercice 1
Vous devez créer un script Python pour interagir avec une base de
données MySQL. Suivez les étapes ci-dessous :
1. Établissez une connexion à une base de données MySQL locale.
2. Créez une table appelée "clients" avec les colonnes suivantes :
- id (entier, clé primaire, auto-incrémenté)
- nom (chaîne de caractères, longueur maximale de 255)
- age (entier)
3. Insérez un enregistrement dans la table "clients" avec des données
de votre choix.
4. Affichez tous les enregistrements de la table "clients".
5. Supprimez l'enregistrement avec le nom « XXX" de la table "clients".
6. Assurez-vous de fermer la connexion à la base de données après
avoir terminé toutes les opérations.
117
Pr. K. Doumi ([Link]@[Link] ) Programmation en langage Python 18 octobre 2022 117 / 111
Connexion aux bases de données:
Exercice 2
Vous devez écrire un script Python pour gérer une base de données de
stock pour un magasin. Voici les étapes :
1. Connectez-vous à une base de données MySQL locale.
2. Créez une table "stock" avec les colonnes suivantes :
- id (entier, clé primaire, auto-incrémenté)
- nom du produit (chaîne de caractères, longueur maximale de 255)
- prix unitaire (décimal, 10 chiffres au total, 2 chiffres après la virgule)
- quantité en stock (entier)
3. Insérez cinq enregistrements de produits avec des noms, des prix et
des quantités en stock variés.
4. Affichez tous les produits dont le prix est supérieur à 50.
5. Mettez à jour la quantité en stock pour un produit de votre choix.
6. Supprimez un produit de votre choix de la base de données.
7. Fermez la connexion à la base de données.
118
Pr. K. Doumi ([Link]@[Link] ) Programmation en langage Python 18 octobre 2022 118 / 111
Connexion aux bases de données:
Exercice 3
119
Pr. K. Doumi ([Link]@[Link] ) Programmation en langage Python 18 octobre 2022 119 / 111
Connexion aux bases de données:
Exercice 4
1. Écrire une fonction pour établir une connexion à une base de données
MySQL en prenant en compte les informations d'authentification telles que
l'hôte, la base de données, le nom d'utilisateur et le mot de passe.
2. Écrire une fonction pour créer une table dans la base de données MySQL en
prenant en paramètre la connexion établie et le nom de la table. Les champs
sont : ID, Nom, prenom, Tel, DDN, Adresse.
3. Écrire une fonction pour insérer des données dans une table spécifique en
prenant la connexion à la base de données, le nom de la table, ainsi que les
données à insérer en tant que paramètres.
4. Écrire une fonction pour afficher les données d'une table spécifiée en
prenant la connexion à la base de données et le nom de la table en
paramètres.
5. Écrire une fonction pour supprimer des données d'une table spécifique en
utilisant une condition fournie en tant que paramètre.
6. Écrire une fonction pour mettre à jour des données dans une table spécifiée
en utilisant une condition fournie ainsi que les nouvelles valeurs à mettre à jour
en tant que paramètres.
120
Pr. K. Doumi ([Link]@[Link] ) Programmation en langage Python 18 octobre 2022 120 / 111
Connexion aux bases de données:
Dictionnaire