Apprendre à programmer avec Python 3 - LMRL

Apprendre ? programmer avec Python 3

Par G?rard Swinnen

Derni?re mise ? jour : 26 juillet 2015

Un livre incontournable de 435 pages pour acqu?rir l'exigeante discipline qu'est l'art de la programmation !

Original et stimulant, cet ouvrage aborde au travers d'exemples attrayants et concrets tous les fondamentaux de la programmation. L'auteur a choisi Python, langage moderne et ?l?gant, aussi performant pour le d?veloppement d'applications web complexes que pour la r?alisation de scripts syst?me ou l'analyse de fichiers XML. Un support de cours r?put? et adopt? par de nombreux enseignants, avec 60 pages d'exercices corrig?s.

Reconnu et utilis? par les enseignants de nombreuses ?coles et IUT, compl?t? d'exercices accompagn?s de leurs corrig?s, cet ouvrage original et ?rudit est une r?f?rence sur tous les fondamentaux de la programmation : choix d'une structure de donn?es, param?trage, modularit?, orientation objet et h?ritage, conception d'interface, multithreading et gestion d'?v?nements, protocoles de communication et gestion r?seau, bases de donn?es... jusqu'? la d?sormais indispensable norme Unicode (le format UTF-8). On verra notamment la r?alisation avec Python 3 d'une application web interactive et autonome, int?grant une base de donn?es SQLite. Cette nouvelle ?dition traite de la possibilit? de produire des documents imprimables (PDF) de grande qualit? en exploitant les ressources combin?es de Python 2 et Python 3.

A qui s'adresse ce livre ?

Aux ?tudiants en BTS et IUT Informatique et ? leurs enseignants ; ? tous les autodidactes f?rus de programmation qui veulent d?couvrir le langage Python.

Disponible ?galement en version papier: Commandez sur Amazon !

Droits de copie de cette version : Creative Commons (Paternit? - Pas d'utilisation commerciale - Partage des conditions initiales ? l'identique.)

Commentez

Apprendre ? programmer avec Python 3 par G?rard Swinnen

1 - Avant-propos.......................................................................................................................................................... 9 1-A - La couverture................................................................................................................................................ 9

2 - Pr?face................................................................................................................................................................... 9 2-A - Choix d'un premier langage de programmation......................................................................................... 10 2-B - Pr?sentation du langage Python.................................................................................................................11 2-B-1 - Caract?ristiques du langage...............................................................................................................11 2-C - Pour le professeur qui souhaite utiliser cet ouvrage comme support de cours.......................................... 12 2-D - Versions du langage................................................................................................................................... 13 2-E - Distribution de Python et bibliographie....................................................................................................... 13 2-F - Exemples du livre........................................................................................................................................14 2-G - Remerciements........................................................................................................................................... 14

3 - ? l'?cole des sorciers...........................................................................................................................................15 3-A - Bo?tes noires et pens?e magique............................................................................................................... 15 3-B - Magie blanche, magie noire....................................................................................................................... 16 3-C - La d?marche du programmeur................................................................................................................... 17 3-D - Langage machine, langage de programmation.......................................................................................... 18 3-E - ?dition du code source - Interpr?tation...................................................................................................... 19 3-F - Mise au point d'un programme - Recherche des erreurs (debug)..............................................................19 3-F-1 - Erreurs de syntaxe............................................................................................................................. 19 3-F-2 - Erreurs s?mantiques...........................................................................................................................20 3-F-3 - Erreurs ? l'ex?cution...........................................................................................................................20 3-G - Recherche des erreurs et exp?rimentation................................................................................................ 20

4 - Premiers pas........................................................................................................................................................ 21 4-A - Calculer avec Python.................................................................................................................................. 21 4-B - Donn?es et variables.................................................................................................................................. 22 4-C - Noms de variables et mots r?serv?s..........................................................................................................23 4-D - Affectation (ou assignation)........................................................................................................................ 23 4-E - Afficher la valeur d' une variable................................................................................................................ 24 4-F - Typage des variables.................................................................................................................................. 25 4-G - Affectations multiples.................................................................................................................................. 26 4-H - Op?rateurs et expressions..........................................................................................................................26 4-I - Priorit? des op?rations................................................................................................................................. 27 4-J - Composition................................................................................................................................................. 27

