Python pour le calcul scientifique

Documents pareils
Les bases du langage Python

Évaluation et implémentation des langages

Calcul Scientifique avec 3

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

«Clustering» et «Load balancing» avec Zope et ZEO

L informatique en BCPST

TP 1. Prise en main du langage Python

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

Structure d un programme et Compilation Notions de classe et d objet Syntaxe

Programmation C. Apprendre à développer des programmes simples dans le langage C

Chapitre I Notions de base et outils de travail

Pourquoi R devient incontournable en recherche, enseignement et développement

Table des matières Avant-propos... V Scripting Windows, pour quoi faire?... 1 Dans quel contexte?

Table des matières PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS. Introduction

WDpStats Procédure d installation

Institut Supérieure Aux Etudes Technologiques De Nabeul. Département Informatique

Mise en œuvre des serveurs d application

INTRODUCTION À PYRAMID Gaël Bearstech. Crédits: Blaise Laflamme

1. Développement embarqué. André KPOZEHOUE DOMAINES DE COMPETENCES CONNAISSANCES TECHNIQUES

Environnements de développement (intégrés)

1 Définition et Appel d une fonction. V. Phan Luong. Cours 4 : Fonctions

Licence Sciences et Technologies Examen janvier 2010

Python - introduction à la programmation et calcul scientifique

pythonocc: une plateforme de développement agile d applications CAO.

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

Introduction à NetCDF

Introduction au langage C

Vulgarisation Java EE Java EE, c est quoi?

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, , ISBN :

wxwidgets dans un environnement Microsoft Windows

Utilisation de JAVA coté Application serveur couplé avec Oracle Forms Hafed Benteftifa Novembre 2008

LES NOUVEAUTES DE COST AND PROFITABILITY MANAGEMENT 8.1

Cours 7 : Utilisation de modules sous python

Représentation d un entier en base b

Introduction à l informatique en BCPST

Présentation du logiciel

//////////////////////////////////////////////////////////////////// Administration bases de données

Comment reproduire les résultats de l article : POP-Java : Parallélisme et distribution orienté objet

Plan du cours. Historique du langage Nouveautés de Java 7

Tutoriel code::blocks

Architectures web/bases de données

Cours 1 : La compilation

PostgreSQL, le cœur d un système critique

Le serveur web Apache

Université du Québec à Chicoutimi. Département d informatique et de mathématique. Plan de cours. Titre : Élément de programmation.

Annexe : La Programmation Informatique

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars

Exonet : sauvegarde automatisée d une base de données

Vérifier la qualité de vos applications logicielle de manière continue

Télécom Nancy Année

Éléments de programmation et introduction à Java

Présentation du langage et premières fonctions

Introduction à. Oracle Application Express

Publication. PYTHON : le développement autrement. Tour d'horizon de la plateforme. Christophe COMBELLES Gabriel PETTIER

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Nouveautés Ignition v7.7

Optimisation de logiciels de modélisation sur centre de calcul

Introduction à Eclipse

Cours d Algorithmique et de Langage C v 3.0

UE C avancé cours 1: introduction et révisions

Open Source Job Scheduler. Installation(s)

TP1 : Initiation à Java et Eclipse

Java Licence Professionnelle CISII,

Introduction à la programmation Travaux pratiques: séance d introduction INFO0201-1

1 Description générale de VISFIELD

TP1. Outils Java Eléments de correction

Java c est quoi? Java. Java. Java : Principe de fonctionnement 31/01/ Vue générale 2 - Mon premier programme 3 - Types de Programme Java

Moderniser. le système d information et le portefeuille applicatif.

AUVRAY Clément (168187) HOMBERGER Alexandre (186897) GLADE. Langages, outils et méthodes pour la programmation avancée Page 1 sur 12

Entraînement au concours ACM-ICPC

Vue d ensemble de Windows PowerShell

PROJET ARCHI WINDOWS SERVER

Initiation à l algorithmique

Curriculum Vitae de Michel Casabianca

