 |
Ressources Python
Vous trouverez ci-dessous :
- une version librement téléchargeable de l'ouvrage "Apprendre à programmer avec Python"
de Gérard Swinnen, troisième édition, anciennement publié aux éditions O'Reilly et dorénavant
ré-édité chez Eyrolles
(ISBN 978-2-212-12474-3 )
- le code source des exemples et exercices proposés dans le livre
- Les diapositives et le code source des exemples présentés par G.Swinnen au colloque "Libr'East of Paris"
(IUT de Marne-la-vallée) les 23 & 24 Avril 2004.
- Les diapositives de la conférence sur Python présentée à l'IUT de Vannes (Université de Bretagne Sud), le 15 Avril 2005.
- La traduction du livre en hongrois (miroir du site web du traducteur).
|
|
Note : La version proposée ici correspond à en tous points à la seconde édition de l'ouvrage publiée par O'Reilly en Mai 2005 (410 pages). Elle est destinée à tous ceux qui veulent découvrir la programmation et le
langage Python sans devoir investir des sommes importantes (en particulier les étudiants).
Si vous trouvez ce texte intéressant, et si vous en avez les moyens, nous vous suggérons cependant d'acheter la version imprimée : ainsi vous disposerez d'un vrai livre très bien réalisé, et vous supporterez une maison d'édition qui s'efforce de publier des ouvrages
techniques de haute qualité (qu'il faut renouveler souvent et qui ne feront donc probablement jamais de
gros tirages), qui défend le logiciel libre, et assume même le risque (comme vous le constatez ici) d'accepter la
coëxistence d'une version concurrente librement téléchargeable pour certains de ses produits.
La nouvelle édition publiée désormais par la maison Eyrolles en diffère peu : afin d'octroyer un léger avantage
aux acheteurs de la version imprimée, nous y avons ajouté la présentation détaillée de la norme Unicode
ainsi que le support de son encodage Utf-8 dans tous les exemples et exercices.
*** Nouveau : version PDF adaptée à la consultation en ligne ***
Grâce à l'amabilité de Sébastien Wilmet, qui s'est donné la peine d'indexer tout l'ouvrage et de
l'adapter à un autre style de mise en page, avec une police de caractères différente convenant mieux pour
une lecture à l'écran, vous pouvez désormais plus aisément consulter ce cours "en ligne", en profitant d'une
table des matières munie de liens cliquables pour retrouver rapidement le sujet qui vous intéresse.
Merci infiniment, Sébastien !
*** Nouveau : Traduction hongroise disponible ! ***
L'intérêt pour ce merveilleux langage qu'est Python ne cesse d'augmenter un peu partout dans
le monde, en particulier lorsqu'il s'agit d'apprendre les rudiments de la programmation.
Nous venons d'en recevoir une nouvelle preuve avec l'annonce de la parution d'une première
traduction de notre ouvrage. Grâce à l'excellent travail
de Péter Daróczy, physicien à Debrecen, il existe en effet dorénavant une version hongroise
complète de ce texte (toujours librement téléchargeable : voir les liens en bas de cette page).
Merci infiniment, Péter !
|
Cours de programmation Python
Conçu à l'origine pour les élèves de l'enseignement
secondaire belge, ce cours expérimental s'efforce de présenter l'apprentissage
de la programmation sous une forme attrayante, avec de nombreux
exemples et exercices graphiques.
Distribué de manière tout à fait classique en librairie, il vous est
également proposé ci-dessous en téléchargement gratuit,
aux termes d'un accord signé avec l'éditeur O'Reilly.
Droits de copie de cette version : GNU Free Documentation License.
|
Table des matières (Version de Mai 2005)
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 : organisation du cours
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.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
Chapitre 4 : Instructions répétitives.
4.1 Ré-affectation
4.2 Répétitions en boucle : l'instruction while
4.3 Elaboration de tables
4.4 Construction d'une suite mathématique
4.5 Premiers scripts (ou : Comment consever nos programmes ?)
Chapitre 5 : Principaux types de données
5.1 Les données numériques
5.1.1 Les type "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
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
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 Typage des paramètres
7.6 Valeurs par défaut pour les paramètres
7.7 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
8.3.2 Exemple graphique : calculatrice minimaliste
8.3.3 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 Ecriture 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 Les chaînes sont des séquences non modifiables
10.1.5 Les chaînes sont comparables
10.1.6 Classement des caractères
10.1.7 Les chaînes sont des objets
10.1.8 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 et 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é construit par dérivation
13.4 "Curseurs" : un widget composite
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
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 - Révision
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
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()
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.6 Installation des Python méga-widgets
19.7 Installation de Gadfly (système de bases de données)
19.9 Solutions aux exercices
19.10 GNU Free Documentation License
Téléchargements
Cliquez ici pour télécharger le cours complet (fichier PDF - version de Juin 2006)
Cliquez sur ce lien en utilisant l'option "Enregistrer la cible du lien sous ..."
de votre navigateur pour télécharger le texte source de référence (fichier .sxw
(format OpenOffice.org 1.1) - version de Juin 2006)
Cliquez ici pour télécharger le cours complet adapté spécifiquement par
Sébastien Wilmet pour une consultation plus aisée en ligne (fichier PDF avec hyperliens
- version de Mai 2005)
Code source des exemples et solutions des exercices proposés dans l'ouvrage (archive tgz)
Diapositives de la présentation de
Python proposée au colloque "Libr'East of Paris" (IUT de Marne-la-vallée, 23/4/2004)
Diapositives de la conférence sur Python présentée à l'IUT de Vannes (Université de Bretagne Sud), le 15/4/2005)
Exemples de code source utilisés dans la présentation ci-dessus (archive tgz)
Traductions hongroises du cours :
Lien vers le site hongrois
Texte intégral au format .sxw (OpenOffice.org)
Texte intégral au format .pdf (Acrobat Reader)
Exemples de programmes de simulation scientifique réalisés par l'auteur à l'aide de Python :
Voltasim : simulation de circuits électriques
Palyno : Étude des climats du passé par l'analyse de pollens fossiles
Virtval : Étude des effets des activités humaines sur la qualité de l'eau
Exemple d'application web de gestion :
BulréZo : Système de gestion de bulletins scolaires via l'internet
Pour contacter l'auteur :
Gérard Swinnen : gswinnen(arobase)pythomium.net
(Veuillez remplacer (arobase) par son symbole @ : dispositif anti-spam)
Autres ressources documentaires concernant Python, en langue française :
Support de cours avec diapositives : Notes et Travaux pratiques proposés par Robert Cordeau,
professeur de programmation et d'algorithmique à l'IUT d'Orsay (Université de Paris-Sud 11)
Exercices et questions d'examen concernant Python :
exemples proposés par Emmanuel Viennet, professeur enseignant l'algorithmique et
le langage Python à l'université de Paris 13.
Python Blanc Bleu Belge :
ce site attrayant propose divers tutoriels de Python pour débutants, consultables en ligne.
Site d'Olivier Berger : site français proposant des liens vers un grand nombre de ressources Pyhon en langue française
Sites Python essentiels :
Site officiel de Python : Téléchargement libre des différentes versions de Python, documentation originale, textes de référence, multitude de liens vers d'autres sites ...
J Python (Une version de Python produisant du bytecode Java)
Visual Python (module permettant la programmation d'objets 3D)
Vaults of Parnassus : Site de référence donnant accès à un grand nombre d'applications libres écrites en Python