PHY 1234 : Introduction `a la physique num´erique
Normand Mousseau
Montr´eal, automne 2006
2
Table des mati`eres
1 Introduction 7
1.1 Choix de python . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.2 Bonjour le monde . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.2.1 Exemple................................... 8
1.3 Un autre exemple : num´erologie . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.4 Utiliser python sur un environnement Windows . . . . . . . . . . . . . . . . . 9
1.4.1 Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.4.2 Test de l’installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.4.3 Test de Maplotlib/pylab . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.5 Ex´ecuter python sur un environnement Unix ou Linux . . . . . . . . . . . . . 10
1.5.1 Test de l’installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.6 Utiliser python sur un Macintosh . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.7 Interface et ´editeur IDLE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2 Commandes de base 15
2.1 Pr´esentation..................................... 15
2.1.1 Structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.1.2 Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.1.3 Commentaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.2 Aide ......................................... 17
2.3 Noms de variables, objets et classes . . . . . . . . . . . . . . . . . . . . . . . . 18
2.4 Types pr´e-d´efinis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.4.1 Variables enti`eres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.4.2 Variables eelles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.4.3 Variables complexes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.5 Assignation ..................................... 20
2.5.1 R`egles arithm´etiques . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.5.2 Transformation des types . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.5.3 Op´erateurs d’assignation, d’incr´ementation et de d´ecr´ementation . . . 22
2.6 Chaˆınes de caract`eres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.6.1 Chaˆınes accentu´ees - encodage UTF-8 . . . . . . . . . . . . . . . . . . 25
2.7 Transformer une chaˆıne en nombre et vice-versa . . . . . . . . . . . . . . . . . 27
2.7.1 Transformer une chaˆıne en nombre . . . . . . . . . . . . . . . . . . . . 27
2.7.2 Transformer un nombre en chaˆıne . . . . . . . . . . . . . . . . . . . . 27
2.7.3 Comparer des chaˆınes de caract`eres . . . . . . . . . . . . . . . . . . . 28
3
4TABLE DES MATI `
ERES
2.7.4 Scinder les chaˆınes : la commande split . . . . . . . . . . . . . . . . . . 29
2.8 Entr´ee et sortie standards . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
2.8.1 Sortie standard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
2.8.2 Entr´ee standard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
2.9 Op´erateurs logiques et relationnels . . . . . . . . . . . . . . . . . . . . . . . . 31
2.9.1 Op´erateurs relationnels . . . . . . . . . . . . . . . . . . . . . . . . . . 32
2.9.2 Op´erateurs logiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
2.10 Structures de election . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
2.10.1 La structure si/sinon (if/else/elif) .................. 33
2.11Boucles ....................................... 34
2.11.1 La boucle for ................................ 34
2.11.2 La boucle while .............................. 35
2.12 Lecture et ´ecriture de fichiers . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
2.12.1 Redirection des entr´ee et sortie standards . . . . . . . . . . . . . . . . 36
2.12.2 ´
Ecriture dans un fichier . . . . . . . . . . . . . . . . . . . . . . . . . . 37
2.12.3 Lecture `a partir d’un fichier . . . . . . . . . . . . . . . . . . . . . . . . 38
2.12.4 Lecture d’un chier quelconque . . . . . . . . . . . . . . . . . . . . . . 38
2.12.5 Lecture et ´ecriture de caract`eres accentu´es . . . . . . . . . . . . . . . 39
2.13 Listes, tuples, dictionnaires et tableaux . . . . . . . . . . . . . . . . . . . . . . 40
2.13.1 Les listes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
2.13.2 Dictionnaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
2.14 Quitter le programme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
3 Structure d’un programme en python 47
3.1 M´ethodes, variables et constantes de classe . . . . . . . . . . . . . . . . . . . 47
3.1.1 Biblioth`eques de classes . . . . . . . . . . . . . . . . . . . . . . . . . . 48
3.1.2 Constantes et variables de la classe . . . . . . . . . . . . . . . . . . . . 48
3.1.3 M´ethodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
3.1.4 Programme-type `a une classe. . . . . . . . . . . . . . . . . . . . . . . . 49
3.1.5 Qualificatifs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
3.2 M´ethodes ...................................... 51
3.2.1 La m´ethode principale . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
3.2.2 Utilisation d’arguments dans d’autres ethodes . . . . . . . . . . . . . 53
3.2.3 M´ethodes r´ecursives . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
3.2.4 Liste d’arguments flexible . . . . . . . . . . . . . . . . . . . . . . . . . 55
3.3 Classes........................................ 56
3.4 Les biblioth`eques de classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
4 La programmation orienee objet 59
4.1 La classe : l’objet de base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
4.2 D´efinir les classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
4.2.1 Exemple : un objet nomm´e Bloc . . . . . . . . . . . . . . . . . . . . . 60
4.3 Initialisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
4.4 H´eritage....................................... 63
4.5 R`egles d’h´eritage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
4.6 Comment les classes ecrivent-elles les objets ? . . . . . . . . . . . . . . . . . 64
TABLE DES MATI`
ERES 5
4.7 Un petit truc utile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
5 Numeric : une biblioth`eque `a l’usage des scientifiques 67
5.1 La biblioth`eque math´ematique . . . . . . . . . . . . . . . . . . . . . . . . . . 67
5.2 Numeric....................................... 67
5.2.1 Obtenir et installer Numeric . . . . . . . . . . . . . . . . . . . . . . . 68
5.2.2 Les objets de Numeric . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
5.2.3 Cr´eer un tableau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
5.2.4 Extraire des ´el´ements . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
5.2.5 Op´erations sur les tableaux . . . . . . . . . . . . . . . . . . . . . . . . 72
5.2.6 Fonctions universelles . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
5.2.7 Op´erations matricielles . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
5.3 Extraire des colonnes ou des rang´ees d’un tableau . . . . . . . . . . . . . . . . 76
5.3.1 Alg`ebre lin´eaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
5.4 Nombres pseudo-al´eatoires . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
5.4.1 random ................................... 78
5.4.2 RandomArray . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
6 Pylab et matplotlib 81
6.1 Installation de matplotlib . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
6.1.1 Premi`ere utilisation de matplotlib . . . . . . . . . . . . . . . . . . . . 81
6.1.2 Quelques exemples plus ´etendus . . . . . . . . . . . . . . . . . . . . . 82
6.1.3 Lecture et ´ecriture de donn´ees . . . . . . . . . . . . . . . . . . . . . . 84
6.1.4 Utilisation interactive . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
6.1.5 Une pr´esentation am´elior´ee . . . . . . . . . . . . . . . . . . . . . . . . 87
6.2 Graphiques anim´es . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
6.2.1 Un premier exemple : animation.py . . . . . . . . . . . . . . . . . . . . 89
6.2.2 Deux graphiques - d´eplacement sur un cercle . . . . . . . . . . . . . . 92
6.3 Interface interactive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
6.4 pylabgui (interface graphique) . . . . . . . . . . . . . . . . . . . . . . . . . . 99
7 Graphiques et interfaces graphiques 107
7.1 Installation de gnuplot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
7.1.1 Test de Gnuplot sur Windows . . . . . . . . . . . . . . . . . . . . . . . 108
7.2 Ex´ecuter python sur un environnement Unix ou Linux . . . . . . . . . . . . . 108
7.3 Gnuplot et gnuplot.py . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
7.3.1 Utilisation de gnuplot.py . . . . . . . . . . . . . . . . . . . . . . . . . 109
7.4 Graphiques Tkinter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
7.4.1 Cadres.................................... 112
7.4.2 Les ´el´ements essentiels . . . . . . . . . . . . . . . . . . . . . . . . . . 113
7.4.3 Objet graphique Canvas . . . . . . . . . . . . . . . . . . . . . . . . . . 114
7.5 Principes de base d’une interface graphique (GUI) . . . . . . . . . . . . . . . 117
7.5.1 Quelques composantes graphiques . . . . . . . . . . . . . . . . . . . . 117
7.6 Mˆeler graphiques et interface graphiques . . . . . . . . . . . . . . . . . . . . . 123
7.7 Pr´esentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
7.7.1 pack..................................... 124
1 / 166 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 !