NOTICE

All files on this site have been moved to http://www.wikilivres.ca. All future contributions to Wikilivres should be made there.

This site will be closed on June 6th, 2012.

Index:Swinnen - Apprendre Python, 2010.djvu

Free texts and images.

Jump to: navigation, search
Cours python3.jpg


Pages

Titre:  I  II  III  IV

Préface:  V  VI  VII  VIII  IX  X  XI  XII

Remerciements:  XIII

Sommaire:  XV  XVI  XVII  XVIII  XIX  XX  XXI  XXII

  1. 001 002 003 004 005 006 007 008 009
  2. 011 012 013 014 015 016 017 018 019
  3. 021 022 023 024 025 026
  4. 027 028 029 030 031 032 033 034
  5. 037 038 039 040 041 042 043 044 045
  6. 049 050 051 052 053 054 055 056 057
  7. 061 062 063 064 065 066 067 068 069 070 071 072 073 074 075 076 077 078
  8. 081 082 083 084 085 086 087 088 089 090 091 092 093 094 095 096 097 098 099 100 101 102 103 104 105 106 107 108
  9. 111 112 113 114 115 116 117 118 119 120 121 122
  10. 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167
  11. 169 170 171 172 173 174 175 176 177
  12. 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194
  13. 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220
  14. 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264
  15. 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285
  16. 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310
  17. 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338
  18. 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368
  19. 371 372
  20. 373
  21. 437

Index: 443 444 445

</div>


</noinclude>




Table des matières



Boîtes noires et pensée magique   1
Magie blanche, magie noire   3
La démarche du programmeur   4
Langage machine, langage de programmation   5
Édition du code source - Interprétation   6
Mise au point d’un programme - Recherche des erreurs (debug)   7
Erreurs de syntaxe   7
Erreurs sémantiques   8
Erreurs à l’exécution   8
Recherche des erreurs et expérimentation   9


Calculer avec Python   11
Données et variables   13
Noms de variables et mots réservés   14
Affectation (ou assignation)   14
Afficher la valeur d’une variable   16
Typage des variables   17
Affectations multiples   17
Opérateurs et expressions   18
Priorité des opérations   19
Composition   19


Séquence d’instructions   21
Sélection ou exécution conditionnelle   22
Opérateurs de comparaison   23
Instructions composées – blocs d’instructions   24
Instructions imbriquées   24
Quelques règles de syntaxe Python   25
Les limites des instructions et des blocs sont définies par la mise en page   25
Instruction composée : en-tête, double point, bloc d’instructions indenté   25
Les espaces et les commentaires sont normalement ignorés   26


Ré-affectation   27
Répétitions en boucle – l’instruction while   28
Commentaires   29
Remarques   29
Élaboration de tables   30
Construction d’une suite mathématique   30
Premiers scripts, ou comment conserver nos programmes   31
Problèmes éventuels liés aux caractères accentués   34


Les données numériques   37
Le type integer   37
Le type float   39
Les données alphanumériques   41
Le type string   41
Remarques   42
Triple quotes   42
Accès aux caractères individuels d’une chaîne   42
Opérations élémentaires sur les chaînes   43
Les listes (première approche)   45


Affichage:la fonction print()   49
Interaction avec l’utilisateur:la fonction input()   50
Remarque importante   50
Importer un module de fonctions   50
Un peu de détente avec le module turtle   53
Véracité/fausseté d’une expression   54
Révision   56
Contrôle du flux – utilisation d’une liste simple   56
Boucle while – instructions imbriquées   57


Définir une fonction   61
Fonction simple sans paramètres   62
Fonction avec paramètre   64
Utilisation d’une variable comme argument   64
Remarque importante   65
Fonction avec plusieurs paramètres   65
Notes   66
Variables locales, variables globales   66
Vraies fonctions et procédures   68
Notes   69
Utilisation des fonctions dans un script   70
Notes   71
Modules de fonctions   72
Typage des paramètres   77
Valeurs par défaut pour les paramètres   77
Arguments avec étiquettes   78