5 - Contr?le du flux d'ex?cution................................................................................................................................ 28 5-A - S?quence d'instructions.............................................................................................................................. 28 5-B - S?lection ou ex?cution conditionnelle.........................................................................................................29 5-C - Op?rateurs de comparaison....................................................................................................................... 30 5-D - Instructions compos?es - blocs d'instructions............................................................................................ 30 5-E - Instructions imbriqu?es............................................................................................................................... 31 5-F - Quelques r?gles de syntaxe Python........................................................................................................... 31 5-F-1 - Les limites des instructions et des blocs sont d?finies par la mise en page...................................... 31 5-F-2 - Instruction compos?e : en-t?te, double point, bloc d'instructions indent?.......................................... 32 5-F-3 - Les espaces et les commentaires sont normalement ignor?s........................................................... 32

6 - Instructions r?p?titives......................................................................................................................................... 33 6-A - R?-affectation.............................................................................................................................................. 33 6-B - R?p?titions en boucle - l'instruction while.................................................................................................. 34 6-B-1 - Commentaires.....................................................................................................................................34 6-B-2 - Remarques......................................................................................................................................... 35 6-B-3 - ?laboration de tables..........................................................................................................................35 6-B-4 - Construction d'une suite math?matique............................................................................................. 35 6-C - Premiers scripts, ou comment conserver nos programmes....................................................................... 36 6-C-1 - Probl?mes ?ventuels li?s aux caract?res accentu?s......................................................................... 39

7 - Principaux types de donn?es.............................................................................................................................. 40 7-A - Les donn?es num?riques............................................................................................................................40 7-A-1 - Le type integer................................................................................................................................... 40 7-B - Le type float................................................................................................................................................ 41 7-C - Les donn?es alphanum?riques...................................................................................................................43 7-C-1 - Le type string..................................................................................................................................... 43

- 3 Le contenu de cet article est r?dig? par G?rard Swinnen et est mis ? disposition selon les termes de la Licence Creative Commons Attribution 3.0 non transpos?. Les logos , en-t?te, pied de page, css, et look & feel de l'article sont Copyright ? 2013 .



Apprendre ? programmer avec Python 3 par G?rard Swinnen

7-C-1-A - Remarques................................................................................................................................ 44 7-C-1-B - Triple quotes..............................................................................................................................44 7-C-2 - Acc?s aux caract?res individuels d'une cha?ne................................................................................. 44 7-C-3 - Op?rations ?l?mentaires sur les cha?nes...........................................................................................45 7-D - Les listes (premi?re approche)................................................................................................................... 46 8 - Fonctions pr?d?finies........................................................................................................................................... 48 8-A - Affichage : la fonction print()....................................................................................................................... 49 8-B - Interaction avec l'utilisateur : la fonction input()..........................................................................................49 8-B-1 - Remarque importante......................................................................................................................... 49 8-C - Importer un module de fonctions................................................................................................................50 8-D - Un peu de d?tente avec le module turtle...................................................................................................52 8-E - V?racit?/fausset? d'une expression............................................................................................................ 53 8-F - R?vision....................................................................................................................................................... 54 8-F-1 - Contr?le du flux - utilisation d'une liste simple...................................................................................54 8-F-2 - Boucle while - instructions imbriqu?es............................................................................................... 55 9 - Fonctions originales............................................................................................................................................. 57 9-A - D?finir une fonction..................................................................................................................................... 58 9-A-1 - Fonction simple sans param?tres...................................................................................................... 58 9-A-2 - Fonction avec param?tre....................................................................................................................59 9-A-3 - Utilisation d'une variable comme argument....................................................................................... 60 9-A-3-A - Remarque importante................................................................................................................ 61 9-A-4 - Fonction avec plusieurs param?tres.................................................................................................. 61 9-A-4-A - Notes..........................................................................................................................................62 9-B - Variables locales, variables globales.......................................................................................................... 62 9-C - Vraies fonctions et proc?dures................................................................................................................... 63 9-C-1 - Notes.................................................................................................................................................. 64 9-D - Utilisation des fonctions dans un script...................................................................................................... 65 9-D-1 - Notes.................................................................................................................................................. 65 9-E - Modules de fonctions.................................................................................................................................. 66 9-F - Typage des param?tres.............................................................................................................................. 71 9-G - Valeurs par d?faut pour les param?tres.....................................................................................................71 9-H - Arguments avec ?tiquettes......................................................................................................................... 72 10 - Utilisation de fen?tres et de graphismes........................................................................................................... 73 10-A - Interfaces graphiques (GUI)......................................................................................................................73 10-B - Premiers pas avec tkinter......................................................................................................................... 74 10-B-1 - Examinons ? pr?sent plus en d?tail chacune des lignes de commandes ex?cut?es....................... 74 10-C - Programmes pilot?s par des ?v?nements................................................................................................ 76 10-C-1 - Exemple graphique :trac? de lignes dans un canevas.................................................................... 78 10-C-2 - Exemple graphique : deux dessins altern?s.................................................................................... 80 10-C-3 - Exemple graphique : calculatrice minimaliste.................................................................................. 82 10-C-4 - Exemple graphique : d?tection et positionnement d'un clic souris...................................................84 10-D - Les classes de widgets tkinter................................................................................................................. 85 10-E - Utilisation de la m?thode grid() pour contr?ler la disposition des widgets................................................87 10-F - Composition d'instructions pour ?crire un code plus compact..................................................................89 10-G - Modification des propri?t?s d'un objet - Animation.................................................................................. 91 10-H - Animation automatique - R?cursivit?........................................................................................................94 11 - Manipuler des fichiers........................................................................................................................................ 96 11-A - Utilit? des fichiers...................................................................................................................................... 96 11-B - Travailler avec des fichiers....................................................................................................................... 97 11-C - Noms de fichiers - le r?pertoire courant................................................................................................... 98 11-D - Les deux formes d'importation..................................................................................................................98 11-E - ?criture s?quentielle dans un fichier.........................................................................................................99 11-E-1 - Notes.................................................................................................................................................99 11-F - Lecture s?quentielle d'un fichier..............................................................................................................100 11-F-1 - Notes............................................................................................................................................... 100 11-G - L'instruction break pour sortir d'une boucle............................................................................................101 11-H - Fichiers texte........................................................................................................................................... 102 11-H-1 - Remarques..................................................................................................................................... 102

- 4 Le contenu de cet article est r?dig? par G?rard Swinnen et est mis ? disposition selon les termes de la Licence Creative Commons Attribution 3.0 non transpos?. Les logos , en-t?te, pied de page, css, et look & feel de l'article sont Copyright ? 2013 .



Apprendre ? programmer avec Python 3 par G?rard Swinnen

11-I - Enregistrement et restitution de variables diverses..................................................................................103 11-J - Gestion des exceptions : les instructions try - except - else................................................................... 104 12 - Approfondir les structures de donn?es............................................................................................................106 12-A - Le point sur les cha?nes de caract?res.................................................................................................. 107

12-A-1 - Indi?age, extraction, longueur........................................................................................................ 107 12-A-2 - Extraction de fragments de cha?nes.............................................................................................. 107 12-A-3 - Concat?nation, r?p?tition................................................................................................................108 12-A-4 - Parcours d'une s?quence : l'instruction for - in ............................................................................. 109 12-A-5 - Appartenance d'un ?l?ment ? une s?quence : l'instruction in utilis?e seule...................................110 12-A-6 - Les cha?nes sont des s?quences non modifiables........................................................................ 111 12-A-7 - Les cha?nes sont comparables...................................................................................................... 111 12-A-8 - La norme Unicode.......................................................................................................................... 112 12-A-9 - S?quences d'octets : le type bytes.................................................................................................113 12-A-10 - L'encodage Utf-8.......................................................................................................................... 115 12-A-11 - Conversion (encodage/d?codage) des cha?nes........................................................................... 116

