Python, de zéro Table des matières Préface Préface Licence de ce document Registre des éditions Introduction I. Introduction I-1. Pourquoi programmer en Python ? I-2. Caractéristiques principales I-3. Python 2 ou Python 3 ? Premiers pas II. Premiers pas II-1. Invoquer l’interpréteur II-2. Mode interactif II-3. Introduction aux fonctions II-4. Mode script II-5. Les commentaires II-6. La fonction « print » II-7. le point‑virgule II-8. l’exception Caractéristiques du langage III. Caractéristiques du langage III-1. la tabulation III-2. la ponctuation Introduction informelle à Python IV. Introduction informelle à Python IV-1. Les variables IV-1-a. Préambule IV-1-b. Le typage IV-1-c. Les annotations IV-2. Les opérateurs IV-2-a. Arithmétiques et logiques IV-2-b. Relationnels IV-2-c. Connecteurs IV-2-d. Priorités IV-3. Les chaînes de caractères IV-4. Les tuples IV-5. Les listes IV-6. Les ensembles IV-7. Les dictionnaires IV-8. True, False, None IV-9. Les mots clefs IV-10. Tout est objet IV-11. La mutabilité Les débuts de la programmation V. Les débuts de la programmation V-1. L’instruction « if » V-2. L’instruction « while » V-3. L’instruction « for » V-4. Les instructions « break » et « continue », et les clauses « else » au sein des boucles V-5. L’instruction « pass » V-6. Les instructions « do…while » et « switch…case » V-7. L’instruction « match » V-8. La notion d’expression V-9. Quelques outils la saisie clavier VI. la saisie clavier VI-1. Python 2 VI-2. Python 3 Formatage des chaines VII. Formatage des chaînes VII-1. Le formatage originel VII-2. La méthode « format() » VII-2-a. Pour formater une chaîne VII-2-b. Pour formater un entier VII-2-c. Pour formater un flottant VII-2-d. Remarque VII-3. La méthode « f-strings » VII-3-a. Pour formater une chaîne de caractères VII-3-b. Pour formater un entier VII-3-c. Pour formater un nombre à virgule flottante VII-3-d. Remarque Lencodage dune chaine VIII. L’encodage d’une chaîne VIII-1. La chaîne de base VIII-2. Le préfixe « u » VIII-3. Le préfixe « b » VIII-4. Le préfixe « r » VIII-5. Récapitulatifs Les fonctions IX. Les fonctions IX-1. Généralités IX-2. Valeur par défaut des paramètres IX-3. Les paramètres nommés IX-4. Verrouillage des méthodes de passage des arguments IX-5. Les annotations IX-6. Les paramètres supplémentaires facultatifs IX-7. Utilisation inverse IX-8. Détails de syntaxe IX-9. Fonctions anonymes IX-10. Les fonctions incluses IX-11. La récursivité IX-11-a. Le concept IX-11-b. Les inconvénients IX-11-c. Optimisation Les iterables X. Les iterables X-1. La notion d’« itérable » X-2. Les outils Python Les générateurs XI. Les générateurs XI-1. Introduction XI-2. Exemple XI-3. Différentes actions XI-4. Quelques précautions XI-5. Générateur d’un itérable La portée et la visibilité des variables XII. La portée et la visibilité des variables XII-1. La portée XII-2. La visibilité XII-2-a. Principes XII-2-b. Conséquences XII-3. La portée XII-4. Identité et hash d’une variable XII-4-a. Identité d’une variable XII-4-b. Hash d’une variable XII-5. De la bonne façon de copier les choses Les listes en intension XIII. Les listes en intension Les classes XIV. Les classes XIV-1. Préambule XIV-2. L’instanciation et les instances XIV-3. Les attributs XIV-4. Les méthodes XIV-5. La surcharge de méthodes XIV-6. Les attributs et méthodes privés XIV-6-a. Privatisation par Python XIV-6-b. Accès aux attributs privés XIV-6-c. Privatisation par convention Compléments sur les classes XV. Compléments sur les classes XV-1. L’héritage XV-2. L’héritage face à l’évolution XV-3. Les attributs et méthodes statiques XV-3-a. Attribut statique XV-3-b. Méthode statique XV-4. La fonction « classmethod() » XV-5. Gestion interne des attributs XV-5-a. L’attribut __dict__ XV-5-b. La méthode __delattr__() XV-5-c. La méthode __getattr__() XV-5-d. La méthode __getattribute__() XV-5-e. La méthode __setattr__() XV-5-f. La méthode __new__() XV-5-g. La méthode __init_subclass__() XV-5-h. L’attribut __slots__ XV-6. Trucs et astuces divers sur les classes XV-6-a. Rendre une classe « callable »