Interfaces graphiques (GUI)   81
Premiers pas avec tkinter   82
Examinons à présent plus en détail chacune des lignes de commandes exécutées   82
Programmes pilotés par des événements   85
Exemple graphique:tracé de lignes dans un canevas   88
Exemple graphique:deux dessins alternés   91
Exemple graphique : calculatrice minimaliste   94
Exemple graphique : détection et positionnement d’un clic de souris   96
Les classes de widgets tkinter   97
Utilisation de la méthode grid() pour contrôler la disposition des widgets   99
Composition d’instructions pour écrire un code plus compact   102
Modification des propriétés d’un objet - Animation   105
Animation automatique - Récursivité   108


9. Manipuler des fichiers.
Utilité des fichiers   111
Travailler avec des fichiers   113
Noms de fichiers – le répertoire courant   113
Les deux formes d’importation   114
Écriture séquentielle dans un fichier   115
Notes   117
Lecture séquentielle d’un fichier   116
Notes   117
L’instruction break pour sortir d’une boucle   118
Fichiers texte   119
Remarques   120
Enregistrement et restitution de variables diverses   120
Gestion des exceptions : les instructions try – except – else   122


10. Approfondir les structures de données
Le point sur les chaînes de caractères   125
Indiçage, extraction, longueur   125
Extraction de fragments de chaînes   126
Concaténation, répétition   127
Parcours d’une séquence : l’instruction for . in .   128
Appartenance d’un élément à une séquence : l’instruction in utilisée seule   130
Les chaînes sont des séquences non modifiables   130
Les chaînes sont comparables   131
La norme Unicode   131
Séquences d’octets : le type bytes   133
L’encodage Utf-8 . . .   136
Conversion (encodage/décodage) des chaînes   137
Conversion d’une chaîne bytes en chaîne string   137
Conversion d’une chaîne string en chaîne bytes   137
Conversions automatiques lors du traitement des fichiers   138
Cas des scripts Python   139
Accéder à d’autres caractères que ceux du clavier   140
Les chaînes sont des objets   141
Fonctions intégrées   143
Formatage des chaînes de caractères   144
Formatage des chaînes « à l’ancienne »   145
Le point sur les listes   146
Définition d’une liste – accès à ses éléments   146
Les listes sont modifiables   147
Les listes sont des objets   148
Techniques de slicing avancé pour modifier une liste   149
Insertion d’un ou plusieurs éléments n’importe où dans une liste   149
Suppression / remplacement d’éléments   150
Création d’une liste de nombres à l’aide de la fonction range()   150
Parcours d’une liste à l’aide de for, range() et len()   151
Une conséquence importante du typage dynamique   152
Opérations sur les listes   152
Test d’appartenance   152
Copie d’une liste   153
Petite remarque concernant la syntaxe   154
Nombres aléatoires – histogrammes   155
Tirage au hasard de nombres entiers   157
Les tuples   158
Opérations sur les tuples   159
Les dictionnaires   160
Création d’un dictionnaire   160
Opérations sur les dictionnaires   161
Test d’appartenance   161
Les dictionnaires sont des objets   162
Parcours d’un dictionnaire   163
Les clés ne sont pas nécessairement des chaînes de caractères   164
Les dictionnaires ne sont pas des séquences   164
Construction d’un histogramme à l’aide d’un dictionnaire   166
Contrôle du flux d’exécution à l’aide d’un dictionnaire   167


11. Classes, objets, attributs
Utilité des classes   169
Définition d’une classe élémentaire   170
Attributs (ou variables) d’instance   172
Passage d’objets comme arguments dans l’appel d’une fonction   173
Similitude et unicité   174
Objets composés d’objets   175
Objets comme valeurs de retour d’une fonction   176
Modification des objets   177


12. Classes, méthodes, héritage.
Définition d’une méthode   179
Définition concrète d’une méthode dans un script   180
Essai de la méthode, dans une instance quelconque   181
La méthode constructeur   182
Exemple   182
Espaces de noms des classes et instances   186
Héritage   187
Héritage et polymorphisme   189
Commentaires   191
Modules contenant des bibliothèques de classes   194


13. Classes et interfaces graphiques.
Code des couleurs : un petit projet bien encapsulé   199
Cahier des charges de notre programme   200
Mise en œuvre concrète.   200
Commentaires   201
Petit train : héritage, échange d’informations entre classes   203
Cahier des charges   204
Implémentation.   204
Commentaires   205
OscilloGraphe : un widget personnalisé   207
Expérimentation   209
Cahier des charges   210
Implémentation   210
Curseurs : un widget composite   212
Présentation du widget Scale   212
Construction d’un panneau de contrôle à trois curseurs   213
Commentaires   215
Propagation des événements   217
Intégration de widgets composites dans une application synthèse   218
Commentaires   220


14. Et pour quelques widgets de plus.
Les boutons radio   227
Commentaires   228
Utilisation de cadres pour la composition d’une fenêtre   229
Commentaires   230
Comment déplacer des dessins à l’aide de la souris   231
Commentaires   233
Widgets complémentaires, widgets composites   235
Combo box simplifié   235
Commentaires   237
Le widget Text assorti d’un ascenseur   239
Gestion du texte affiché   239
Commentaires   241
Le widget Canvas assorti d’un ascenseur   242
Commentaires   244
Application à fenêtres multiples – paramétrage implicite   246
Commentaires   248
Barres d’outils – expressions lambda   249
Métaprogrammation – expressions lambda   251
Passage d’une fonction (ou d’une méthode) comme argument   252
Fenêtres avec menus   253
Cahier des charges de l’exercice   254
Première ébauche du programme   254
Analyse du script   255
Ajout de la rubrique Musiciens   257
Analyse du script   258
Ajout de la rubrique Peintres   258
Analyse du script   259
Ajout de la rubrique Options   260
Menu avec cases à cocher   261
Menu avec choix exclusifs   262
Contrôle du flux d’exécution à l’aide d’une liste   263
Pré-sélection d’une rubrique   264


15. Analyse de programmes concrets.
Jeu des bombardes   265
Prototypage d’une classe Canon   268
Commentaires   270
Ajout de méthodes au prototype   271
Commentaires   272
Développement de l’application   274
Commentaires   278
Développements complémentaires   279
Commentaires   283
Jeu de Ping   284
Principe   284
Programmation   285
Cahier des charges du logiciel à développer   285


16. Gestion d’une base de données
Les bases de données   291
SGBDR - Le modèle client/serveur   292
Le langage SQL   293
SQLite   294
Création de la base de données. Objets « connexion » et « curseur ».   294
Connexion à une base de données existante   296
Recherches sélectives dans une base de données   298
La requête select   300
Ébauche d’un logiciel client pour PostgreSQL   301
Décrire la base de données dans un dictionnaire d’application   302
Définir une classe d’objets-interfaces   305
Commentaires   307
Construire un générateur de formulaires   308
Commentaires   309
Le corps de l’application   309
Commentaires   310


17. Applications web
Pages web interactives   313
Un serveur web en pur Python !   315
Première ébauche : mise en ligne d’une page web minimaliste   316
Ajout d’une deuxième page   318
Présentation et traitement d’un formulaire   319
Analyse de la communication et des erreurs   320
Structuration d’un site à pages multiples   321
Prise en charge des sessions   323
Réalisation concrète d’un site web interactif   326
Le script   328
Les « patrons » HTML   335
Autres développements   338


18. Communications à travers un réseau & Multithreading.
Les sockets   339
Construction d’un serveur rudimentaire   340
Commentaires   341
Construction d’un client rudimentaire   342
Commentaires   343
Gestion de plusieurs tâches en parallèle à l’aide de threads   343
Client réseau gérant l’émission et la réception simultanées   345
Commentaires   346
Serveur réseau gérant les connexions de plusieurs clients en parallèle   347
Commentaires   348
Jeu des bombardes, version réseau   349
Programme serveur : vue d’ensemble   350
Protocole de communication   351
Remarques complémentaires   353
Programme serveur : première partie   353
Synchronisation de threads concurrents à l’aide de verrous (thread locks)   356
Utilisation   357
Programme serveur : suite et fin   357
Commentaires   360
Programme client   360
Commentaires   363
Conclusions et perspectives :   364
Utilisation de threads pour optimiser les animations   364
Temporisation des animations à l’aide de after()   365
Temporisation des animations à l’aide de time.sleep()   366
Exemple concret   366
Commentaires   368


19. Installation de Python
Sous Windows   371
Sous Linux   371
Sous Mac OS   371
Installation de Cherrypy   371
Installation de pg8000   372


20. Solutions des exercices
 
 373


21. Licence associée à cet ouvrage
 
 437


22. Index
 
 443
Personal tools