Support de cours
Formation
Continue
Avril 2014
ENSTA Bretagne
2, rue François Verny
29806 BREST cedex
FRANCE
Tel +33 (0)2 98 34 88 00
www.ensta-bretagne.fr
Python
de la calculatrice à la programmation
structurée
Arnaud Coatanhay et Christophe Osswald
1. Python : langage informatique 5
2. Une calculatrice polyvalente 11
3. Structures algorithmiques 50
4. Bibliothèques 74
5. Langage objet 87
6. Pour aller plus loin 96
Index 105
Bibliographie 109
Table des matières
Le Python, c’est bon 4
Remerciements .............................. 4
1 Python : quelle place parmi les langages informatiques 5
1.1 Histoire du langage ......................... 5
1.2 Caractéristiques du langage .................... 6
1.3 Python et les autres langages ................... 6
1.4 Développer avec Python(x,y) ................... 7
1.5 Développer sans Python(x,y) ................... 9
2 Une calculatrice polyvalente 11
2.1 Manipuler des nombres ....................... 11
2.2 La bibliothèque Numpy ...................... 17
2.3 Définition des matrices ....................... 21
2.4 Manipulation des matrices ..................... 25
2.5 Tracer des courbes ......................... 33
3 Structures algorithmiques 50
3.1 Types de données dynamiques ................... 51
3.2 Boucles et conditionnelles ..................... 53
3.3 Définition de fonction ....................... 55
3.4 Lancement d’un programme .................... 58
3.5 Algorithmes de tri ......................... 60
3.6 Modules ............................... 68
3.7 Simulations numériques ...................... 69
4 Bibliothèques de haut niveau 74
4.1 Gestion du temps par time .................... 74
4.2 Utilisation des fichiers en mode texte ............... 74
4.3 PIL : traitement d’image ...................... 75
4.4 Sympy ................................ 82
5 Langage objet 87
5.1 Variables d’instance ........................ 88
5.2 Méthodes .............................. 88
2
5.3 Constructeur ............................ 88
5.4 Destructeur : ramasse-miette ................... 89
5.5 Surcharge d’opérateur ....................... 90
5.6 Documention et interrogation ................... 90
5.7 Héritage ............................... 91
5.8 Exemple : géométrie par les objets ................ 92
6 Pour aller plus loin 96
6.1 Analyse de texte par expressions régulières ........... 96
6.2 Interrogation du web et format HTML .............. 97
6.3 Interaction avec le système d’exploitation ............ 98
6.4 Utilisation de fichiers par pickle ................. 98
6.5 Bases de données .......................... 99
6.6 Passage de Python 2.x à Python 3.x ...............100
Index 105
Bibliographie 109
3
Le Python, c’est bon
Sommaire
Remerciements 4
Cefascicule s’adresse à des scientifiques – avec une certaine aisance
en mathématiques – plus qu’à des développeurs – qui connaîtraient
déjà d’autres langages que Python. C’est pourquoi le second chapitre
traite de la représentation des nombres en Python comme des matrices par
numpy et va jusqu’au tracé des fonctions par une bibliothèque de haut niveau,
matplotlib.
Il est construit pour suivre sensiblement le même ordre que les quatre
demies journées du stage de formation : le troisième chapitre fait passer de la
calculatrice à la programmation, et le quatrième présente des fonctionnalités
de Python de haut niveau qui seront utilisées dans le cadre du stage
Le cinquième chapitre permet d’entrer dans la programmation objet, in-
coutournable lorsque le projet dépasse le millier de lignes. Le sixième présente
des fonctionnalités qui sont utiles dans de nombreuses situations, mais un peu
moins durant ces deux jours.
Remerciements
Les auteurs tiennent à remercier Irvin Probst, qui a conduit une large
part des étudiants de l’ENSTA Bretagne à pratiquer l’analyse numérique et le
traitement de données en Python. Une grande partie de ce document n’aurait
pas pu voir le jour sans ses conseils avisés.
Les auteurs remercient Rodéric Moitié, longtemps en charge de l’enseigne-
ment de l’algorithmique et de la recherche opérationnelle à l’ENSTA Bretagne,
et qui a contribué largement à la section sur les tris.
Les auteurs remercient également les participants des éditions précédentes
pour leur enthousiasme et leurs questions avisées.
4
1
Python : quelle place parmi les langages
informatiques
Sommaire
1.1 Histoire du langage 5
1.2 Caractéristiques du langage 6
1.3 Python et les autres langages 6
1.4 Développer avec Python(x,y) 7
1.5 Développer sans Python(x,y) 9
1.1 Histoire du langage
Lapremière version de Python date de 1991, développée par Guido Van
Rossum. Le nom du langage est un hommage au Monty Python’s Flying
Circus.
Il utilise une syntaxe très légère, inspirée d’ABC. Le langage dispose de très
peu de types de données, mais est riche en structures de données dynamiques,
bien intégrées à la syntaxe.
La license sous laquelle il est distribué se stabilise en 2001 sur une licence
libre compatible avec la GPL1. Il s’agit d’un logiciel libre : vous pouvez modi-
fier votre interpréteur Python et distribuer cette version modifiée. Toutefois,
cette licence n’entraîne aucune contrainte quant à la licence qui régit les pro-
grammes écrits en Python.
Le modèle objet est unifié avec la version 2.2 : les types de base (int,
float,bool) deviennent des objets comme les autres. Ils ont des méthodes,
et il est possible d’en hériter. La dernière version de cette branche est la 2.7.6
de novembre 2013.
La version 3.0 vise à éliminer des redondances dans les fonctionnalités de
Python. Il s’agit de diminuer le nombre de façons de réaliser une même opéra-
tion, et donc la complexité du langage comme de sa machine virtuelle. Une
conséquence est que la version 3.0 n’est pas compatible avec les versions précé-
dentes : elle ne peut pas exécuter du code Python 2.x. Certaines bibliothèques
1. La GNU General Public License est le plus importante des licenses sous lesquelles sont
distribués les logiciels libres ; elle est écrite par la Free Software Foundation. La license de
Python est la Python Software Foundation License (PSFL), inspirée de la licence BSD de
Berkeley.
5
1 / 109 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !