See discussions, stats, and author profiles for this publication at: https://www.researchgate.
net/publication/355169418
Programmation Python
Book · October 2021
CITATIONS READS
0 366
2 authors, including:
Hakim Djelouah
University of Science and Technology Houari Boumediene
75 PUBLICATIONS 324 CITATIONS
SEE PROFILE
Some of the authors of this publication are also working on these related projects:
interaction of acoustic beam with a periodic rough surface View project
Ultrasonic characterization of multilayer substrates View project
All content following this page was uploaded by Hakim Djelouah on 10 October 2021.
The user has requested enhancement of the downloaded file.
Table des matières
Avant Propos i
1 Prise en Main 7
1 Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.1 Installation simplifiée avec Anaconda . . . . . . . . 9
1.2 Installation manuelle . . . . . . . . . . . . . . . . . . 10
1.3 Lancer Python . . . . . . . . . . . . . . . . . . . . 11
2 Utiliser Python . . . . . . . . . . . . . . . . . . . . . . . . 12
2.1 Exemples en mode interactif avec IPython . . . . . . . 12
2.2 Exécuter un programme dans un terminal . . . . . . . 14
3 Spyder et Jupyter . . . . . . . . . . . . . . . . . . . . . . . . 14
3.1 Exemple avec Spyder . . . . . . . . . . . . . . . . . . 15
3.2 Exemple avec Jupyter . . . . . . . . . . . . . . . . . . 19
4 Comment utiliser ce livre . . . . . . . . . . . . . . . . . . . . 20
2 Types de données 23
1 Les types numériques . . . . . . . . . . . . . . . . . . . . . . 24
1.1 Le type int . . . . . . . . . . . . . . . . . . . . . . 24
1.2 Le type float . . . . . . . . . . . . . . . . . . . . 25
1.3 Le type complex . . . . . . . . . . . . . . . . . . . . 26
1.4 Le type boolean . . . . . . . . . . . . . . . . . . . . . 27
1.5 Transtypage . . . . . . . . . . . . . . . . . . . . . . . 27
1.6 Opérateurs arithmétiques . . . . . . . . . . . . . . . . 29
2 Chaînes de caractères . . . . . . . . . . . . . . . . . . . . . . 31
2.1 Création . . . . . . . . . . . . . . . . . . . . . . . . . 31
2.2 Fonctions de chaînes . . . . . . . . . . . . . . . . . . 31
2.3 Méthodes . . . . . . . . . . . . . . . . . . . . . . . . 31
1
2 Programmation Python
2.4 Opérations sur les chaines . . . . . . . . . . . . . . . 34
Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
Correction des exercices . . . . . . . . . . . . . . . . . . . . . . . 42
3 Conteneurs 45
1 Listes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
1.1 Création d’une liste . . . . . . . . . . . . . . . . . . . 47
1.2 Accès aux éléments d’une liste . . . . . . . . . . . . . 47
1.3 Fonctions de listes . . . . . . . . . . . . . . . . . . . 49
1.4 Méthodes . . . . . . . . . . . . . . . . . . . . . . . . 50
1.5 Concaténation et répétition . . . . . . . . . . . . . . . 52
2 Tuples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
2.1 Créer un tuple . . . . . . . . . . . . . . . . . . . . . . 53
2.2 Accès aux éléments d’un tuple . . . . . . . . . . . . . 54
3 Dictionnaires . . . . . . . . . . . . . . . . . . . . . . . . . . 55
3.1 Les éléments des dictionnaires . . . . . . . . . . . . . 56
3.2 Méthodes . . . . . . . . . . . . . . . . . . . . . . . . 58
4 Set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
Correction des exercices . . . . . . . . . . . . . . . . . . . . . . . 67
4 Instructions de contrôle 71
1 Tests logiques . . . . . . . . . . . . . . . . . . . . . . . . . . 72
2 L’instruction if . . . . . . . . . . . . . . . . . . . . . . . . . 72
2.1 elif . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
2.2 else . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
2.3 inline if . . . . . . . . . . . . . . . . . . . . . . . . . 74
2.4 Opérateurs logiques and et or . . . . . . . . . . . . . 74
2.5 if imbriqué . . . . . . . . . . . . . . . . . . . . . . . 75
2.6 pass . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
3 La boucle while . . . . . . . . . . . . . . . . . . . . . . . . 76
3.1 L’instruction break . . . . . . . . . . . . . . . . . . 76
3.2 L’instruction continue . . . . . . . . . . . . . . . . 77
3.3 L’instruction else . . . . . . . . . . . . . . . . . . . 77
4 La boucle for . . . . . . . . . . . . . . . . . . . . . . . . . 78
4.1 for . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
4.2 break . . . . . . . . . . . . . . . . . . . . . . . . . 78
3
4.3 continue . . . . . . . . . . . . . . . . . . . . . . . 79
4.4 range . . . . . . . . . . . . . . . . . . . . . . . . . 79
4.5 else dans une boucle for . . . . . . . . . . . . . . 80
4.6 Boucles for imbriquées . . . . . . . . . . . . . . . . 80
4.7 Application aux listes . . . . . . . . . . . . . . . . . . 81
Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
Correction des exercices . . . . . . . . . . . . . . . . . . . . . . . 87
5 Fonctions 95
1 Fonctionnement . . . . . . . . . . . . . . . . . . . . . . . . . 96
2 Fonctions intégrées . . . . . . . . . . . . . . . . . . . . . . . 96
3 Fonctions définies par l’utilisateur . . . . . . . . . . . . . . . 98
3.1 Paramètres d’une fonction . . . . . . . . . . . . . . . 99
3.2 Valeur de retour d’une fonction . . . . . . . . . . . . 100
3.3 Le mot-clé pass . . . . . . . . . . . . . . . . . . . . . 103
4 Docstrings . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
5 Arguments d’une fonction en Python . . . . . . . . . . . . 106
5.1 Arguments de position . . . . . . . . . . . . . . . . . 106
5.2 Arguments avec étiquettes . . . . . . . . . . . . . . . 107
5.3 Arguments par défaut . . . . . . . . . . . . . . . . . . 108
5.4 Arguments de longueur variable . . . . . . . . . . . . 109
6 Fonction récursive . . . . . . . . . . . . . . . . . . . . . . . . 110
7 Portée et durée de vie des variables . . . . . . . . . . . . . . . 111
7.1 Mot-clé global . . . . . . . . . . . . . . . . . . . . 114
7.2 Mot clé nonlocal . . . . . . . . . . . . . . . . . . 115
8 Fonction Python Anonyme / Lambda . . . . . . . . . . . . . . 115
9 Fonction map() . . . . . . . . . . . . . . . . . . . . . . . . 117
10 Fonction filter() . . . . . . . . . . . . . . . . . . . . . . 117
Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
Correction des exercices . . . . . . . . . . . . . . . . . . . . . . . 123
6 Fonctions et Modules 133
1 Import . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
2 Aide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
3 Le module math . . . . . . . . . . . . . . . . . . . . . . . . 137
4 Le module cmath . . . . . . . . . . . . . . . . . . . . . . . 139
5 Le module random . . . . . . . . . . . . . . . . . . . . . . . 140
4 Programmation Python
6 Le module statistics . . . . . . . . . . . . . . . . . . . 143
7 Le module os . . . . . . . . . . . . . . . . . . . . . . . . . . 145
8 Le module glob . . . . . . . . . . . . . . . . . . . . . . . . 145
9 Importer un module depuis un package . . . . . . . . . . . . . 146
10 Comment écrire un module . . . . . . . . . . . . . . . . . . 146
Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
Correction des exercices . . . . . . . . . . . . . . . . . . . . . . . 149
7 Calcul Scientifique 153
1 Principaux packages . . . . . . . . . . . . . . . . . . . . . . 154
2 Numpy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
2.1 Type ndarray . . . . . . . . . . . . . . . . . . . . . 155
2.2 Création de tableaux . . . . . . . . . . . . . . . . . . 156
2.3 Tableaux particuliers . . . . . . . . . . . . . . . . . . 158
2.4 Vérification du type de données d’un tableau . . . . . 159
2.5 Dimension d’un tableau . . . . . . . . . . . . . . . . 159
2.6 Obtenir la forme d’un tableau . . . . . . . . . . . . . 159
2.7 Accès aux éléments d’un tableau . . . . . . . . . . . . 160
2.8 Extraction d’une partie du tableau . . . . . . . . . . . 160
2.9 Remodelage des tableaux . . . . . . . . . . . . . . . . 162
2.10 Action d’une fonction mathématique sur un tableau . . 162
2.11 Polynômes . . . . . . . . . . . . . . . . . . . . . . . 163
2.12 Opérations avec les tableaux et les matrices . . . . . . 164
2.13 Algèbre linéaire . . . . . . . . . . . . . . . . . . . . . 166
3 Scipy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
3.1 Fonctions spéciales avec scipy.special . . . . . 169
3.2 scipy.integrate . . . . . . . . . . . . . . . . . 170
3.3 Optimisation . . . . . . . . . . . . . . . . . . . . . . 172
Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174
Correction des exercices . . . . . . . . . . . . . . . . . . . . . . . 180
8 Graphisme 189
1 Graphes à deux-dimensions . . . . . . . . . . . . . . . . . . . 190
1.1 Tracé de fonction . . . . . . . . . . . . . . . . . . . . 190
1.2 Superposition de plusieurs fonctions . . . . . . . . . . 193
2 Autres types de graphes . . . . . . . . . . . . . . . . . . . . . 196
2.1 Courbes paramétrées . . . . . . . . . . . . . . . . . . 196
5
2.2 Tracé en coordonnées polaires . . . . . . . . . . . . . 197
2.3 Tracé en échelle semi-logarithmique ou log-log . . . . 198
2.4 Remplissage . . . . . . . . . . . . . . . . . . . . . . 200
2.5 Cas des données discrètes . . . . . . . . . . . . . . . 201
2.6 La commande subplot . . . . . . . . . . . . . . . . 203
3 Graphes 3D . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
3.1 Courbes paramétrées . . . . . . . . . . . . . . . . . . 205
3.2 Contour . . . . . . . . . . . . . . . . . . . . . . . . . 206
3.3 Surfaces . . . . . . . . . . . . . . . . . . . . . . . . . 207
4 Gestion des fenêtres graphiques . . . . . . . . . . . . . . . . . 208
4.1 Ouverture-fermeture . . . . . . . . . . . . . . . . . . 208
4.2 Sauvegarde . . . . . . . . . . . . . . . . . . . . . . . 209
4.3 Sauvegarde et modificationd’une figure . . . . . . . . 209
Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211
Correction des exercices . . . . . . . . . . . . . . . . . . . . . . . 214
9 Calcul symbolique 223
1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
2 Les bases du calcul symbolique . . . . . . . . . . . . . . . . . 224
2.1 Objets symboliques . . . . . . . . . . . . . . . . . . . 225
2.2 Expressions symboliques . . . . . . . . . . . . . . . . 226
3 Calcul symbolique . . . . . . . . . . . . . . . . . . . . . . . 226
3.1 Simplification d’expressions . . . . . . . . . . . . . . 226
3.2 Développement d’expressions . . . . . . . . . . . . . 228
3.3 Factorisation d’expressions . . . . . . . . . . . . . . . 229
3.4 Substitution dans des expressions symboliques . . . . 229
3.5 Affichage . . . . . . . . . . . . . . . . . . . . . . . . 230
3.6 Dérivation . . . . . . . . . . . . . . . . . . . . . . . 231
3.7 Limites . . . . . . . . . . . . . . . . . . . . . . . . . 232
3.8 Integration . . . . . . . . . . . . . . . . . . . . . . . 232
3.9 Sommation symbolique . . . . . . . . . . . . . . . . 234
3.10 Produit symbolique . . . . . . . . . . . . . . . . . . . 234
3.11 Séries de Taylor . . . . . . . . . . . . . . . . . . . . . 235
3.12 Transformations intégrales . . . . . . . . . . . . . . . 235
3.13 Résolution d’équations . . . . . . . . . . . . . . . . . 235
4 Graphes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237
Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238
6 Programmation Python
Correction des exercices . . . . . . . . . . . . . . . . . . . . . . . 240
A Format 243
1 Formatage avec f-strings . . . . . . . . . . . . . . . . . . . . 244
1.1 Prise en main . . . . . . . . . . . . . . . . . . . . . . 244
1.2 Spécification de format . . . . . . . . . . . . . . . . . 244
2 Formatage de chaîne avec l’opérateur % . . . . . . . . . . . . 247
3 Formatage avec la méthode .format . . . . . . . . . . . . . 248
4 Choix de la méthode de formatage . . . . . . . . . . . . . . . 249
B Fichiers 251
1 La gestion des fichiers . . . . . . . . . . . . . . . . . . . . . . 251
2 Syntaxe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253
3 Lecture d’un fichier . . . . . . . . . . . . . . . . . . . . . . . 253
3.1 Lecture de la totalité du fichier . . . . . . . . . . . . . 253
3.2 Lecture partielle d’un fichier . . . . . . . . . . . . . . 254
4 Fermeture de fichiers . . . . . . . . . . . . . . . . . . . . . . 255
5 Écriture de fichiers . . . . . . . . . . . . . . . . . . . . . . . 256
5.1 Écrire dans un fichier existant . . . . . . . . . . . . . 256
5.2 Créer un nouveau fichier . . . . . . . . . . . . . . . . 257
6 Contexte with . . . . . . . . . . . . . . . . . . . . . . . . . 258
7 Supprimer un fichier . . . . . . . . . . . . . . . . . . . . . . 259
7.1 Supprimer un fichier . . . . . . . . . . . . . . . . . . 259
7.2 Vérifier si le fichier existe . . . . . . . . . . . . . . . 259
7.3 Supprimer un répertoire . . . . . . . . . . . . . . . . 259
Bibliographie 261
View publication stats