apprendre python

Upload: ricardosamedi

Post on 04-Nov-2015

81 views

Category:

Documents


13 download

DESCRIPTION

Apprendre Python par la pratique et le developpment de framework dediee a la programmation et l'interfacage

TRANSCRIPT

  • Apprendre Python !Par prolixe

    www.siteduzero.com

    Licence Creative Commons BY-NC-SA 2.0Dernire mise jour le 7/12/2011

  • Sommaire 1Sommaire ........................................................................................................................................... 6 Apprendre Python ! ............................................................................................................................ 7Partie 1 : Introduction Python ........................................................................................................... 7Qu'est-ce que Python ? ..................................................................................................................................................... 7Un langage de programmation ? Qu'est-ce que c'est ? .............................................................................................................................................. 8La communication humaine ........................................................................................................................................................................................ 8Mon ordinateur communique aussi ! ........................................................................................................................................................................... 9Pour la petite histoire ..................................................................................................................................................................................................

    10Un langage de programmation interprt ................................................................................................................................................................. 10Diffrentes versions de Python ................................................................................................................................................................................. 11Installer Python .......................................................................................................................................................................................................... 11Sous Windows ........................................................................................................................................................................................................... 11Sous Linux ................................................................................................................................................................................................................. 11Sous Mac OS ............................................................................................................................................................................................................ 11Lancer Python ...........................................................................................................................................................................................................

    13Premiers pas avec l'interprteur de commandes Python ............................................................................................... 13O est-ce qu'on est, l ? ........................................................................................................................................................................................... 15Vos premires instructions : un peu de calcul mental pour l'ordinateur .................................................................................................................... 16Entrer un nombre ...................................................................................................................................................................................................... 16Oprations courantes ................................................................................................................................................................................................

    18Le monde merveilleux des variables ............................................................................................................................... 19C'est quoi, des variables ? Et quoi a sert ? .......................................................................................................................................................... 19C'est quoi, des variables ? ........................................................................................................................................................................................ 19Comment a marche ? .............................................................................................................................................................................................. 22Les types de donnes en Python .............................................................................................................................................................................. 22Qu'entend-t-on par "type de donne" ? ..................................................................................................................................................................... 22Les diffrents types de donnes ............................................................................................................................................................................... 24Un petit bonus ........................................................................................................................................................................................................... 24Quelques trucs et astuces pour vous faciliter la vie .................................................................................................................................................. 26Premire utilisation des fonctions ............................................................................................................................................................................. 26Utiliser une fonction ................................................................................................................................................................................................... 26La fonction "type" ...................................................................................................................................................................................................... 27La fonction "print" ......................................................................................................................................................................................................

    28Les structures conditionnelles ......................................................................................................................................... 28Vos premires conditions et blocs d'instructions ....................................................................................................................................................... 29Forme minimale en if ................................................................................................................................................................................................. 30Forme complte (if, elif et else) ................................................................................................................................................................................. 33De nouveaux oprateurs ........................................................................................................................................................................................... 33Les oprateurs de comparaison ................................................................................................................................................................................ 33Prdicats et boolens ................................................................................................................................................................................................ 34Les mots cls "and", "or" et "not" .............................................................................................................................................................................. 35Votre premier programme ! ....................................................................................................................................................................................... 36Avant de commencer ................................................................................................................................................................................................ 36Sujet .......................................................................................................................................................................................................................... 36Solution ou rsolution ................................................................................................................................................................................................ 38Correction ..................................................................................................................................................................................................................

    39Les boucles ..................................................................................................................................................................... 40En quoi a consiste ? ................................................................................................................................................................................................ 42La boucle while .......................................................................................................................................................................................................... 44La boucle for .............................................................................................................................................................................................................. 46Un petit bonus : les mot-cls break et continue ........................................................................................................................................................ 46break ......................................................................................................................................................................................................................... 46continue .....................................................................................................................................................................................................................

    47Pas pas vers la modularit (1/2) .................................................................................................................................. 48Les fonctions : vous de jouer ................................................................................................................................................................................. 48La cration de fonctions ............................................................................................................................................................................................ 50Valeurs par dfaut des paramtres ........................................................................................................................................................................... 51Signature d'une fonction ............................................................................................................................................................................................ 51L'instruction return ..................................................................................................................................................................................................... 52Les fonctions lambda ................................................................................................................................................................................................ 53Syntaxe ..................................................................................................................................................................................................................... 54Utilisation ................................................................................................................................................................................................................... 54 la dcouverte des modules .................................................................................................................................................................................... 55Les modules, qu'est-ce que c'est ? ........................................................................................................................................................................... 55La mthode import .................................................................................................................................................................................................... 56Utiliser un espace de noms spcifique ...................................................................................................................................................................... 57Une autre mthode d'importation : from ... import ... ................................................................................................................................................. 58Bilan ..........................................................................................................................................................................................................................

    58Pas pas vers la modularit (2/2) .................................................................................................................................. 59Mettre en bote notre code ........................................................................................................................................................................................ 59Fini, l'interprteur ? .................................................................................................................................................................................................... 59Emprisonnons notre programme dans un fichier ...................................................................................................................................................... 60Quelques ajustements .............................................................................................................................................................................................. 61Je viens pour conqurir le monde... et crer mes propres modules ......................................................................................................................... 62Mes modules moi ...................................................................................................................................................................................................

    Sommaire 1/285

    www.siteduzero.com

  • 63Faire un test de module dans le module-mme ........................................................................................................................................................ 64Les packages ............................................................................................................................................................................................................ 65En thorie .................................................................................................................................................................................................................. 65En pratique ................................................................................................................................................................................................................

    67Les exceptions ................................................................................................................................................................ 68 quoi a sert ? ......................................................................................................................................................................................................... 68Forme minimale du bloc try ....................................................................................................................................................................................... 70Forme plus complte ................................................................................................................................................................................................. 70Excuter le bloc except pour un type d'exceptions prcis ......................................................................................................................................... 71Les mots-cls else et finally ...................................................................................................................................................................................... 72Un petit bonus : le mot-cl pass ................................................................................................................................................................................ 73Les assertions ........................................................................................................................................................................................................... 75Lever une exception ..................................................................................................................................................................................................

    75TP 1 : tous au ZCasino .................................................................................................................................................... 75Notre sujet ................................................................................................................................................................................................................. 76Notre rgle du jeu ...................................................................................................................................................................................................... 77Organisons notre projet ............................................................................................................................................................................................. 77Le module random .................................................................................................................................................................................................... 77Arrondir un nombre ................................................................................................................................................................................................... 77A vous de jouer .......................................................................................................................................................................................................... 77Correction ! ................................................................................................................................................................................................................ 79Et maintenant ? .........................................................................................................................................................................................................

    81Partie 2 : La Programmation Oriente Objet en tant qu'utilisateur .................................................... 81Notre premier objet : les chanes de caractres ............................................................................................................. 81Vous avez dit objet ? ................................................................................................................................................................................................. 83Les mthodes de la classe str ................................................................................................................................................................................... 84Mettre en forme une chane ...................................................................................................................................................................................... 85Formater et afficher une chane ................................................................................................................................................................................ 89Parcours et slection de chanes .............................................................................................................................................................................. 89Parcours par indice ................................................................................................................................................................................................... 90Slection de chanes .................................................................................................................................................................................................

    91Les listes et tuples (1/2) .................................................................................................................................................. 92Crons et ditons nos premires listes ..................................................................................................................................................................... 92D'abord c'est quoi, une liste ? ................................................................................................................................................................................... 92Cration de listes ...................................................................................................................................................................................................... 93Ajouter des objets dans une liste .............................................................................................................................................................................. 95Suppression d'lments d'une liste ........................................................................................................................................................................... 96Le parcours de listes ................................................................................................................................................................................................. 97La fonction range ....................................................................................................................................................................................................... 98La fonction enumerate ..............................................................................................................................................................................................

    101Un petit coup d'il aux tuples ................................................................................................................................................................................. 101Affectation multiple .................................................................................................................................................................................................. 101Une fonction retournant plusieurs valeurs ...............................................................................................................................................................

    102Les listes et tuples (2/2) ................................................................................................................................................ 103Entre chanes et listes ............................................................................................................................................................................................. 103Des chanes aux listes ............................................................................................................................................................................................ 103Des listes aux chanes ............................................................................................................................................................................................ 103Une application pratique ......................................................................................................................................................................................... 105Les listes et paramtres de fonctions ...................................................................................................................................................................... 105Les fonctions dont on ne connat pas le nombre de paramtres l'avance ........................................................................................................... 107Transformer une liste en paramtres de fonction .................................................................................................................................................... 108Les comprhensions de liste ................................................................................................................................................................................... 109Parcours simple ...................................................................................................................................................................................................... 109Filtrage avec un branchement conditionnel ............................................................................................................................................................ 109Mlangeons un peu tout a ..................................................................................................................................................................................... 110Nouvelle application concrte ..................................................................................................................................................................................

    112Les dictionnaires ............................................................................................................................................................ 112Cration et dition de dictionnaires ......................................................................................................................................................................... 113Crer un dictionnaire ............................................................................................................................................................................................... 115Supprimer des cls d'un dictionnaire ....................................................................................................................................................................... 116Un peu plus loin ....................................................................................................................................................................................................... 117Les mthodes de parcours ...................................................................................................................................................................................... 118Parcours des cls .................................................................................................................................................................................................... 118Parcours des valeurs ............................................................................................................................................................................................... 119Parcours des cls et valeurs simultanment ........................................................................................................................................................... 119Les dictionnaires et paramtres de fonction ............................................................................................................................................................ 120Rcuprer les paramtres nomms dans un dictionnaire ....................................................................................................................................... 120Transformer un dictionnaire en paramtres nomms d'une fonction ......................................................................................................................

    121Les fichiers .................................................................................................................................................................... 121Avant de commencer .............................................................................................................................................................................................. 122Mais d'abord pourquoi lire ou crire dans des fichiers ? ......................................................................................................................................... 122Changer le rpertoire de travail courant .................................................................................................................................................................. 122Chemins relatifs et absolus ..................................................................................................................................................................................... 123Lecture et criture dans un fichier ........................................................................................................................................................................... 124Ouverture du fichier ................................................................................................................................................................................................. 124Fermer le fichier ...................................................................................................................................................................................................... 125Lire l'intgralit du fichier ......................................................................................................................................................................................... 125criture dans un fichier ........................................................................................................................................................................................... 125crire d'autres types de donnes ............................................................................................................................................................................ 125Le mot-cl with ........................................................................................................................................................................................................ 126Enregistrer des objets dans des fichiers .................................................................................................................................................................

    Sommaire 2/285

    www.siteduzero.com

  • 127Enregistrer un objet dans un fichier ........................................................................................................................................................................ 128Rcuprer nos objets enregistrs ...........................................................................................................................................................................

    128Porte des variables et rfrences ............................................................................................................................... 128La porte des variables ........................................................................................................................................................................................... 129Dans nos fonctions, quelles variables sont accessibles ? ...................................................................................................................................... 129La porte de nos variables ...................................................................................................................................................................................... 132Les variables globales ............................................................................................................................................................................................. 133Le principe des variables globales .......................................................................................................................................................................... 133Utiliser concrtement les variables globales ...........................................................................................................................................................

    134TP 2 : un bon vieux petit pendu .................................................................................................................................... 134Votre mission ........................................................................................................................................................................................................... 135Un jeu du pendu ...................................................................................................................................................................................................... 135Le ct technique du problme ............................................................................................................................................................................... 135Grer les scores ...................................................................................................................................................................................................... 135 vous de jouer ....................................................................................................................................................................................................... 135Correction propose ................................................................................................................................................................................................ 136donnees.py .............................................................................................................................................................................................................. 136fonctions.py ............................................................................................................................................................................................................. 138pendu.py .................................................................................................................................................................................................................. 139Rsum ...................................................................................................................................................................................................................

    139Partie 3 : La Programmation Oriente Objet, ct dveloppeur ..................................................... 140Premire approche des classes .................................................................................................................................... 141Les classes, tout un monde .................................................................................................................................................................................... 141Pourquoi utiliser des objets ? .................................................................................................................................................................................. 141Choix du modle ..................................................................................................................................................................................................... 141Convention de nommage ........................................................................................................................................................................................ 143Nos premiers attributs ............................................................................................................................................................................................. 143Quand on cre notre objet ................................................................................................................................................................................. 144toffons un peu notre constructeur ......................................................................................................................................................................... 145Attributs de classe ................................................................................................................................................................................................... 146Les mthodes, la recette ......................................................................................................................................................................................... 148Le paramtre self .................................................................................................................................................................................................... 149Des mthodes de classe ......................................................................................................................................................................................... 150Un peu d'introspection ............................................................................................................................................................................................. 151La fonction dir .......................................................................................................................................................................................................... 152L'attribut spcial __dict__ ........................................................................................................................................................................................

    152Les proprits ................................................................................................................................................................ 154Que dit l'encapsulation ? ......................................................................................................................................................................................... 154Les proprits la casserole .................................................................................................................................................................................. 156Les proprits en action .......................................................................................................................................................................................... 157Rsumons le principe d'encapsulation en Python ...................................................................................................................................................

    158Les mthodes spciales ................................................................................................................................................ 158dition de l'objet et accs aux attributs ................................................................................................................................................................... 159dition de l'objet ...................................................................................................................................................................................................... 160Reprsentation de l'objet ......................................................................................................................................................................................... 161Accs aux attributs de notre objet ........................................................................................................................................................................... 163Les mthodes de conteneur .................................................................................................................................................................................... 164Accs aux lments d'un conteneur ....................................................................................................................................................................... 164La mthode spciale derrire le mot-cl in ............................................................................................................................................................. 165Connatre la taille d'un conteneur ............................................................................................................................................................................ 165Les mthodes mathmatiques ................................................................................................................................................................................ 166Ce qu'il faut savoir ................................................................................................................................................................................................... 167Tout dpend du sens ............................................................................................................................................................................................... 168D'autres oprateurs ................................................................................................................................................................................................. 169Les mthodes de comparaison ............................................................................................................................................................................... 170Des mthodes spciales utiles pickle .................................................................................................................................................................. 171La mthode spciale __getstate__ ......................................................................................................................................................................... 171La mthode __setstate__ ........................................................................................................................................................................................ 172On peut enregistrer en fichier autre chose que des dictionnaires ........................................................................................................................... 172Je veux encore plus puissant ! ................................................................................................................................................................................

    173L'hritage ....................................................................................................................................................................... 174Pour bien commencer ............................................................................................................................................................................................. 176L'hritage simple ..................................................................................................................................................................................................... 178Petite prcision ........................................................................................................................................................................................................ 178Deux fonctions trs pratiques .................................................................................................................................................................................. 179L'hritage multiple ................................................................................................................................................................................................... 180Recherche des mthodes ....................................................................................................................................................................................... 181Retour sur les exceptions ........................................................................................................................................................................................ 181Cration d'exceptions personnalises .....................................................................................................................................................................

    183Derrire la boucle for ..................................................................................................................................................... 183Les itrateurs ........................................................................................................................................................................................................... 184Utiliser les itrateurs ................................................................................................................................................................................................ 185Crons nos itrateurs .............................................................................................................................................................................................. 187Les gnrateurs ...................................................................................................................................................................................................... 187Les gnrateurs simples ......................................................................................................................................................................................... 188Les gnrateurs comme co-routines ....................................................................................................................................................................... 190Voir aussi .................................................................................................................................................................................................................

    190TP 3 : un dictionnaire ordonn ...................................................................................................................................... 191Notre mission .......................................................................................................................................................................................................... 191Spcifications .......................................................................................................................................................................................................... 191Exemple de manipulation ........................................................................................................................................................................................

    Sommaire 3/285

    www.siteduzero.com

  • 192Tous au dpart ! ....................................................................................................................................................................................................... 193Correction propose ................................................................................................................................................................................................ 195Le mot de la fin ........................................................................................................................................................................................................

    196Les dcorateurs ............................................................................................................................................................. 196Qu'est-ce que c'est ? ............................................................................................................................................................................................... 198En thorie ................................................................................................................................................................................................................ 198Format le plus simple .............................................................................................................................................................................................. 199Modifier le comportement de notre fonction ............................................................................................................................................................ 201Un dcorateur avec des paramtres ....................................................................................................................................................................... 204Tenir compte des paramtres de notre fonction ...................................................................................................................................................... 205Des dcorateurs s'appliquant aux dfinitions de classes ........................................................................................................................................ 205Chaner nos dcorateurs ......................................................................................................................................................................................... 207Exemples d'application ............................................................................................................................................................................................ 207Des classes singleton ............................................................................................................................................................................................. 208Contrler les types passs notre fonction ............................................................................................................................................................

    211Partie 4 : Les merveilles de la librairie standard .............................................................................. 211Les expressions rgulires ............................................................................................................................................ 211Que sont les expressions rgulires ? .................................................................................................................................................................... 212Quelques syntaxes pour les expressions rgulires ............................................................................................................................................... 212Concrtement, a se prsente comment ? ............................................................................................................................................................. 212Des caractres ordinaires ....................................................................................................................................................................................... 212Rechercher au dbut ou la fin de la chane .......................................................................................................................................................... 212Contrler le nombre d'occurences .......................................................................................................................................................................... 213Les classes de caractres ....................................................................................................................................................................................... 213Les groupes ............................................................................................................................................................................................................. 214Le module re ........................................................................................................................................................................................................... 215Chercher dans une chane ...................................................................................................................................................................................... 217Remplacer une expression ..................................................................................................................................................................................... 218Des expressions compiles ....................................................................................................................................................................................

    219Les temps ...................................................................................................................................................................... 220Le module time ........................................................................................................................................................................................................ 220Reprsenter une date et une heure dans un nombre unique .................................................................................................................................. 221La date et l'heure de faon plus prsentable .......................................................................................................................................................... 222Rcuprer un timestamp depuis une date .............................................................................................................................................................. 222Mettre en pause l'excution du programme pendant un temps dtermin ............................................................................................................. 222Formatter un temps ................................................................................................................................................................................................. 223Bien d'autres fonctions ............................................................................................................................................................................................ 224Le module datetime ................................................................................................................................................................................................. 224Reprsenter une date .............................................................................................................................................................................................. 225Reprsenter une heure ........................................................................................................................................................................................... 225Reprsenter des dates et heures ............................................................................................................................................................................

    226Un peu de programmation systme .............................................................................................................................. 226Les entres et sorties standard ............................................................................................................................................................................... 227Accder aux entres et sorties standard ................................................................................................................................................................. 228Modifier les entres et sorties standard .................................................................................................................................................................. 230Les signaux ............................................................................................................................................................................................................. 230Les diffrents signaux ............................................................................................................................................................................................. 230Intercepter un signal ................................................................................................................................................................................................ 233Interprter les arguments de la ligne de commande ............................................................................................................................................... 233Accder la console sous Windows ....................................................................................................................................................................... 233Accder aux arguments de la ligne de commande ................................................................................................................................................. 234Interprter les arguments de la ligne de commande ............................................................................................................................................... 237Excuter une commande systme depuis Python .................................................................................................................................................. 238La fonction system .................................................................................................................................................................................................. 238La fonction popen ....................................................................................................................................................................................................

    239Un peu de mathmatiques ............................................................................................................................................ 239Pour commencer, le module math .......................................................................................................................................................................... 240Fonctions usuelles .................................................................................................................................................................................................. 240Un peu de trigonomtrie .......................................................................................................................................................................................... 241Arrondir un nombre ................................................................................................................................................................................................. 242Des fractions avec... le module fractions ................................................................................................................................................................ 242Crer une fraction .................................................................................................................................................................................................... 242Manipuler les fractions ............................................................................................................................................................................................ 244Du pseudo-alatoire avec random .......................................................................................................................................................................... 244Du pseudo-alatoire ................................................................................................................................................................................................ 244La fonction random ................................................................................................................................................................................................. 244randrange et randint ................................................................................................................................................................................................ 245Oprations sur des squences ...............................................................................................................................................................................

    245Gestion des mots de passe ........................................................................................................................................... 246Rceptionner un mot de passe entr par l'utilisateur .............................................................................................................................................. 246Chiffrer un mot de passe ......................................................................................................................................................................................... 247Chiffrer un mot de passe ? ...................................................................................................................................................................................... 248Chiffrer un mot de passe .........................................................................................................................................................................................

    250Le rseau ...................................................................................................................................................................... 251Brve prsentation du rseau ................................................................................................................................................................................. 251Le protocole TCP .................................................................................................................................................................................................... 251Clients et serveur .................................................................................................................................................................................................... 251Les diffrentes tapes ............................................................................................................................................................................................. 252Etablir une connexion .............................................................................................................................................................................................. 252Les sockets ............................................................................................................................................................................................................. 253Les sockets .............................................................................................................................................................................................................

    Sommaire 4/285

    www.siteduzero.com

  • 253Construire notre socket ........................................................................................................................................................................................... 253Connecter le socket ................................................................................................................................................................................................ 253Faire couter notre socket ....................................................................................................................................................................................... 254Accepter une connexion venant du client ............................................................................................................................................................... 254Cration du client .................................................................................................................................................................................................... 254Connecter le client .................................................................................................................................................................................................. 255Faire communiquer nos sockets ............................................................................................................................................................................. 256Fermer la connexion ................................................................................................................................................................................................ 257Le serveur ............................................................................................................................................................................................................... 257Le client ................................................................................................................................................................................................................... 258Un serveur plus labor .......................................................................................................................................................................................... 259Le module select ..................................................................................................................................................................................................... 261Et encore plus .........................................................................................................................................................................................................

    262Partie 5 : Rcapitulatif et annexes .................................................................................................. 263crire nos programmes Python dans des fichiers ........................................................................................................ 264Mettre le code dans un fichier ................................................................................................................................................................................. 264Excuter notre code sous Windows ........................................................................................................................................................................ 264Sous les systmes Unix .......................................................................................................................................................................................... 264Prciser l'encodage de travail ................................................................................................................................................................................. 266Mettre en pause notre programme ..........................................................................................................................................................................

    266De bonnes pratiques ..................................................................................................................................................... 267La PEP 20 : toute une philosophie .......................................................................................................................................................................... 269La PEP 8 : des conventions prcises ...................................................................................................................................................................... 270Introduction .............................................................................................................................................................................................................. 270Forme du code ........................................................................................................................................................................................................ 271Directives d'importation ........................................................................................................................................................................................... 272Le signe espace dans les expressions et instructions ............................................................................................................................................ 273Commentaires ......................................................................................................................................................................................................... 274Conventions de nommage ...................................................................................................................................................................................... 274Conventions de programmation .............................................................................................................................................................................. 275Conclusion .............................................................................................................................................................................................................. 275La PEP 257 : de belles documentations ................................................................................................................................................................. 276Qu'est-ce qu'une docstring ? ................................................................................................................................................................................... 276Les docstrings sur une seule ligne .......................................................................................................................................................................... 277Les docstrings sur plusieurs lignes .........................................................................................................................................................................

    278Pour finir et bien continuer ............................................................................................................................................ 278Quelques rfrences ............................................................................................................................................................................................... 279La documentation officielle ...................................................................................................................................................................................... 279Le Wiki Python ........................................................................................................................................................................................................ 279L'index des PEP (Python Enhancement Proposal) ................................................................................................................................................. 279La documentation par version ................................................................................................................................................................................. 280Des bibliothques tierces ........................................................................................................................................................................................ 281Pour faire une interface graphique .......................................................................................................................................................................... 281Dans le monde du Web ........................................................................................................................................................................................... 282Un peu de rseau .................................................................................................................................................................................................... 282Pour conclure .......................................................................................................................................................................................................... 282Partager ................................................................................................................................................................................................................... 282Lire aussi .................................................................................................................................................................................................................

    Sommaire 5/285

    www.siteduzero.com

  • Apprendre Python !

    Par prolixeMise jour : 16/04/2011Difficult : Facile

    25 790 visites depuis 7 jours, class 12/794Ce tutoriel a pour but de vous initier au langage de programmation Python. Et comme le veut la coutume ici-bas, on dmarre dezro, dans la joie et la bonne humeur !

    La syntaxe claire et relativement intuitive de ce langage en fait un candidat idal dans le cadre d'une introduction laprogrammation. Ainsi, si vous n'avez jamais programm en quelque langage que ce soit, si vous ne savez que trs vaguement ceque cela signifie, Python est, me semble-t-il, un bon choix pour commencer votre apprentissage. Bonne lecture !

    Avantages de Python :

    facile apprendre, lire, comprendre et crire ;portable (fonctionne sous de nombreux systmes d'exploitation) ;adapt aussi bien pour des scripts, des petits ou gros projets ;dot d'une faade objet bien conue et puissante ;possde une communaut active autour du langage ;et j'en passe

    Un grand merci 6pri1 pour sa relecture attentive et sa patience. Un merci tout aussi cordial Nathan21 et Sergeswi qui ontfourni les icnes du tutoriel.

    Ce cours vous plat ?

    Si vous avez aim ce cours, vous pouvez retrouver le livre "Apprenez programmer en Python" dumme auteur, en vente sur le Site du Zro, en librairie et dans les boutiques en ligne. Vous y trouverezce cours adapt au format papier avec une srie de chapitres indits.

    Plus d'informations

    Retour en hautRetour en haut

    Apprendre Python ! 6/285

    www.siteduzero.com

  • Partie 1 : Introduction Python

    Cette partie consiste en une introduction Python et ses principaux mcanismes. Vous y apprendrez :Ce qu'est exactement Python ;Comment installer Python ;Comprendre la syntaxe et les mcanismes de base de ce langage.

    Ne vous alarmez pas outre mesure si vous tes dj perdus dans le titre des sous-parties. J'ai promis que je commencerai de zro,et je tiendrai cette promesse, autant que faire se peut. Commencez donc par le commencement, et continuez dans cette voie, c'estgaranti sans douleur du moins sans douleur excessive .Retour en haut

    Qu'est-ce que Python ?Bonjour et bienvenue !

    Alors, vous avez dcid d'apprendre Python, et je ne peux que vous en fliciter. J'essayerai d'anticiper sur vos questions et de nelaisser personne en arrire. En fonction de votre niveau en informatique et en programmation, vous risquez d'ingrer une plus oumoins grande quantit d'informations. Cependant, et sauf si vous avez dj des connaissances avances dans ce langage, jevous conseille de suivre attentivement cette partie sans omettre un seul chapitre. L'heure n'est pas encore la slection.

    Et d'abord, c'est quoi Python ?

    Je ne m'avance pas trop, c'est une question assez facile deviner si vous n'avez jamais entendu parler de Python auparavant.

    Python est un langage de programmation, et pour bien commencer, je vais d'abord vous expliquer ce qu'est un langage deprogrammation. Je vais ensuite vous expliquer brivement l'histoire de Python, pour que vous sachiez au moins d'o a vient !Rassurez-vous, il n'y aura pas de QCM pour ce premier chapitre, mais encore une fois je vous conseille de ne pas passer ausuivant sans l'avoir lu.

    On attaque tout de suite !

    Partie 1 : Introduction Python 7/285

    www.siteduzero.com

  • Un langage de programmation ? Qu'est-ce que c'est ?La communication humaine

    Non, ceci n'est ni une explication biologique ni philosophique, ne partez pas ! Trs simplement, si vous arrivez comprendre ces suites de symboles tranges et dconcertants que sont les lettres del'alphabet, c'est parce que nous respectons une certaine convention, dans le langage, et dans l'criture. En franais, il y a desrgles de grammaire et d'orthographe, je ne vous apprends rien. Vous communiquez en connaissant, plus ou moinsconsciemment, ces rgles et en les appliquant plus ou moins bien, selon les cas.Cependant, ces rgles peuvent tre aisment contournes : personne ne peut prtendre connatre l'ensemble des rgles de lagrammaire et de l'orthographe franaise, et peu de gens s'en soucient. Aprs tout, mme si vous faites des fautes, les personnesavec qui vous communiquez pourront facilement vous comprendre.Quand on communique avec un ordinateur cependant, c'est trs diffrent.

    Mon ordinateur communique aussi !Eh oui, votre ordinateur communique sans cesse avec vous, et vous communiquez sans cesse avec lui. D'accord, il vous dit trsrarement qu'il a faim, que l't s'annonce caniculaire et que le dernier disque de ce groupe trs connu tait pleurer.Il n'y a rien de magique si, quand vous cliquez sur la petite croix en haut droite de l'application en cours, elle comprend qu'elledoit se fermer.

    Le langage machineEn fait, votre ordinateur se fonde aussi sur un langage pour communiquer avec vous ou avec lui-mme. Les oprations qu'unordinateur peut effectuer la base sont des plus classiques et consistent en l'addition de deux nombres, leur soustraction, leurmultiplication, leur division, entire ou non. Et pourtant, ces cinq oprations suffisent amplement faire tourner les logiciels desimulation les plus complexes, ou les jeux super-ralistes.Tous ces logiciels fonctionnent en gros de la mme faon :

    une suite d'instructions crites en langage machine compose le programme ;lors de l'excution du programme, ces instructions dcrivent l'ordinateur ce qu'il faut faire (l'ordinateur ne peut pas ledeviner ).

    Une liste d'instructions ? Qu'est-ce que c'est encore, a ?

    En schmatisant volontairement, une instruction pourrait demander au programme de se fermer si vous cliquez sur la croix enhaut droite de votre cran, ou de rester en tche de fond si tel est son bon plaisir. Toutefois, en langage machine, une telleaction demande elle seule un nombre assez important d'instructions.Mais bon, vous pouvez vous en douter, parler avec l'ordinateur en langage machine, qui ne comprend que le binaire, ce n'est nitrs enrichissant, ni trs pratique, et en tous cas pas trs marrant .On a donc invent des langages de programmation pour faciliter la communication avec l'ordinateur.

    Le langage binaire est uniquement constitu de 0 et de 1. 01000010011011110110111001101010011011110111010101110010 par exemple signifie Bonjour . Bref, autant vousdire que discuter avec un ordinateur en binaire peut tre long (surtout pour vous).

    Les langages de programmationLes langages de programmation sont des langages bien plus faciles comprendre pour nous, pauvres tres humains que noussommes. Le mcanisme reste le mme, mais le langage est bien plus comprhensible. Au lieu d'crire les instructions dans unesuite assez peu intelligible de 0 et de 1, les ordres donns l'ordinateur sont crits dans un langage , souvent en anglais, avecune syntaxe particulire qu'il est ncessaire de respecter. Mais avant que l'ordinateur puisse comprendre ce langage, celui-ci seratraduit pour lui en langage machine.En gros, le programmeur n'a qu' crire des lignes de code crites dans le langage qu'il a choisi, les tapes suivantes sontautomatises pour permettre l'ordinateur de les dcoder.

    Partie 1 : Introduction Python 8/285

    www.siteduzero.com

  • Il existe un grand nombre de langages de programmation, et Python en fait partie. Il n'est pas ncessaire pour le moment dedonner plus d'explications sur ces mcanismes trs schmatiss. Si vous n'avez pas russi comprendre les mots de vocabulaireet l'ensemble de ces explications, cela ne vous pnalisera pas pour la suite. Mais je trouvais intressant de donner ces prcisionsquant aux faons de communiquer avec son ordinateur.Retour en haut

    Partie 1 : Introduction Python 9/285

    www.siteduzero.com

  • Pour la petite histoirePython est un langage de programmation, dont la premire version est sortie en 1991. Cr par Guido van Rossum, il a voyag duMacintosh de son crateur travaillant cette poque au Centrum voor Wiskunde en Informatica, aux Pays-Bas, jusqu' se voirattribuer une organisation but non lucratif particulirement dvoue, la Python Software Foundation, cre en 2001. Ce langageporte ce nom directement driv de celui de la srie tlvise Monty Python .

    Un langage de programmation interprtEh oui, vous allez devoir patienter encore un peu, car j'ai deux ou trois choses vous expliquer encore, et je suis persuad qu'ilest important de savoir un minimum ces dtails qui peuvent sembler peu pratiques de prime abord.Python est un langage de programmation interprt, c'est--dire que les instructions que vous lui enverrez seront transcrites en langage machine au fur et mesure de leur lecture. D'autres langages (comme le C / C++) sont dits langages compils car,avant de pouvoir les excuter, un logiciel spcialis se charge de transformer le code du programme en langage machine. Onappelle cette tape la compilation . chaque modification du code, il faudra rappeler une tape de compilation.

    Les avantages d'un langage interprt sont sa simplicit (on ne passe pas par une tape de compilation avant d'excuter sonprogramme) et la portabilit (un langage tel que Python est cens marcher aussi bien sous Windows, Linux et Mac OS, et on nedevrait avoir effectuer aucun changement dans le code pour le passer d'un systme l'autre). Cela ne veut pas dire que leslangages compils ne sont pas portables, loin de l ! Mais des compilateurs diffrents doivent tre utiliss et certainesinstructions ne sont pas compatibles avec tous les systmes, voire se comportent diffremment.

    En contre-partie, un langage compil se rvlera bien plus rapide qu'un langage interprt (la traduction la vole de votreprogramme ralentit l'excution), bien que cette diffrence tende se faire de moins en moins sentir au fil des amliorations. Deplus, Python devra tre install sur le systme d'exploitation que vous utilisez pour que l'ordinateur puisse comprendre votrecode.

    Diffrentes versions de PythonLors de la cration de la Python Software Foundation, en 2001, et durant les annes qui ont suivi, le langage Python est passpar une suite de versions que l'on a englobes dans l'appellation Python 2.x (2.3, 2.5, 2.6). Depuis le 13 fvrier 2009, la version3.0.1 est disponible. Cette version casse la compatibilit ascendante qui prvalait lors des dernires versions.

    Compatibilit quoi ?

    Quand un langage de programmation est mis jour, les dveloppeurs se gardent bien de supprimer ou de trop modifierd'anciennes fonctionnalits. L'intrt est qu'un programme qui marche sous une certaine version marchera toujours avec lanouvelle version en date. Cependant, la Python Software Foundation, observant un bon nombre de fonctionnalits obsoltes,implmentes plusieurs fois a dcid de nettoyer tout le projet. Un programme qui tourne la perfection sous Python 2.x devradonc tre mis jour un minimum pour marcher de nouveau sous Python 3. C'est pourquoi je vais vous conseiller ultrieurementde tlcharger et d'installer la dernire version en date de Python. Je m'attarderai en effet sur les fonctionnalits de Python 3, etcertaines d'entre elles ne seront pas accessibles (ou pas sous le mme nom) dans les anciennes versions.

    Ceci tant pos, tous l'installation !Retour en haut

    Partie 1 : Introduction Python 10/285

    www.siteduzero.com

  • Installer PythonL'installation de Python est un jeu d'enfant, aussi bien sous Windows que sous les systmes Unix.

    Sous WindowsRendez-vous sur le site de Python :

    1. Cliquez sur le lien Download dans le menu principal de la page.2. Slectionnez la version de Python que vous souhaitez utiliser (je vous conseille la dernire en date).3. On vous propose un (ou plusieurs) lien(s) vers une version Windows, slectionnez celle qui conviendra votre

    processeur. Si vous avez un doute, tlchargez une version x86 .Si votre ordinateur vous signale qu'il ne peut excuter le programme, essayez une autre version de Python.

    4. Enregistrez puis excutez le fichier d'installation, et suivez les tapes, ce n'est ni trs long ni trs difficile.5. Une fois l'installation complte, vous pouvez vous rendre dans le menu Dmarrer > Tous les programmes.

    Python devrait tre visible dans cette liste. Nous verrons bientt comment le lancer, pas d'impatience

    Sous LinuxPython est pr-install sur la plupart des distributions Linux. Cependant, il est possible que vous n'ayez pas la dernire versionen date. Pour le vrifier, tapez dans un terminal la commande python -V . Cette commande vous retourne la version dePython actuellement installe sur votre systme. Il est trs probable que cette version soit 2.X , comme 2.6 ou 2.7, pour desraisons de compatibilit. Dans tous les cas, je vous conseille d'installer Python 3.X, la syntaxe est trs proche de Python 2.Xmais diffre quand mme

    Rendez-vous sur le site de Python, cliquez sur download, et tlchargez la version de Python (actuellement Python 3.2compressed source tarball (for Linux, Unix or OS X) ). Ouvrez un terminal, puis rendez-vous dans le dossier o se trouvel'archive :

    1. Dcompressez l'archive en tapant : tar -jxvf Python-3.2.tar.bz2 (cette commande est bien entendu changer en fonction de la version et du type de compression).

    2. Attendez quelques instants que la dcompression soit complte, puis rendez-vous dans le dossier cr dans lerpertoire courant (Python-3.2 dans mon cas).

    3. Excutez le script configure en tapant ./configure dans la console.4. Une fois que la configuration s'est droule, il n'y a plus qu' compiler en tapant make altinstall . Cette

    commande compilera