Cours Python I
Franck Delahaye - Observatoire de Paris
1
Sommaire
1- Python et ses modules – Un ensemble pour la programmation scientifique (a quick tour)...........................3
1.1 - Pourquoi Python ? Avantage et inconvénients.......................................................................................3
1.2 - Quelle Version ?......................................................................................................................................3
1.3 - Quel environnement ?.............................................................................................................................3
1.3.1- Linux – Installation .........................................................................................................................4
1.3.2- Mac OS X – Installation .................................................................................................................4
1.3.3- Windows – Installation ..................................................................................................................4
1.3.3.1- Solution 1.................................................................................................................................4
1.3.3.2 - Solution 2................................................................................................................................4
1.4- Interface ..................................................................................................................................................5
1.5- Les modules de Python............................................................................................................................8
1.5.1- Modules génériques ........................................................................................................................9
1.5.2- Scipy and Numpy.............................................................................................................................9
1.5.3- Matplotlib.......................................................................................................................................10
1.6- Python et la programmation orientée objet ...........................................................................................11
2- Bases.............................................................................................................................................................14
2.1- Les types de bases:................................................................................................................................14
2.1.1- Numériques :..................................................................................................................................14
2.1.2- Les conteneurs ('Containers') : ......................................................................................................16
2.1.3- Affectations :..................................................................................................................................21
2.2La Syntaxe générale.................................................................................................................................23
2.3- Les Boucles et contrôles d'exécution.....................................................................................................24
2.3.1- Boucles for : La boucle 'for in range( )' inclut la borne gauche mais pas la droite........................24
2.3.2- Boucles While................................................................................................................................25
2.3.3- Clause if.........................................................................................................................................26
2.3.4- Autre itérations...............................................................................................................................26
3- Fonctions......................................................................................................................................................28
4- I/O input/output............................................................................................................................................31
5- Modules........................................................................................................................................................34
5.1- IPython, Numpy, Scipy et Matplotlib = Pylab + IPython......................................................................38
5.1.1- Numpy – Matrices..........................................................................................................................39
5.1.2- Scipy – Scientific Tools for Pyton.................................................................................................40
5.1.3- Matplotlib : Représentations Graphiques.......................................................................................41
6- Conclusion....................................................................................................................................................44
Franck Delahaye - Observatoire de Paris
2
1 - Python et ses modules – Un ensemble pour la programmation scientifique (a quick
tour)
1.1 - Pourquoi Python ? Avantage et inconvénients
De façon générale en tant que scientifique nous produisons, manipulons ou transformons des données
numériques. Nous utilisons des outils de visualisations pour interpréter ces données ou pour
communiquer ces résultats à la communauté scientifique. Pour ce faire, nous avons recours aux
langages compilés (C, fortran …), aux langages de script (IDL, Perl, Matlab …) et/ou aux outils
dédiés à la visualisations ( gnuplot, xmgrace, supermongo, Igor …). Ces outils présentent des
avantages spécifiques à leur domaine d'application, bénéficiant de décades de développements de
librairies et optimisations. Cependant nous pouvons rencontrer certaines limitations qui peuvent nous
pousser vers d'autres solutions. L'aspect financier en est un, beaucoup de nos outils ne sont pas libres
et nous sommes contraints à l'achat de licences que nous devons renouveler pour obtenir le
logiciel/compilateur ou ses extensions/mises à jour. Les développements et extensions sont parfois
lentes à apparaître car ne elles ne sont distribuées que lors d'une version ultérieurs. L'incompatibilité
entre versions successives peuvent rendre obsolètes tous les scripts, programmes ou données réalisés
avec des versions précédentes (ex. librairie hdf5 1.6 vs 1.8 sous idl). Les langages compilés ou de
script peuvent présenter une certaine complexité de syntaxe difficile à apprendre.
Pourquoi Python ?
C'est un langage dont la syntaxe est simple, intuitive et très facilement accessible. De plus la
syntaxe compacte mais explicite rend les codes très lisibles et facilite la maintenance et les extensions.
C'est un langage dont les sources sont libres
Python possède une communauté très diversifiée et très active générant un très grand nombre
de bibliothèques disponibles dans des domaines variés.
On peut interfacer d'autre langages (C, fortran, java …) avec Python
Il existe de nombreux d'outils de développement associés à Python pour la documentation
(sphinx) ou pour la génération de tests automatiques par exemple..
L'un des inconvénients semble peut être venir de la multitude et de l'indépendance des différents
modules, nécessitant des installations multiples pas forcément simples en fonction des
environnements. On peut ainsi se retrouver avec un environnement Python différent de celui sur lequel
est développé une application ou un tutorial et rencontrer ainsi des difficultés.
1.2 - Quelle Version ?
En ce qui concerne la version, il y a actuellement 2 branches principales de Python. La version 2.7 et
la version 3.xx . Reportez vous à la page suivante (http://wiki.Python.org/moin/Python2orPython3)
pour plus d'informations. En ce qui nous concerne nous utiliserons la version 2.x (celle installée par
défaut sur les machines).
1.3 - Quel environnement ?
Python est déjà présent en standard dans nombre de distributions de Linux pour les installations par
défaut. Pour les versions système Mac OS X 10.2 ou plus récentes, Python est aussi présent. Sous
Windows il est nécessaire de télécharger une distribution de Python. Une présentation de quelques
solutions d'installation testées sont présentées ci-dessous. Cette liste n'est pas exhaustive et ne
s'applique qu'aux configurations testées. Il est possible de rechercher sur tous les forums les
différentes solutions propres à votre cas particulier.
Franck Delahaye - Observatoire de Paris
3
1.3.1 - Linux – Installation
Sous les différentes distributions (SuSE, RedHat Unbuntu, Debian ...) de Linux, Python est installé
automatiquement lors de l'installation du système. Si ce n'est pas le cas, il suffit de passer par les
gestionnaires de paquets ( .rpm, sous RedHat , .deb sous debian) par exemple YaST pour Suse ou
encore Synaptic sous Ubuntu. Il est aussi possible d'installer des modules complémentaires (iPython,
matplotlib, numpy, scipy …) de la même manière
1.3.2 - Mac OS X – Installation
Sous MacOS X, Python est aussi installé par défaut cependant nombre de modules et paquets
complémentaires ne le sont pas.
Pour iPython, par exemple voici le lien pour l'installation (http://iPython.scipy.org/doc/rel-
0.10.1/html/install/index.html).
En résumé :
If you have setuptools installed and you are on OS X or Linux (not Windows), the following will
download and install IPython and the main optional dependencies:
> easy_install iPython[kernel,security,test]
les informations pour setuptools : (http://pypi.Python.org/pypi/setuptools#downloads)
De façon générale il faut télécharger les paquets par les sites distributeurs ou leurs miroirs et lancer les
scripts d'installation. Attention certains paquets peuvent nécessiter l'installation d'autres paquets pour
satisfaire les dépendances.
1.3.3 - Windows – Installation
1.3.3.1 - Solution 1
Le site web officiel de Python : http://www.Python.org propose le fichier binaire pour les différentes
architecture (32 bit / 64 bit) dans la section 'Download'. Ensuite il suffit de lancer l'exécution de ce
fichier pour installer Python. Pour lancer Python, alors il suffit de lancer l'interface idle
On peut ensuite installer les différents modules 'non-standards' en procédant de la même manière pour
chaque site web associé aux différents modules.
WxPython : pour l'interface graphique de IPython.
IPython : iPython.scipy.org propose in binaire d'installation pour windows.
Numpy :
Scipy :
Matplotlib :
1.3.3.2 - Solution 2
Il est aussi possible de télécharger (version académique ou achetée) sur le site de Enthought
http://enthought.com/ le paquet EPD (Enthought Python Distribution) et l'installer. Cette distribution
inclut un grand nombre de modules dont IPython, Scipy, Numpy, Matplotlib et bien d'autres.
C'est simple et immédiat, mais il est nécessaire de vérifier la version de Python associée. Actuellement
la distribution propose les modules avec Python 2.7
Franck Delahaye - Observatoire de Paris
4
1.4 - Interface
Pour ce qui est de l'interface, il y a naturellement la ligne de commande Python qui permet de lancer
des commandes à la suite ou d'appeler un script entier Python. Il y a aussi IPython (interactive Python)
qui est une interface de ligne de commande interactive plus sophistiquée que celle de pyhton. Il y a
aussi plusieurs types d'interfaces graphiques de développement tel que spyder, eric ou idle …..Une
exploration personnelle est nécessaire pour définir son interface préférée.
On utilisera dans un premier temps la console pour explorer les différentes commandes de base. Par la
suite nous écrirons des script ou des modules qu'on lancera directement ou que l'on chargera dans la
console. Voici en image les différentes possibilités pour lancer un script Python.
Le script :
- La première ligne permet de définir le type d'encodage pour les caractères accentués.
- Les lignes 2 à 4 ne sont que des commentaires de description pour le script. Ils peuvent être utilisés
dans les documentations futures directement par des outils de génération de documentation tels que
sphinx ou doxygen.
- La dernière ligne est la ligne de commande
On peut directement lancer le script à partir d'un terminal
Il est nécessaire de précéder la commande par 'Python' pour indiquer l’environnement et l'interpréteur
utilisé, sinon nous obtenons
On peut palier au problème par l'ajout d'une ligne, comme dans tout script, précisant l’environnement.
Franck Delahaye - Observatoire de Paris
5
# -*- coding: iso-8859-15 -*-
""" Ceci est un script très simple
Il ne fait pas grand chose sauf imprimer une chaine de caractère. """
print " Ceci est un début de script Python. "
1 / 44 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 !