12-A-11-A - Conversion d'une cha?ne bytes en cha?ne string................................................................ 116 12-A-11-B - Conversion d'une cha?ne string en cha?ne bytes................................................................ 116 12-A-11-C - Conversions automatiques lors du traitement des fichiers.................................................. 117 12-A-11-D - Cas des scripts Python....................................................................................................... 118 12-A-12 - Acc?der ? d'autres caract?res que ceux du clavier..................................................................... 118 12-A-13 - Les cha?nes sont des objets........................................................................................................ 119 12-A-14 - Fonctions int?gr?es...................................................................................................................... 121 12-A-15 - Formatage des cha?nes de caract?res.........................................................................................122 12-A-16 - Formatage des cha?nes ? ? l'ancienne ?.....................................................................................123 12-B - Le point sur les listes..............................................................................................................................124 12-B-1 - D?finition d'une liste - acc?s ? ses ?l?ments.................................................................................124 12-B-2 - Les listes sont modifiables............................................................................................................. 124 12-B-3 - Les listes sont des objets...............................................................................................................125 12-B-4 - Techniques de slicing avanc? pour modifier une liste....................................................................126 12-B-4-A - Insertion d'un ou plusieurs ?l?ments n'importe o? dans une liste......................................... 126 12-B-4-B - Suppression/remplacement d'?l?ments.................................................................................127 12-B-5 - Cr?ation d'une liste de nombres ? l'aide de la fonction range().....................................................127 12-B-6 - Parcours d'une liste ? l'aide de for, range() et len().......................................................................128 12-B-7 - Une cons?quence importante du typage dynamique.....................................................................128 12-B-8 - Op?rations sur les listes.................................................................................................................129 12-B-9 - Test d'appartenance....................................................................................................................... 129 12-B-10 - Copie d'une liste...........................................................................................................................129 12-B-10-A - Petite remarque concernant la syntaxe...............................................................................130 12-B-11 - Nombres al?atoires - histogrammes.............................................................................................131 12-B-12 - Tirage au hasard de nombres entiers.......................................................................................... 133 12-C - Les tuples................................................................................................................................................133 12-C-1 - Op?rations sur les tuples............................................................................................................... 134 12-D - Les dictionnaires..................................................................................................................................... 135 12-D-1 - Cr?ation d'un dictionnaire...............................................................................................................135 12-D-2 - Op?rations sur les dictionnaires.....................................................................................................136 12-D-3 - Test d'appartenance....................................................................................................................... 136 12-D-4 - Les dictionnaires sont des objets...................................................................................................136 12-D-5 - Parcours d'un dictionnaire..............................................................................................................137 12-D-6 - Les cl?s ne sont pas n?cessairement des cha?nes de caract?res................................................ 138 12-D-7 - Les dictionnaires ne sont pas des s?quences...............................................................................139 12-D-8 - Construction d'un histogramme ? l'aide d'un dictionnaire.............................................................. 140 12-D-9 - Contr?le du flux d'ex?cution ? l'aide d'un dictionnaire................................................................... 141 13 - Classes, objets, attributs..................................................................................................................................142 13-A - Utilit? des classes................................................................................................................................... 142 13-B - D?finition d'une classe ?l?mentaire........................................................................................................ 143 13-C - Attributs (ou variables) d'instance...........................................................................................................145 13-D - Passage d'objets comme arguments dans l'appel d'une fonction.......................................................... 145 13-E - Similitude et unicit?................................................................................................................................. 146

- 5 Le contenu de cet article est r?dig? par G?rard Swinnen et est mis ? disposition selon les termes de la Licence Creative Commons Attribution 3.0 non transpos?. Les logos , en-t?te, pied de page, css, et look & feel de l'article sont Copyright ? 2013 .



................
................

In order to avoid copyright disputes, this page is only a partial summary.

Google Online Preview   Download