BUREAU VIRTUEL. Utilisation de l application sur ipad. Guide utilisateur. Sciences Po Utilisation du bureau virtuel sur ipad 1 / 6

Cours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre Enrica.Duchi@liafa.jussieu.fr

Introduction à la modélisation

Présentation du PL/SQL

I00 Éléments d architecture

MySQL. (Administrateur) (Dernière édition) Programme de formation. France, Belgique, Suisse, Roumanie - Canada

Introduction à l algorithmique et à la programmation (Info 2)

Gestion du projet pour qu'il soit pérenne et collaboratif

Serveur d Applications Web : WebObjects

Chapitre 2 : Abstraction et Virtualisation

1-Introduction 2. 2-Installation de JBPM 3. 2-JBPM en action.7

Seance 2: En respectant la méthode de programmation par contrat, implémentez les autres fonctions de jeu.

Le langage C++ est un langage de programmation puissant, polyvalent, on serait presque tenté de dire universel, massivement utilisé dans l'industrie

Java et les bases de données: JDBC: Java DataBase Connectivity SQLJ: Embedded SQL in Java. Michel Bonjour

TP WEBSERVICES. 1 Pré-requis. 1.1 L environnement de développement. 1.2 Les librairies nécessaires 1.3 SOAPUI

Oracle WebLogic Server (WLS) 11gR1 ( et ) Installation sur Oracle Linux 5 et 6 Hypothèses Installation Oracle Linux 5 (OL5)

Introduction à MATLAB R

Langage de scripts : historique et définition

Projet de Veille Technologique

Gestion du parc informatique matériel et logiciel de l Ensicaen. Rapport de projet. Spécialité Informatique 2 e année. SAKHI Taoufik SIFAOUI Mohammed

Transcription:

Petit tour d horizon Laboratoire de Mathématiques d Orsay

Le langage Python 1 développé en 1989 par Guido van Rossum 2 open-source 3 portable 4 orienté objet 5 dynamique 6 extensible 7 support pour l intégration d autres langages

Comment faire fonctionner mon code source? Il existe 2 techniques principales pour effectuer la traduction en langage machine de mon code source : Interprétation Code source Interpréteur Résultat L interpréteur lit le code source...... et le résultat apparaît à l écran. Compilation Code source Compilateur Code objet Executeur Résultat Le compilateur lit le code source...... et produit un code objet(binaire). On exécute le code objet...... et le résultat apparaît à l écran. dessins tirés du livre Apprendre à programmer avec Python.

Et Python? Code source Compilateur ByteCode Interpréteur Résultat Le compilateur Python lit le code source...... et produit un pseudo-code intermédiaire. L interpréteur Python lit le pseudocode...... et le résultat apparaît à l écran. Avantages : interpréteur permettant de tester n importe quel petit bout de code, compilation transparente. Inconvénients : peut être lent. dessins tirés du livre Apprendre à programmer avec Python.

Les différentes implémentations CPython Implémentation de base basé sur le langage C ANSI Jython Implémentation permettant de mixer Python et java dans la même JVM IronPython Implémentation permettant d utiliser Python pour Microsoft.NET PyPy Implémentation de Python en Python...

Les différentes versions Il existe 2 versions de Python : 2.7 et 3.3. Python 3.x n est pas une simple amélioration ou extension de Python 2.x. Tant que les auteurs de librairies n auront pas effectué la migration, les deux versions devront coexister. Nous nous intéresserons uniquement à Python 2.x.

Que peut-on faire avec Python? web Django, TurboGears, Zope, Plone,... bases de données MySQL, PostgrSQL, Oracle,... réseaux TwistedMatrix, PyRO,... Gui Gtk, Qt, Tcl/Tk, WxWidgets représentation graphique gnuplot, matplotlib, VTK,... calcul scientifique numpy, scipy, sage,......

Pourquoi utiliser? Peut être appris en quelques jours Permet de faire des tests rapides Alternative à Matlab, Octave, Scilab,... Nombreux modules pour le calcul scientifique Tourne sur la plupart des plateformes Installation et tests unitaires très simples Parallélisation (MPI, cuda, opencl, thread,...) Intégration avec C, C++, Fortran Recherche reproductible (Sumatra, IPython Notebook,...)

L interpréteur Sous Linux FIGURE: Interpréteur classique (gauche) et ipython (droite)

Notions de base du langage A vos claviers!!!

Les scripts L écriture de scripts Python se fait dans des fichiers ayant l extension.py. fibo.py def print_fib(n): """ ecrit la serie de Fibonacci jusqu a n """ a, b = 0, 1 while b < n: print b, a, b = b, a + b print print_fib(10) Exécution du script $ python fibo.py

Options utiles de l interpréteur -c : exécute la commande Python entrée après, -i : passe en mode intéractif après avoir exécuter un script ou une commande, -d : passe en mode debug.

Qu est-ce qu un module? Un module est un fichier comprenant un ensemble de définitions et d instructions compréhensibles par Python. Il permet d étendre les fonctionnalités du langage. Un module M peut être un fichier M.pyd ou M.dll (windows) ou M.so (linux) un fichier M.py un fichier M.pyc un répertoire M contenant un fichier init.py

Exemple : fibo.py # Module nombres de Fibonacci def print_fib(n): """ ecrit la serie de Fibonacci jusqu a n """ a, b = 0, 1 while b < n: print b, a, b = b, a + b print

Exemple : fibo.py (suite) def list_fib(n): """ retourne la serie de Fibonacci jusqu a n """ result, a, b = [], 0, 1 while b < n: result.append(b) a, b = b, a + b return result

Utilisation du module fibo >>> import fibo >>> fibo.print_fib(1000) 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 >>> fibo.list_fib(100) [1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89]

L importation Les différentes manières d importer un module import fibo import fibo as f from fibo import print_fib, list_fib from fibo import * (importe tous les noms sauf variables et fonctions privées) Remarque : En Python, les variables ou les fonctions privées commencent par _.

L importation Compléments sur import import définit explicitement certains attributs du module : dict : dictionnaire utilisé par le module pour l espace de noms des attributs name : nom du module file : fichier du module doc : documentation du module

Exécution d un module Ajout à la fin de fibo.py if name == main : print_fib(1000) print list_fib(100) Résultat $ python fibo.py 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 [1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89]

Installer ses propres modules Le module distutils fournit un ensemble de commandes pour l installation de packages ou de modules, gère les fichiers Python, C et C++, peut créer une distribution des sources, peut créer une distribution des binaires,...

Exemple d utilisation setup.py from distutils.core import setup setup(name = monmodule, version = 1.0, author = loic Gouarin, description = mon premier module!!, url = http://monmodule.fr, py_modules = [ monfichier ], #packages = [ pack1 ], #ou pack1 est un repertoire )

Construction du module $ python setup.py build Création du répertoire build contient les fichiers à installer lib.plateforme : modules pure Python et extensions temp.plateforme : fichiers temporaires générés lors de l utilisation d extension.

Installation du module $ python setup.py install copie tout ce qu il y a dans build/lib.plateforme dans le répertoire d installation le répertoire d installation par défaut est windows : C:\Python Unix : /usr/local/lib/pythonx.y/site-packages /usr/local/lib/pythonx.y/dist-packages

Installation du module $ python setup.py install --user Installation dans $HOME/.local/lib/pythonX.Y/site-packages $ python setup.py install --home=<dir> Installation dans <dir>/lib/python $ python setup.py install --prefix=<dir> Installation dans <dir>/lib/pythonx.y/site-packages

Ressources Ressources générales 1 site officiel www.python.org 2 Apprendre à programmer avec Python Ressources pour le calcul scientifique 1 site de Numpy. 2 Hans P. Langtangen, Python Scripting for Computational Science, Edition Springer, 2004. 3 Hans P. Langtangen, A Primer on Scientific Programming with Python, Edition Springer, 2009.