Welcome to Scribd, the world's digital library. Read, publish, and share books and documents. See more
Download
Standard view
Full view
of .
Look up keyword
Like this
19Activity
0 of .
Results for:
No results containing your search query
P. 1
Programmation Scientifique avec Python

Programmation Scientifique avec Python

Ratings: (0)|Views: 1,093|Likes:
Published by IzemAmazigh
A good and practical course on Python scientific programing in French.
A good and practical course on Python scientific programing in French.

More info:

Categories:Types, Research, Science
Published by: IzemAmazigh on Mar 29, 2010
Copyright:Attribution Non-commercial Share Alike

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF or read online from Scribd
See more
See less

07/31/2013

pdf

 
Programmation Scientifique avec PythonMaster 1 Physique-Chimie
Vincent.Favre-Nicolin@ujf-grenoble.fr19 janvier 2007
Table des matières
1 Introduction 22 Installation de Python 33 Programmer avec Python 3
3.1 Ligne de Commande ou éditeur? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33.2 Aide en ligne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43.3 Variables et types de données élémentaires . . . . . . . . . . . . . . . . . . . . . . . . . . 43.3.1 Variables simples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43.3.2 Nombres complexes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43.3.3 Chaînes de caractères . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53.3.4 Listes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53.3.5 Tuple
[Facultatif]
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63.3.6 Dictionnaires
[Facultatif]
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73.3.7 Conversion de variables entre difrents types . . . . . . . . . . . . . . . . . . . . 73.4 Boucles et opérateurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73.4.1 opérateurs
==,and
,
or
,
not
. . . . . . . . . . . . . . . . . . . . . . . . . . . 73.4.2 L’instruction
if...elif..else
. . . . . . . . . . . . . . . . . . . . . . . . . 83.4.3 La boucle
while
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83.4.4 Les boucles
for
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93.4.5 Exercice : composition en facteurs premiers . . . . . . . . . . . . . . . . . . . . 93.5 Fonctions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93.6 Portée des objets : variables locales et globales . . . . . . . . . . . . . . . . . . . . . . . 103.7 Exercice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
4 Classes et Objets 11
4.1 Présentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114.2 Exemple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124.3 Attributs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124.4 Fonctions membres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134.5 Fonctions membres spéciales
[Facultatif]
. . . . . . . . . . . . . . . . . . . . . . . . . . 134.5.1 Constructeur
__init__
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144.5.2 Destructeur
__del__
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144.5.3 Opérateurs
__add__
,
__sub__
,
__mul__
,
__div__
,
__pow__
. . . . . . . 144.6 ritage
[Facultatif]
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144.7 Attention : opérateur “==”, différence entre égalité et identité, copie et référence...
[Facul-tatif]
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154.8 Exercice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
 
5 Lecture et écriture de chiers 16
5.1 Exercice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
6 Utilisation de modules(standards et librairies extérieures) 17
6.1 Modules de calcul scientique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176.1.1 math . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176.1.2 Scipy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176.1.3 Sous-modules de scipy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186.1.4 MatPlotlib/PyLab (http ://matplotlib.sf.net) . . . . . . . . . . . . . . . . . . . . . 196.1.5 Autres modules scientiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
7 Performance et interface C/C++ <-> Python
[Facultatif] 
20
7.1 Performance : C/C++ vs Python . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207.1.1 Utilisation de scipy.weave . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217.2 Interface C/C++ <-> Python avec SWIG . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
1 Introduction
Il existe déjà un grand nombre de langages utilisés pour le calcul scientifique (C/C++/fortran), stabi-lisés et développés depuis de nombreuses années. Pourquoi développer (et donc apprendre!) un nouveaulangage? Il s’avère que les langages traditionnels sont soit inadaptés à une utilisation généraliste (calculs etcréation d’un interface graphique - ex : fortran), ou ont une syntaxe suffisamment complexe ou rigide pourrendre difficile son utilisation par un utilisateur occasionnel (c++). C’est ce qui a permis le succès de lo-giciels commerciaux spécialisés dans le calcul (Mathematica, Maple, Mathlab,...), et de langages (IDL,...),qui associent une syntaxe relativement simple avec des fonctionnalités (représentation graphique, librairiesde calcul) étendues, et utilisables directement à partir d’une ligne de commande (sans compilation préa-lable).C’est pour pallier ce manque que le langage Python (
http ://www.python.org
) a été développé. Il pré-sente de multiples avantages par rapport aux langages traditionnels :
naturel
(utilisation de l’indentation, typage dynamique)utilisable en
ligne de commande
(donc
interactif 
)
moderne
(orienté objet)
extensible
(
modules externes
de calcul et de visualisation écrites en C/C++/fortran)très utilisé pour le
calcul scientifique
(grâce à la réutilisation de librairies de calculs déjà existantes)
libre
(“open-source”) et
multi-plateforme
(Linux, windows, MacOS,...)Un désavantage apparent de python vient du fait qu’il s’agit d’un langage interprété, et donc plus lentqu’un langage compilé. Ce n’est pas un inconvénient majeur, car chaque fois qu’un calcul “intensif” estnécessaire, il est possible de l’effectuer dans un
module externe
écrit dans un autre langage, plus efficace.En général seule une petite partie d’un programme a besoin d’être vraiment optimisée (en général moinsde 5% du code représente 95% du temps de calcul!).En outre, il s’avère que l’
on passe souvent plus de temps à écrire un programme qu’à l’utiliser 
, cequi relativise l’importance de la “performance pure” du programme. L’intérêt de python est justementd’
accélérer le développement d’un programme par sa syntaxe simple
, et par sa capacité à réutiliser deslibrairies existantes.Les
différences fondamentales par rapport au C++
avec lesquelles il faut se familiariser sont :C’est un
langage interprété
, utilisable avec une ligne de commandeLes “blocs” de code (ex : intérieur d’une boucle) sont identifiés par l’
indentation
(
 nombre d’espacesen début de ligne
), et non par des acollades {...}Le
type des objets
(’int’, ’float’, ’string’)
est dynamique
, ç.à.d. qu’il n’a pas besoin d’être déclaré àl’avance et qu’il peut être modifié au cours du programme.2
 
2 Installation de Python
Sous Linux : Python est installé sur toutes les distributions, en standard - il est par contre nécessaired’ajouter des modules tels que SciPy et matplotlib, suivant le type de programme souhaité.Sous Windows : la distribution standard de python est disponible sur
http ://www.python.org
, mais ilest recommandé d’installer la version de python de la société Enthought (Enthought Python = Enthon), quiinclut les modules de calculs scientifique les plus utiles
http ://code.enthought.com/enthon/ 
.
3 Programmer avec Python
3.1 Ligne de Commande ou éditeur?
Python peut être utilisé à partir d’une ligne de commande (langage
interprété 
). Pour lancer l’inter-préteur, taper “
python
” dans une console linux, puis à l’invite de commande (“
>>>
”), taper “
print“toto”
”. Cela donne
[vincent@localhost vincent]$ python Python 2.3.3 (#2, Feb 17 2004, 11 :45 :40)[GCC 3.3.2 (Mandrake Linux 10.0 3.3.2-6mdk)] on linux2Type "help", "copyright", "credits" or "license" for more information.>>> print "toto"toto>>>
Dans un autre langage, il aurait fallu écrire le texte du programme dans un fichier, puis le compiler avantde l’éxécuter. En fait il est également possible d’écrire le programme dans un fichier. Pour cela ouvrir unéditeur de texte (par exemple
nedit
ou
kate
), écrire le programme (
print “toto”
), et le sauvegardersous le nom
toto.py
. Ensuite, éxécuter le programme avec la commande “
python toto.py
” à partird’une console Linux (il est également possible d’utiliser “
python -i toto.py
” afin de rester dansl’interpréteur après éxécution du programma). De fait, écrire un programme sur la ligne de commande oule taper au préalable dans un fichier avant de l’exécuter est
rigoureusement équivalent
.Pour l’utilisation en ligne de commande, il est encore plus avantageux d’utiliser
ipython
:
ipythontoto.py
” - c’est une version plus interactive de python, qui se souvient des instructions tapées lors dela dernière session ipython (utiliser les flèches haute et basse pour naviguer dans l’historique des com-mandes), et qui sait “compléter” les commandes (pour utiliser une fonction ou un objet, taper le début dunom et appuyer sur la touche tabulation - le nom sera complété ou différents choix seront proposés).Voilà! Vous savez programmer en Python. Dans la pratique, les tests rapides sont faits avec la ligne decommande, et les programmes longs sont écrits dans un fichier avant d’être exécutés.Note 1 : pour sortir de l’interpréteur Python, taper
ctrl-d
Note 2 : le symbole # sert à commencer un
commentaire
en python. Tout ce qui se trouve sur une ligneaprès un # n’est pas interprété par python :
>>> print “toto” # ceci est mon premier programme en python!toto
Note 3 : pour éxécuter des commandes dans un fichier texte depuis l’interpréteur python, il faut utiliserla fonction
execfile
(e.g.
execfile(“toto.py”)
)Note 4 : pour pouvoir utiliser des
accents dans Python
, il faut préciser l’encodage que nous utilisons,en mettant au début du fichier python la ligne suivante :
# -*- coding : iso-8859-15 -*-
3

Activity (19)

You've already reviewed this. Edit your review.
1 hundred reads
1 thousand reads
Zan Layle liked this
Nene liked this
ogmios_94 liked this
Bbaggi Bk liked this
Bbaggi Bk liked this
Ouints Klints liked this
Philippe Couture liked this
djamel_mi liked this

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->