Apprendre à programmer avec Python par Date de publication : 24/03/2008 Dernière mise à jour : 29/04/2008 Adaptation libre de "How to think like a computer scientist" de Allen B. Downey, Jeffrey Elkner et Chris Meyers Apprendre à programmer avec Python par Prélude Introduction Choix d'un premier langage de programmation Présentation du langage Python, par Stéfane Fermigier. Plusieurs versions différentes ? Distribution de Python - Bibliographie Pour le professeur qui souhaite utiliser cet ouvrage comme support de cours Exemples du livre Remerciements Chapitre 1 : Penser comme un programmeur 1.1 - La démarche du programmeur 1.2 - Langage machine, langage de programmation 1.3 - Compilation et interprétation 1.4 - Mise au point d'un programme - Recherche des erreurs (« debug ») 1.4.1 - Erreurs de syntaxe 1.4.2 - Erreurs sémantiques 1.4.3 - Erreurs à l'exécution 1.5 - Recherche des erreurs et expérimentation 1.6 - Langages naturels et langages formels Chapitre 2 : Premiers pas 2.1 - Calculer avec Python 2.2 - Données et variables 2.3 - Noms de variables et mots réservés 2.4 - Affectation (ou assignation) 2.5 - Afficher la valeur d'une variable 2.6 - Typage des variables 2.7 - Affectations multiples 2.8 - Opérateurs et expressions 2.9 - Priorité des opérations 2.10 - Composition Chapitre 3 : Contrôle du flux d'instructions 3.1 - Séquence d'instructions 3.2 - Sélection ou exécution conditionnelle 3.3 - Opérateurs de comparaison 3.4 - Instructions composées # Blocs d'instructions 3.5 - Instructions imbriquées 3.6 - Quelques règles de syntaxe Python 3.6.1 - Les limites des instructions et des blocs sont définies par la mise en page 3.6.2 - Instruction composée = En-tête , double point , bloc d'instructions indenté 3.6.3 - Les espaces et les commentaires sont normalement ignorés Chapitre 4 : Instructions répétitives. 4.1 - Ré-affectation 4.2 - Répétitions en boucle - l'instruction while 4.3 - Élaboration de tables 4.4 - Construction d'une suite mathématique 4.5 - Premiers scripts, ou : Comment conserver nos programmes ? 4.6 - Remarque concernant les caractères accentués et spéciaux : Chapitre 5 : Principaux types de données 5.1 - Les données numériques 5.1.1 - Les types « integer » et « long » 5.1.2 - Le type « float » 5.2 - Les données alphanumériques 5.2.1 - Le type « string » (chaîne de caractères) 5.2.2 - Accès aux caractères individuels d'une chaîne - 2 - Ce document est issu de http://www.developpez.com et reste la propriété exclusive de son auteur. La copie, modification et/ou distribution par quelque moyen que ce soit est soumise à l'obtention préalable de l'autorisation de l'auteur. http://python.developpez.com/cours/TutoSwinnen/ Apprendre à programmer avec Python par 5.2.3 - Opérations élémentaires sur les chaînes 5.3 - Les listes (première approche) Chapitre 6 : Fonctions prédéfinies 6.1 - Interaction avec l'utilisateur : la fonction input() 6.2 - Importer un module de fonctions 6.3 - Un peu de détente avec le module turtle 6.4 - Véracité/fausseté d'une expression 6.5 - Révision 6.5.1 - Contrôle du flux - Utilisation d'une liste simple 6.5.2 - Boucle while - Instructions imbriquées Chapitre 7 : Fonctions originales 7.1 - Définir une fonction 7.1.1 - Fonction simple sans paramètres 7.1.2 - Fonction avec paramètre 7.1.3 - Utilisation d'une variable comme argument 7.1.4 - Fonction avec plusieurs paramètres 7.2 - Variables locales, variables globales 7.3 - « Vraies » fonctions et procédures 7.4 - Utilisation des fonctions dans un script 7.5 - Modules de fonctions 7.6 - Typage des paramètres 7.7 - Valeurs par défaut pour les paramètres 7.8 - Arguments avec étiquettes Chapitre 8 : Utilisation de fenêtres et de graphismes 8.1 - Interfaces graphiques (GUI) 8.2 - Premiers pas avec Tkinter 8.3 - Programmes pilotés par des événements 8.3.1 - Exemple graphique : tracé de lignes dans un canevas 8.3.2 - Exemple graphique : deux dessins alternés 8.3.3 - Exemple graphique : calculatrice minimaliste 8.3.4 - Exemple graphique : détection et positionnement d'un clic de souris 8.4 - Les classes de widgets Tkinter 8.5 - Utilisation de la méthode grid() pour contrôler la disposition des widgets 8.6 - Composition d'instructions pour écrire un code plus compact 8.7 - Modification des propriétés d'un objet - Animation 8.8 - Animation automatique - Récursivité Chapitre 9 : Les fichiers 9.1 - Utilité des fichiers 9.2 - Travailler avec des fichiers 9.3 - Noms de fichiers - Répertoire courant 9.4 - Les deux formes d'importation 9.5 - Écriture séquentielle dans un fichier 9.6 - Lecture séquentielle d'un fichier 9.7 - L'instruction break pour sortir d'une boucle 9.8 - Fichiers texte 9.9 - Enregistrement et restitution de variables diverses 9.10 - Gestion des exceptions. Les instructions try # except - else Chapitre 10 : Approfondir les structures de données 10.1 - Le point sur les chaînes de caractères 10.1.1 - Concaténation, Répétition 10.1.2 - Indiçage, extraction, longueur 10.1.3 - Parcours d'une séquence. L'instruction for ... in ... 10.1.4 - Appartenance d'un élément à une séquence. L'instruction in utilisée seule 10.1.5 - Les chaînes sont des séquences non modifiables - 3 - Ce document est issu de http://www.developpez.com et reste la propriété exclusive de son auteur. La copie, modification et/ou distribution par quelque moyen que ce soit est soumise à l'obtention préalable de l'autorisation de l'auteur. http://python.developpez.com/cours/TutoSwinnen/ Apprendre à programmer avec Python par 10.1.6 - Les chaînes sont comparables 10.1.7 - Classement des caractères 10.1.8 - Les chaînes sont des objets 10.1.9 - Formatage des chaînes de caractères 10.2 - Le point sur les listes 10.2.1 - Définition d'une liste # Accès à ses éléments 10.2.2 - Les listes sont modifiables 10.2.3 - Les listes sont des objets 10.2.4 - Techniques de « slicing » avancé pour modifier une liste 10.2.5 - Création d'une liste de nombres à l'aide de la fonction range() 10.2.6 - Parcours d'une liste à l'aide de for, range() et len() 10.2.7 - Une conséquence du typage dynamique 10.2.8 - Opérations sur les listes 10.2.9 - Test d'appartenance 10.2.10 - Copie d'une liste 10.2.11 - Nombres aléatoires - Histogrammes 10.3 - Les tuples 10.4 - Les dictionnaires 10.4.1 - Création d'un dictionnaire 10.4.2 - Opérations sur les dictionnaires 10.4.3 - Les dictionnaires sont des objets 10.4.4 - Parcours d'un dictionnaire 10.4.5 - Les clés ne sont pas nécessairement des chaînes de caractères 10.4.6 - Les dictionnaires ne sont pas des séquences 10.4.7 - Construction d'un histogramme à l'aide d'un dictionnaire 10.4.8 - Contrôle du flux d'exécution à l'aide d'un dictionnaire Chapitre 11 : Classes, objets, attributs 11.1 - Utilité des classes 11.2 - Définition d'une classe élémentaire 11.3 - Attributs (ou variables) d'instance 11.4 - Passage d'objets comme arguments lors de l'appel d'une fonction 11.5 - Similitude et unicité 11.6 - Objets composés d'objets 11.7 - Objets comme valeurs de retour d'une fonction 11.8 - Les objets sont modifiables Chapitre 12 : Classes, méthodes, héritage 12.1 - Définition d'une méthode 12.2 - La méthode « constructeur » 12.3 - Espaces de noms des classes et instances 12.4 - Héritage 12.5 - Héritage et polymorphisme 12.6 - Modules contenant des bibliothèques de classes Chapitre 13 : Classes & Interfaces graphiques 13.1 - « Code des couleurs » : un petit projet bien encapsulé 13.2 - « Petit train » : héritage, échange d'informations entre classes 13.3 - « OscilloGraphe » : un widget personnalisé 13.4 - « Curseurs » : un widget composite 13.4.1 - Présentation du widget « Scale » 13.4.2 - Construction d'un panneau de contrôle à trois curseurs 13.5 - Intégration de widgets composites dans une application synthèse Chapitre 14 : Et pour quelques widgets de plus ... 14.1 - Les « boutons radio » 14.2 - Utilisation des cadres (frames) pour la composition d'une fenêtre 14.3 - Comment déplacer des dessins à l'aide de la souris - 4 - Ce document est issu de http://www.developpez.com et reste la propriété exclusive de son auteur. La copie, modification et/ou distribution par quelque moyen que ce soit est soumise à l'obtention préalable de l'autorisation de l'auteur. http://python.developpez.com/cours/TutoSwinnen/ Apprendre à programmer avec Python par 14.4 - Python Mega Widgets 14.4.1 - « Combo Box » 14.4.2 - Remarque concernant l'entrée de caractères accentués 14.4.3 - « Scrolled Text » 14.4.4 - « Scrolled Canvas » 14.4.5 - Barres d'outils avec bulles d'aide - expressions lambda 14.5 - Fenêtres avec menus 14.5.1 - Première ébauche du programme : 14.5.2 - Ajout de la rubrique « Musiciens » 14.5.3 - Ajout de la rubrique « Peintres » : 14.5.4 - Ajout de la rubrique « Options » : Chapitre 15 : Analyse de programmes concrets 15.1 - Jeu des bombardes 15.1.1 - Prototypage d'une classe « Canon » 15.1.2 - Ajout de méthodes au prototype 15.1.3 - Développement de l'application 15.1.4 - Développements complémentaires 15.2 - Jeu de Ping 15.2.1 - Principe 15.2.2 - Programmation Chapitre 16 : Gestion d'une base de données 16.1 - Les bases de données 16.1.1 - SGBDR - Le modèle client/serveur 16.1.2 - Le langage SQL - Gadfly 16.2 - Mise en oeuvre d'une base de données simple avec Gadfly 16.2.1 - Création de la base de données 16.2.2 - Connexion à une base de données existante 16.2.3 - Recherches dans une base de données 16.2.4 - La requête select 16.3 - Ébauche d'un logiciel client pour MySQL 16.3.1 - Décrire la base de données dans un dictionnaire d'application 16.3.2 - Définir une classe d'objets-interfaces 16.3.3 - Construire un générateur de formulaires 16.3.4 - Le corps de l'application Chapitre 17 : Applications web 17.1 - Pages web interactives 17.2 - L'interface CGI 17.2.1 - Une interaction CGI rudimentaire 17.2.2 - Un formulaire HTML pour l'acquisition des données 17.2.3 - Un script CGI pour le traitement des données 17.3 - Un serveur web en pur Python ! 17.3.1 - Installation de Karrigell 17.3.2 - Démarrage du serveur : 17.3.3 - Ébauche de site web 17.3.4 - Prise en charge des sessions 17.3.5 - Autres développements Chapitre 18 : Communications à travers un réseau 18.1 - Les sockets 18.2 - Construction d'un serveur élémentaire 18.3 - Construction d'un client rudimentaire 18.4 - Gestion de plusieurs tâches en parallèle à l'aide des threads 18.5 - Client gérant l'émission et la réception simultanées 18.6 - Serveur gérant les connexions de plusieurs clients en parallèle 18.7 - Jeu des bombardes, version réseau - 5 - Ce document est issu de http://www.developpez.com et reste la propriété exclusive de son auteur. La copie, modification et/ou distribution par quelque moyen que ce soit est soumise à l'obtention préalable de l'autorisation de l'auteur. http://python.developpez.com/cours/TutoSwinnen/ Apprendre à programmer avec Python par 18.7.1 - Programme serveur : vue d'ensemble 18.7.2 - Protocole de communication 18.7.3 - Programme serveur : première partie 18.7.4 - Synchronisation de threads concurrents à l'aide de « verrous » (thread locks) 18.7.5 - Programme serveur : suite et fin 18.7.6 - Programme client 18.8 - Utilisation de threads pour optimiser les animations 18.8.1 - Temporisation des animations à l'aide de after() 18.8.2 - Temporisation des animations à l'aide de time.sleep() 18.8.3 - Exemple concret Chapitre 19 : Annexes 19.1 - Installation de Python 19.2 - Sous Windows 19.3 - Sous Linux 19.4 - Sous MacOS 19.5 - Installation de SciTE (Scintilla Text Editor) 19.5.1 - Installation sous Linux : 19.5.2 - Installation sous Windows : 19.5.3 - Pour les deux versions : 19.6 - Installation des Python méga-widgets 19.7 - Installation de Gadfly (système de bases de données) 19.7.1 - Sous Windows : 19.7.2 - Sous Linux : 19.9 - Solutions aux exercices 19.10 - Annexes extraites de « How to think like a computer scientist » 19.10.1 - Contributor list 19.10.2 - Preface 19.10.3 - GNU Free Documentation License 19.10.3.a.1 - Applicability and Definitions 19.10.3.a.2 - Verbatim Copying 19.10.3.a.3 - Copying in Quantity 19.10.3.a.4 - Modifications 19.10.3.a.5 - Combining Documents 19.10.3.a.6 - Collections of Documents 19.10.3.a.7 - Aggregation with Independent Works 19.10.3.a.8 - Translation 19.10.3.a.9 - Termination 19.10.3.a.10 - Future Revisions of This License Téléchargement - 6 - Ce document est issu de http://www.developpez.com et reste la propriété exclusive de son auteur. La copie, modification et/ou distribution par quelque moyen que ce soit est soumise à l'obtention préalable de l'autorisation de l'auteur. http://python.developpez.com/cours/TutoSwinnen/ Apprendre à programmer avec Python par Prélude - 7 - Ce document est issu de http://www.developpez.com et reste la propriété exclusive de son auteur. La copie, modification et/ou distribution par quelque moyen que ce soit est soumise à l'obtention préalable de l'autorisation de l'auteur. http://python.developpez.com/cours/TutoSwinnen/ Apprendre à programmer avec Python par - 8 - Ce document est issu de http://www.developpez.com et reste la propriété exclusive de son auteur. La copie, modification et/ou distribution par quelque moyen que ce soit est soumise à l'obtention préalable de l'autorisation de l'auteur. http://python.developpez.com/cours/TutoSwinnen/ Apprendre à programmer avec Python par Grace Hopper, inventeur du compilateur : « Pour moi, la programmation est plus qu'un art appliqué important. C'est aussi une ambitieuse quête menée dans les tréfonds de la connaissance. » À Maximilien, Élise, Lucille, Augustin et Alexane. Colophon Choisie délibérément hors propos, l'illustration de couverture est un dessin réalisé par l'auteur à la mine de graphite sur papier Canson en 1987, d'après une photographie ancienne. Il représente le yacht de course de 106 tonnes Valdora participant à une régate dans la rade de Cowes en 1923. Construit vingt ans plus tôt, et d'abord gréé en yawl, Valdora remporta plusieurs trophées avant d'être regréé en ketch en 1912 avec la voilure de 516 m² que l'on voit sur le dessin. Ce superbe voilier, très estimé par ses équipages pour son bon comportement à la mer, a navigué pendant près d'un demi-siècle. Apprendre à programmer avec Python par Gérard Swinnen professeur et conseiller pédagogique t te Institut S Jean Berchmans - S Marie 59, rue des Wallons - B4000 Liège Ces notes peuvent être téléchargées librement à partir du site : http://www.ulg.ac.be/cifen/inforef/swi Une part de ce texte est inspirée de : - 9 - Ce document est issu de http://www.developpez.com et reste la propriété exclusive de son auteur. La copie, modification et/ou distribution par quelque moyen que ce soit est soumise à l'obtention préalable de l'autorisation de l'auteur. http://python.developpez.com/cours/TutoSwinnen/ Apprendre à programmer avec Python par How to think like a computer scientist de Allen B. Downey, Jeffrey Elkner & Chris Meyers disponible sur : http://rocky.wellesley.edu/downrey/ost ou : http://www.ibiblio.org/obp Copyright (C) 2000-2005 Gérard Swinnen Les notes qui suivent sont distribuées suivant les termes de la Licence de Documentation Libre GNU (GNU Free Documentation License, version 1.1) de la Free Software Foundation. Cela signifie que vous pouvez copier, modifier et redistribuer ces notes tout à fait librement, pour autant que vous respectiez un certain nombre de règles qui sont précisées dans cette licence, dont le texte complet peut être consulté dans l'annexe intitulée « GNU Free Documentation licence », page 361. Pour l'essentiel, sachez que vous ne pouvez pas vous approprier ce texte pour le redistribuer ensuite (modifié ou non) en définissant vous-même d'autres droits de copie. Le document que vous redistribuez, modifié ou non, doit obligatoirement inclure intégralement le texte de la licence citée ci-dessus, le présent avis, l'introduction qui suit, ainsi que la section Preface du texte original américain (voir annexes). L'accès à ces notes doit rester libre pour tout le monde. Vous êtes autorisé à demander une contribution financière à ceux à qui vous redistribuez ces notes, mais la somme demandée ne peut concerner que les frais de reproduction. Vous ne pouvez pas redistribuer ces notes en exigeant pour vous-même des droits d'auteur, ni limiter les droits de reproduction des copies que vous distribuez. La diffusion commerciale de ce texte en librairie, sous la forme classique d'un manuel imprimé, est réservée exclusivement à la maison d'édition O'Reilly (Paris). Ces notes sont publiées dans l'espoir qu'elles seront utiles, mais sans aucune garantie. - 10 - Ce document est issu de http://www.developpez.com et reste la propriété exclusive de son auteur. La copie, modification et/ou distribution par quelque moyen que ce soit est soumise à l'obtention préalable de l'autorisation de l'auteur. http://python.developpez.com/cours/TutoSwinnen/
Description: