Python. Apprentissage Actif

PAA : livre en gestation au bord de mer pendant deux ans, puis né aux Éditions Ellipses en mars 2020. Un apprentissage opérationnel de Python, avec une présentation du langage suivie d'exercices (corrigés) de programmation.
Introduction et table des matières du livre.
• IDE : l'environnement de programmation intégré Anaconda est vivement conseillé mais non obligatoire. Grands débutants : commencez avec IDLE - simple et suffisant - puis passez à Spyder ou Jupyter (ou autre) ensuite (lire le chapitre 1 du livre).
• Exercices : algorithmique de base, graphisme, objets et classes, analyse syntaxique (Lex-Yacc), Web, Processing.py, moteur physique (Chipmunk), IA (génétique, neurones), audio.
• Solutions : les fichiers .py contiennent du texte Python usuel et sont exécutables par un IDE classique (IDLE, Spyder, Emacs, Pycharm, Visual Studio, etc) mais les fichiers .ipynb, au format JSON, sont destinés à être exécutés dans un navigateur Web avec Jupyter.

Quelques compléments sont disponibles :
- balle_tortue.zip qui explique comment réaliser l'animation de la balle qui tombe à la verticale en Python pur, avec le seul module turtle et en gérant manuellement le rafraîchissement d'écran.
- liste_append.pdf car la section sur la méthode .append s'est évaporée du §5.2 (!) à la mise en page finale.
- Une section pour les profs de lycées et leurs élèves (avec Mémentos).

FICHIERS SOLUTIONS POUR LES 137 EXERCICES DU GROS CHAP. 11

Chaque exercice du livre contient (en général au début) le nom d'un ou plusieurs fichier(s) utile(s) pour la solution (ex: exo_expr.py, bang.html, ...), ou le nom d'un dossier de sketch pour Processing (ex: waveplayer, ...). Pour les récupérer tous, téléchargez le fichier src.zip (8 Mo).

FICHIERS D'EXEMPLES POUR LA PREMIÈRE PARTIE

Les fichiers sans extension sont des répertoires. La référence 2.20 signifie chapitre 2, section 20. Les exercices sont les sections du gros chapitre 11 (alias Vladivostok, ne me demandez pas pourquoi). Les fichiers xxx.py contiennent du texte Python, l'extension .ipynb désignant quant à elle un fichier au format JSON destiné à être ouvert dans Jupyter (lire le chap. 1).

Les fichiers sont au format UTF-8 (Unicode, réglez l'encodage de votre navigateur si vous avez des problèmes avec les accents, et tant pis pour l'ipad). Il est déconseillé (comme d'hab) de procéder par copier-coller pour transférer un texte sur le navigateur dans un éditeur de programmes...


Section Nom Fichier(s)
2 Variables, nombres et fonctions
2.16Fonction, paramètres et variables locales section_2_16.py
2.17Qu'est-ce qu’une variable globale ? section_2_17.py
2.18Les différentes formes de paramètres section_2_18.py
2.19Les arguments optionnels de la fonction print section_2_19.py
2.20Les lambda-expressions section_2_20.py
2.21Comment documenter une fonction ? section_2_21.py
2.22Quelle est la différence entre fonction et méthode ? section_2_22.py
2.23Qu'est-ce qu'une fonction récursive ? section_2_23.py,   code_trace.py
2.24La boucle while section_2_24.py
2.25La boucle for section_2_25.py
2.26Comment interrompre brutalement une boucle ? section_2_26.py
2.27Le calcul d’une somme en compréhension section_2_27.py
2.28La complexité d’un calcul section_2_28.py
3Traitement du texte : les bases
3.1Les caractères Unicode section_3_1.py
3.2Les textes sont des chaînes de caractères section_3_2.py
3.3Comment programmer avec des chaînes ? section_3_3.py
3.4Les chaînes formatées section_3_4.py
3.5Une chaîne peut-elle contenir du code Python ? section_3_5.py
4Dessiner turtle_init.py,   turtle.cfg
4.1Le graphisme de la tortue section_4_1.py,   section_4_1.ipynb
4.2Le système Processing.py section__4_2_processing.zip
4.3Stéganographie avec le module Pillow section_4_3.py,   lena.png
5Les collections d'objets
5.2Les listes sont des séquences mutables section_5_2.py
5.3Les constructions fonctionnelles de listes section_5_3.py
5.4Déstructuration d'un objet itérable section_5_4.py
5.5Suppression d’objets avec del section_5_5.py
5.6Listes et partage de mémoire section_5_6.py
5.7Les ensembles section_5_7.py
5.8Les dictionnaires section_5_8.py
5.9Gestion des erreurs : les exceptions section_5_9.py
6Les entrées-sorties
6.1Le système de fichiers et le module os section_6_1.py
6.2Ecriture dans un fichier texte sur disque (en sortie) section_6_2.py
6.3Lecture d'un fichier texte sur disque (en entrée) section_6_3.py
6.4Des fichiers en mémoire centrale section_6_4.py
6.5Exécution d'un script Python au terminal section_6_5.py,   defs,   projet.py,   foo.py
7 Les objets et les classes
7.1_2_3Définition d'une nouvelle classe d'objets section_7_1_2_3.py
7.4Boucle for et méthodes spéciales : les itérateurs section_7_4.py
7.5Les générateurs section_7_5.py
7.6Les objets soft section_7_6.py
7.7La hiérarchie des classes section_7_7.py
7.8Les classes abstraites section_7_8.py
7.9Qu'est-ce qu'un décorateur ? section_7_9.py
8Traitement avancé du texte
8.1Expressions régulières : le module re section_8_1.py
8.2Analyse lexicale avec l'outil Lex section_8_2.py,   code_lex.py
8.3Analyse syntaxique avec l'outil Yacc section_8_3.py,   code_yacc.py
8.4Recherche de texte dans une page Web : requests section_8_4.py
9Les interfaces graphiques (GUI)
9.1.2La fenêtre du programme section_9_1_2.py
9.1.3Dessiner avec les classes Canvas et Button section_9_1_3.py
9.1.4L’interface graphique comme sous-classe de Tk section_9_1_4.py
9.1.5Les options du gestionnaire pack section_9_1_5.py
9.1.6Gestion des évènements souris et clavier section_9_1_6.py
9.1.7Variables de contrôle section_9_1_7.py
9.1.8Compléments sur les évènements souris section_9_1_8.py,   mouse_events.py
9.1.9Animation en style MVC avec tkinter section_9_1_9.py
9.1.10La tortue dans une interface graphique section_9_1_10.py
9.2Programmer une animation avec pyglet section_9_2.py,   balle.png