chap xiii : calcul scientifique avec python

58
from turing_machine import TuringMachine initial_state = "init", accepting_states = ["final"], transition_function = {("init","0"):("init", "1", "R"), ("init","1"):("init", "0", "R"), ("init"," "):("final"," ", "N"), } final_states = ["final"] t = TuringMachine("010011 ", initial_state = "init", final_states = final_states, transition_function=transition_function) print("Input on Tape:") t.show_tape() while not t.final(): t.step() print("Result of the Turing machine calculation:") t.show_tape() Version 3.1.0 Université de Béchar Laboratoire des Études Énergétiques en Zones Arides Équipe Modélisation & Simulation des Systèmes Cours réalisé par : Pr. TAMALI Mohammed, http://mtamali.wordpress.com/ Université de Béchar | FS&T (ENERGARID Lab./SimulIA)

Upload: mohammed-tamali

Post on 15-Apr-2017

1.577 views

Category:

Engineering


0 download

TRANSCRIPT

Page 1: Chap XIII : calcul scientifique avec python

from turing_machine import TuringMachine

initial_state = init

accepting_states = [final]

transition_function = (init0)(init 1 R)

(init1)(init 0 R)

(init )(final N)

final_states = [final]

t = TuringMachine(010011

initial_state = init

final_states = final_states

transition_function=transition_function)

print(Input on Tape)

tshow_tape()

while not tfinal()

tstep()

print(Result of the Turing machine calculation)

tshow_tape()

Version 310

Universiteacute de Beacutechar

Laboratoire des Eacutetudes Eacutenergeacutetiques en Zones Arides

Eacutequipe Modeacutelisation amp Simulation des Systegravemes

Cours reacutealiseacute par Pr TAMALI Mohammed

httpmtamaliwordpresscom

Universiteacute de Beacutechar | FSampT

(ENERGARID LabSimulIA)

Presentation The University of Bechar was born in 1986 as the National Institutes of Higher Education (INES) in 1992 it becomes University Center and on January 07 2007 it was officially declared as a University Since then many Research Teams have seen the day In 2011 The Laboratory for Energy Systems Studies Applied to Arid Zones was run by a group of young and well motivated researchers (7 Research teams) to solve real problems affecting arid zones SimulIA Team is one of them in the same laboratory The Workload of SimulIA concern studies and applications of modeling and simulation of systems in Arid Areas Research areas Energy amp Environment (Modeling amp Simulation) Application of heat in arid zones Energy economy Mapping and development of resources in arid zones SIMULIA for the task in the short term to develop the computer code for modeling and simulation which can be accessed online Website of the laboratory team httpenergaridwordpresscom

2

Introduction (Geacuteneacuteraliteacutes amp Historique)

Elaboration drsquoun environnement logiciel Python

(Installation Personnalisation amp Utilisation)

Domaines drsquoutilisation

Outils drsquoeacutelaboration de code Python (IDE)

Base de repreacutesentation des donneacutees (Eleacutements de base)

Structure algorithmique du langage Python

Matrices amp Systegravemes lineacuteaires

Systegravemes non-lineacuteaires

Interpolation amp approximation

Inteacutegration amp Diffeacuterentiation numeacuterique

Calcul parallegravele

Conclusion

Plan

3

Introduction (Geacuteneacuteraliteacutes) Les matheacutematiques appliqueacutees et le calcul scientifique jouent un rocircle croissant comme outils non

eacutevitables pour lrsquoeacutelaboration de recherches scientifiques et dans la conception de processus

industriels Le calcul scientifique reste pour toujours lrsquoeacutetape premiegravere de la voie du

deacuteveloppement culturel et technique drsquoun pays donneacute

Par ailleurs le niveau de complexiteacute des systegravemes geacuteneacuteralement manipuleacutes par les ecirctres

humains que nous sommes est tregraves eacuteleveacute agrave un niveau ougrave toute avanceacutee intellectuelle engendrera

des retombeacutes au niveau industriel tant que tous les processus de lrsquoeacuteconomie en deacutependent

En contre partie la majoriteacute des produits technologiques sont juste la solution immeacutediate de bon

nombre de reacutesolutions de requecircte de la vie courante Lavegravenement de linformatique et de ses

produits les langages de programmation de tout bord de lInternet et des teacuteleacutecommunications agrave

chacun ses infrastructures et ses protocoles a reacutevolutionneacute les meacutethodologies de travail des

eacutequipes et laboratoires de recherches Les langages de deacuteveloppement informatique des outils

et suites logiciels sont drsquoun grand secours aux travaux de modeacutelisation et de simulation des

processus

Les matheacutematiques appliqueacutees et linformatique sont les moyens de conception (Modeacutelisation et

Simulation) plus encore ils sont les vecteurs qui ont provoqueacute une ameacutelioration nette dans les

pratiques de tous les jours et aussi dans la vitesse de mise en œuvre de moyens exploitables

Les langage de programmation comme le CC++ le FORTRAN ou le Python ont joueacute un grand

rocircle dans le cours de deacuteveloppement de beaucoup de proceacutedeacutes (Modeacutelisation) et ont faciliteacute la

compreacutehension de beaucoup pheacutenomegravenes (Simulation) 4

Introduction (Historique) Python est un langage inteacuteressant pour sa faciliteacute et sa richesse en possibiliteacutes drsquoutilisation En

version de base Python dispose de nombreuses fonctionnaliteacutes inteacutegreacutees en standard

Autour des aptitudes de base standard Il est extensible par des modules de tout bord qui sont

les contributions de deacuteveloppeurs deacutevoueacutes agrave la cause de lrsquoOpen Source Ce sont des

bibliothegraveques qui aident le deacuteveloppeur agrave travailler sur des projets particuliers Plusieurs

bibliothegraveques peuvent ainsi ecirctre installeacutees pour par exemple deacutevelopper des interfaces

graphiques en Python (cas de tkinter)

Python est un langage de programmation dont la premiegravere version est sortie en 1991 Creacuteeacute par

Guido van Rossum il a eacuteteacute porteacute du Macintosh de son deacuteveloppeur qui travaillait agrave cette eacutepoque

au Centrum voor Wiskunde en Informatica aux Pays-Bas jusquagrave se voir associer une

organisation agrave but non lucratif particuliegraverement deacutevoueacutee la PSF (Python Software Foundation)

creacuteeacutee en 2001 Ce langage a eacuteteacute baptiseacute ainsi en hommage agrave la troupe de comiques les laquoMonty

Pythonraquo

5

Deacuteveloppeur Informaticien

Neacuteerlandais (langage Python)

Guido van Rossum

31 janvier 1956 Monty Python est le nom dune troupe ceacutelegravebre

dhumoristes britanniques (1969)

Introduction (Logiciel Open Source vs Proprieacutetaire) La PSF (Python Software Foundation) creacuteeacutee en 2001 appartient agrave Open Source Initiative et agrave la

FSF (Free Software Foundation)

Un logiciel proprieacutetaire appeleacute parfois de maniegravere militante logiciel privateur ou encore logiciel

non libre est un logiciel dont la duplication la modification ou lusage est limiteacute

La deacutesignation Open Source ou lsquoCode Source Ouvertrsquo sapplique aux logiciels dont la licence

respecte des critegraveres preacuteciseacutement eacutetablis par lOpen Source Initiative cest-agrave-dire les possibiliteacutes

de libre redistribution daccegraves au code source et de creacuteation de travaux deacuteriveacutes Mis agrave la

disposition du grand public ce code source est geacuteneacuteralement le reacutesultat dune collaboration

entre deacuteveloppeurs

6

Elaboration drsquoun environnement logiciel Python

Installation Beaucoup de meacutethodologies sont valable pour deacutevelopper un environnement compatible pour une programmation avec le

langage Python (Celui-ci est teacuteleacutechargeable sous deux version 2X ou 3X version de base qui ne sont pas forcement

totalement compatible) Le langage Python est utilisable sous diffeacuterent systegraveme drsquoexploitation (Win LinuxUNIX ou Mac OS)

Une autre alternative encore plus interessante que la premiegravere

est drsquoinstaller le logiciel ANACONDA

Avec lrsquoun des eacutediteurs de scripts

7

Notre choix

Environnement

Notre choix

IDE

Elaboration drsquoun environnement logiciel Python Installation La plateforme ANACONDA installe tout le neacutecessaire (lrsquoenvironnement PYTHON 3X2X) et donnera accegraves aux possibiliteacutes

drsquoeacutetendre lrsquoinstallation aux modules PYTHON neacutecessaires pour le deacuteveloppement de calcul scientifique de lrsquoingeacutenieur ou du

chercheur

Les diffeacuterents modules (librairies) neacutecessaire sont

NUMPY Analyse numeacuterique amp Matrices

SCIPY Extension pour calcul scientifique

MATPLOTLIB Dessin de courbe

SYMPY calcul symbolique

NETWORKX manipulation et gestion des graphes

PLOTLY Librairie en ligne pour dessin de courbes

EVENTLET

TKINTER Librairie pour manipulation drsquointerface graphique

IPYTHON Bibliothegraveque pour calcul scientifique

CYTHON Interface pour environnement CC++

JPYTHON Interface pour environnement JAVA

JUPYTER Editeur orienteacute navigateur

DJANGO-CMS System de gestion de contenus

WIDGY CMS utilisant le Framework Django

hellipencore des milliers de modules

8

Notre choix

Environnement

Notre choix

IDE

Elaboration drsquoun environnement logiciel Python Installation Assistant de lrsquoinstallation de ANACONDA et de PYCHARM

La plateforme ANACONDA = Python Modules LrsquoIDE de programmation PYTHON PyCharm 9

Notre choix

Environnement

Notre choix

De lrsquoIDE

Elaboration drsquoun environnement logiciel Python Personnalisation Sous PyCharm en mode TEREMINAL nous ajoutons

les modules neacutecessaires agrave la plateforme ANACONDA Dans la fenecirctre TERMINAL nous utiliserons CONDA

HPycharmProjectsessaigtconda install mpi4py

Using Anaconda Cloud api site

httpsapianacondaorg

Fetching package metadata

Solving package specifications

Package plan for installation in environment

hAnaconda325

The following packages will be downloaded

package | build

mpi4py-200 | py35_0 264 KB

The following NEW packages will be INSTALLED

mpi4py 200-py35_0 (copy)

Proceed ([y]n) Y

Fetching packages

mpi4py-200-p 100 || Time 00001 16926 kBs

Extracting packages hellip

[COMPLETE]|| 100

Linking packages

[mpi4py]| | 0

[COMPLETE]|| 100

10 Fenecirctre ABOUT

de PyCharm

Ideacutee du jour

Commande

installation modules

Elaboration drsquoun environnement logiciel Python Utilisation Sous PyCharm en mode TEREMINAL nous ajoutons les

modules neacutecessaires agrave la plateforme ANACONDA Caracteacuteristiques du langage script Python

Avantages

bull Tregraves riches librairies pour le calcul scientifique

bull Langage bien structureacute permettant drsquoeacutecrire des

programmes lisibles lsquowe code what we thinkrsquo

bull Drsquoautres librairies hors le cadre du calcul scientifique

(Gestion des services Web Accegraves aux ports seacuterie etc)

bull Graticiel lsquoOpen Sourcersquo derriegravere une large communauteacute

bull Compaciteacute du programme deacuteveloppeacute

bull Beaucoup drsquoalternatives pour lrsquoeacutedition (IDE)

Inconveacutenients

bull Environnement de deacuteveloppement moins

bull Pas tous les algorithmes qui peuvent ecirctre trouveacutes dans le

logiciel

Python peut ecirctre utiliser sous deux modes selon

lrsquointeractiviteacute escompteacutee

1 Commande en ligne

2 Exeacutecution de fichier script py 11 Fenecirctre ABOUT

de PyCharm

Elaboration drsquoun environnement logiciel Python Utilisation Sous PyCharm

Caracteacuteristiques du langage script Python

Python est un langage script informatique geacuteneacuterique et

moderne

bull Langage Python integravegre tous les types de donneacutees

(chaicircne reacuteel int) les controcircles des collections de

donneacutees (listes dictionnaires) et des modegraveles de flux

etc

bull La bibliothegraveque standard integravegre plusieurs Modules

bull Un grand nombre de modules speacutecialiseacutes ou des

applications sont eacutecrites en Python protocoles web

framework web etc Ainsi que le calcul scientifique

- Outils de deacuteveloppement (test automatique geacuteneacuteration de

documentation)

- et encore plushellip

Python peut ecirctre utiliser sous deux modes selon

lrsquointeractiviteacute escompteacutee

1 Commande en ligne

2 Exeacutecution de fichier script py 12

Mode console

Python

Mode

programme (py)

Elaboration drsquoun environnement logiciel Python Utilisation Sous Jupyter Interface WEB pour Python

Cette interface Web est facilement mise en œuvre par son

installation

conda install jupyter (si Anaconda est installeacute)

Ou

pip install jupyter

Le lancement de lrsquointerface est fait en invoquant

Jupiter notebook

Ouvrir le navigateur et entrer lrsquoadresse http1270018888

Pour utiliser un autre PORT autre que 8888

On note http127001Nouveau_Port

Lrsquointerface JUPITER est intuitive et facile agrave utiliser ses

fonctionnaliteacutes sont bull Deacuteploiement sous protocole Internet drsquoaptitude de calcul

Python

bull Toute les possibiliteacutes de gestion des documents lsquoNotebookrsquo

sont offertes

bull Possibiliteacutes drsquoeacutedition non limiteacutees (LaTeX HTML Code hellip)

bull Exeacutecution immeacutediate

bull Compatibiliteacute avec la plupart des langages et scripts de

programmation (CC++ Java JavaScript Julia Python R

Octave hellip)

bull Offre accessibiliteacute agrave Jupyter Drive via Google Drive

bull Options de Reporting avanceacutees (HTML LaTeX PDF)

13

Exemple de

code avec son

exeacutecution

Menu et barre

drsquooutils

Elaboration drsquoun environnement logiciel Python Utilisation Sous Jupyter Interface WEB pour Python

Les notebooks sont accessibles agrave partir de PyCharm Les notebooks sont des solutions de collaboration de preacutefeacuterences

ils integravegrent toute les fonctionnaliteacutes exigeacutees par un chercheur

dans le domaine des sciences humaines ou technologiques

Organisation des documents leur ouverture eacutedition ou mise agrave

jours se fait dans le mecircme endroit sans aucune deacutependance par

rapport agrave la machine puisque les notebooks sont accessible en

ligne (Serveur Ordinateur de bureau ou Peacuteripheacuterique mobile)

Les possibiliteacutes sont eacutetendues ainsi qursquoune documentation

abondante

14

Graphique

3D

Exemple de Code

Python

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse des donneacutees (Panda)

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

15

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse des donneacutees (Panda)

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

import numpy as np

systeme = nparray([[12][3-4]])

valeur=nparray([[3][1]])

sol=nplinalgsolve(systemevaleur)

print(x=sol[00] et y=sol[10])

x= 14 et y= 08

Reacutesolution de systegraveme lineacuteaire AX=b gtgtgt import numpy as np

gtgtgt from scipy import linalg

gtgtgt A = nparray([[1 2] [3 4]])

gtgtgt A

array([[1 2][3 4]])

gtgtgt b = nparray([[5] [6]])

gtgtgt b

array([[5][6]])

gtgtgt linalginv(A)dot(b) slow

array([[-4 ][ 45]])

gtgtgt Adot(linalginv(A)dot(b)) - b Veacuterification array([[888178420e-16][266453526e-15]])

gtgtgt nplinalgsolve(A b) fast

array([[-4 ][ 45]])

gtgtgt Adot(nplinalgsolve(A b)) - b Veacuterification array([[ 0][ 0]])

Importation de la

librairie Numpy

16

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse des donneacutees (Panda)

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

17

import numpy as np

from scipy import signal misc

import matplotlibpyplot as plt

image = miscface(gray=True)astype(npfloat32)

derfilt = nparray([10 -2 10] dtype=npfloat32)

ck = signalcspline2d(image 80)

deriv = (signalsepfir2d(ck derfilt [1]) +signalsepfir2d(ck [1] derfilt))

laplacian = nparray([[010] [1-41] [010]] dtype=npfloat32)

deriv2 = signalconvolve2d(cklaplacianmode=lsquosameboundary=symm)

pltfigure()

pltimshow(image)

pltgray()

plttitle(lsquoImage original)

pltshow()

pltfigure()

pltimshow(deriv)

pltgray()

plttitle(lsquosortie avec filtre spline)

pltshow()

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse des donneacutees (Panda)

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

from matplotlibpyplot import figure hold plot legend draw

from numpy import linspace

import scipystats as stats

from numpyrandom import randn

x = randn(100)

fig = figure()

ax = figadd_subplot(111)

axhist(x bins=30 label=rsquoEmpiricalrsquo)

xlim = axget_xlim()

ylim = axget_ylim()

pdfx = linspace(xlim[0] xlim[1] 200)

pdfy = statsnormpdf(pdfx)

pdfy = pdfy pdfymax() ylim[1]

hold(True)

plot(pdfx pdfy rsquor-rsquo label=rsquoPDFrsquo)

axset_ylim((ylim[0] 12 ylim[1]))

legend()

hold(False)

draw()

18

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse des donneacutees (Panda QtGraph)

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation 19

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Domaines drsquoutilisation

matplotlib inline

from pylab import plot show title xlabel ylabel subplot savefig

from scipy import fft arange ifft

from numpy import sin linspace pi

from scipyiowavfile import readwrite

def plotSpectru(yFs)

n = len(y) lungime semnal

k = arange(n)

T = nFs

frq = kT two sides frequency range

frq = frq[range(n2)] one side frequency range

Y = fft(y)n fft computing and normalization

Y = Y[range(n2)]

plot(frqabs(Y)r) plotting the spectrum

xlabel(Freq (Hz))

ylabel(|Y(freq)|)

Fs = 44100 sampling rate

ratedata=read(fatihawav)

y=data

lungime=len(y)

timp=len(y)44100

t=linspace(0timplen(y))

subplot(211)

plot(ty)

xlabel(Time)

ylabel(Amplitude)

subplot(212)

plotSpectru(yFs)

show()

20

Lecture de la

sourah

Code du traitement

audio

Spectre Amp|Freacuteq

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele (MPI Python)

Theacuteorie des graphes (Networkx)

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

21 Exemple

de graphe

Fenecirctre Aperccedilu

du bloc-note

Importation de la

librairie NetworkX

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

import RPiGPIO as GPIO

GPIOsetmode(GPIOBCM) set board mode to Broadcom

GPIOsetup(17 GPIOOUT) set up pin 17

GPIOsetup(18 GPIOOUT) set up pin 18

GPIOoutput(17 1) turn on pin 17

GPIOoutput(18 1) turn on pin 18

Importation

librairie GPIO

Module

Galileo Gen 2

Module

RaspBerry PI 3

22

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D (Python CAD FreeCAD)

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

23

from OCCSTEPControl import STEPControl_Reader

from OCCIFSelect import IFSelect_RetDone IFSelect_ItemsByEntity

from OCCDisplaySimpleGui import init_display

step_reader = STEPControl_Reader()

status = step_readerReadFile(modelswind_turbinestp)

if status == IFSelect_RetDone check status

failsonly = False

step_readerPrintCheckLoad(failsonly IFSelect_ItemsByEntity)

step_readerPrintCheckTransfer(failsonly IFSelect_ItemsByEntity)

ok = step_readerTransferRoot(1)

_nbs = step_readerNbShapes()

aResShape = step_readerShape(1)

else

print(Error cant read file)

sysexit(0)

display start_display add_menu add_function_to_menu = init_display()

displayDisplayShape(aResShape update=True)

start_display()

Importation

librairie OCC

Maillage Dauphin

Rendu du macirct drsquoun

aeacuterogeacuteneacuterateur

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D (Python CAD FreeCAD)

Bioinformatique et manipulation du geacutenome

POO avec Python (Programmation

Orienteacutee Objet) Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

class Rocket()

Rocket simule une roquette pour un jeu

ou une simulation de physique

def __init__(self)

Each rocket has an (xy) position

selfx = 0

selfy = 0

def move_up(self)

Increacutementation de la position y de la roquette

selfy += 1

Deacutefinir une ensemble de 5 roquettes les stocker dans une liste

my_rockets = []

for x in range(05)

new_rocket = Rocket()

my_rocketsappend(new_rocket)

A remarquer que chaque roquette est un objet agrave part entiegravere

for rocket in my_rockets

print(rocket)

Deacutefinition drsquoune

nouvelle Classe

Instantiation

Meacutethode Constructeur

__init__

24

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D (Python CAD FreeCAD)

Bioinformatique et manipulation

du geacutenome Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

25

from Bio import SeqIO

for seq_record in SeqIOparse(ls_orchidgbk genbank)

print(seq_recordid)

print(repr(seq_recordseq))

print(len(seq_record))

Z785331

Seq(CGTAACAAGGTTTCCGTAGGTGAACCTGCGGAAGGATCATTGATGAGACCGTGGCGC

IUPACAmbiguousDNA())

740

Z784391

Seq(CATTGTTGAGATCACATAATAATTGATCGAGTTAATCTGGAGGATCTGTTTACTGCC

IUPACAmbiguousDNA())

592

Sinon dans une Terminal Python

gtgtgt from BioSeq import Seq

gtgtgt from BioAlphabet import generic_dna

gtgtgt gene = Seq(GTGAAAAAGATGCAATCTATCGTACTCGCACTTTCCCTGGTTCTGGTCGCTCCCATGGCA +

GCACAGGCTGCGGAAATTACGTTAGTCCCGTCAGTAAAATTACAGATAGGCGATCGTGAT +

AATCGTGGCTATTACTGGGATGGAGGTCACTGGCGCGACCACGGCTGGTGGAAACAACAT +

TATGAATGGCGAGGCAATCGCTGGCACCTACACGGACCGCCGCCACCGCCGCGCCACCAT +

AAGAAAGCTCCTCATGATCATCACGGCGGTCATGGTCCAGGCAAACATCACCGCTAA

generic_dna)

gtgtgt genetranslate(table=Bacterial)

Seq(VKKMQSIVLALSLVLVAPMAAQAAEITLVPSVKLQIGDRDNRGYYWDGGHWRDHHR

HasStopCodon(ExtendedIUPACProtein() )

gtgtgt genetranslate(table=Bacterial to_stop=True)

Seq(VKKMQSIVLALSLVLVAPMAAQAAEITLVPSVKLQIGDRDNRGYYWDGGHWRDHHHR

ExtendedIUPACProtein())

Logo de

BioPython Seacutequence drsquoADN

Importation

librairie BIO

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D (Python CAD FreeCAD)

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

26

Installer agrave partir de PyPI

$ pip install mezzanine

Instantier un projet

$ mezzanine-project monproject

$ cd monproject

Instantier une Base de donneacutees

$ python managepy createdb

Lancer le serveur Web

$ python managepy runserver

Installation en mode

commande

URL du site instantieacute

Version Mobile Menu

Version Administration

Sites Web fait avec

Mezzanine

Version Normal

Les environnements de deacuteveloppement inteacutegreacutes de code Python sont nombreux des solutions proprieacutetaires agrave celles portant le

label GPL

Ils sont de trois grandes cateacutegories

Les applications bureaux (Desktop)

Les consoles de commande en ligne Les interfaces orienteacutees Web

Outils drsquoeacutelaboration de code Python (IDE)

27

Les environnements de deacuteveloppement inteacutegreacutes de code Python sont nombreux des solutions proprieacutetaires agrave celles portant le

label GPL Ils sont de trois grandes cateacutegories

Les applications bureaux (Desktop)

Les consoles de commande en ligne

Les interfaces orienteacutees Web

Outils drsquoeacutelaboration de code Python (IDE)

28

Les environnements de deacuteveloppement inteacutegreacutes de code Python sont nombreux des solutions proprieacutetaires agrave celles portant le

label GPL Ils sont de trois grandes cateacutegories

Les applications bureaux (Desktop)

Les consoles de commande en ligne

Les interfaces orienteacutees Web

Outils drsquoeacutelaboration de code Python (IDE)

29

30

Nom de Symbole Les noms de variables en Python peuvent contenir des caractegraveres alphanumeacuteriques a-z A-Z 0-

9 et certains caractegraveres speacuteciaux tel que _ Les noms de variables normales doivent commencer par une lettre

Par convention les noms de variables commencent par une lettre minuscule et les noms de classe commencent par

une lettre majuscule En outre il y a un certain nombre de mots-cleacutes Python qui ne peuvent pas ecirctre utiliseacutes comme

noms de variables Ces mots-cleacutes sont les suivants

and as assert break class continue def del elif else except exec finally for from global if import in

is lambda not or pass print raise return try while with yield

Affectation assignment de variable

x = 10

my_variable = 122

type(x) fonction TYPE retourne le type de la variable entre parenthegravese

builtinsfloat

Verification de type x = 10

veacuterifier si la variable est reacuteelle

type(x) is float

isinstance(x float)

True

z = complex(x)

print(z type(z))

(1+0j) ltclass complexlsquogt

Base de repreacutesentation des donneacutees

31

Operateurs et comparaisons Opeacuterateurs arithmeacutetiques + - (division entiegravere) puissance

30 20

10

NB operators puissance en python nrsquoest pas ^ mais

2 2

4

Les opeacuterateurs de comparaison sont gtltgt=lt===

objects identiques

x1 = x2 = [12]

x1 is x2

True

2 gt= 2 2 lt= 2

(True True)

Chaines de caractegraveres les liste et les dictionnaires s = Hello world

type(s)

builtinsstr

length of the string the number of characters

len(s)

11

replace a substring in a string with somethign else

s2 = sreplace(world test)

print(s2)

Hello test

s[0]

H

Base de repreacutesentation des donneacutees

32

Chaines de caractegraveres les liste et les dictionnaires s = Hello worldldquo

replace a substring in a string with somethign else

s2 = sreplace(world test)

Hello test

print(s2)

s[05]

Hellolsquo

s[05]

Hellolsquo

s[]

Hello worldlsquo

print(value = f 10) Formatage C des variables

value = 1000000

s2 = value1 = 2f value2 = d (31415 15)

print(s2)

value1 = 314 value2 = 1

Listes l = [1234]

print(type(l))

print(l)

ltclass listgt

[1 2 3 4]

l = [1 a 10 1-1j] peuvent ecirctre heacuteteacuterogegravene

print(l)

[1 a 10 (1-1j)]

Base de repreacutesentation des donneacutees

33

Listes start = 10

stop = 30

step = 2

range(start stop step)

range(10 30 2)

list(range(start stop step))

[10 12 14 16 18 20 22 24 26 28]

s2 = list(s)

S2

[H e l l o w o r l d]

Tri de la liste

s2sort()

print(s2)

[ H d e l l l o o r w]

l = []

lappend(A)

lappend(d)

lappend(d)

print(l)

[A d d]

Tuples Ce sont des variables comme les listes mais pas alteacuterables

point = (10 20)

print(point type(point))

(10 20) ltclass tuplegt

Base de repreacutesentation des donneacutees

34

Tuples x y = point

print(x = x)

print(y = y)

x = 10

y = 20

Dictionaries params = parameter1 10 parameter2 20 parameter3 30

print(type(params))

print(params)

ltclass dictgt

fparameter2 20 parameter3 30 parameter1 10

params[parameter1] = A

params[parameter2] = B

Ajouter une nouvelle entreacutee

params[parameter4] = D

print(paramegravetre = + str(params[parameter1]))

print(paramegravetre = + str(params[parameter2]))

print(paramegravetre = + str(params[parameter3]))

print(paramegravetre = + str(params[parameter4]))

paramegravetre = A

paramegravetre = B

paramegravetre = 30

paramegravetre = D

Base de repreacutesentation des donneacutees

35

36

Affectation amp Controcircle conditionnel de flue statement1 = False Crsquoest une affectation

statement2 = False

if statement1 Test valideacute condition (statement1) est VRAIE

print(statement1 is True)

elif statement2 Exeacutecuteacutee condition (statement2) est VRAIE

print(statement2 is True)

else Exeacutecuteacutee sinon

print(statement1 and statement2 are False)

Boucles for x in [123] [123] peut ecirctre deacutesigneacute par range(3) avec print(x+1)

print(x)

1

2

3

for word in [scientific computing with python]

print(word) condition de reacutepeacutetition deacutependante du contenu de la liste

scientific

computing

with

python

l1 = [x2 for x in range(05)] agrave remarquer la compaciteacute du Python

print(l1)

[0 1 4 9 16]

Base de repreacutesentation des donneacutees

37

Boucles var = 0

while var = 1

print jlsquoeacutecris mon programme ici

choix = raw_input(voulez vous recommencer ( on ) )

if choix == n

var = 1

else

lsquovous allez ecirctre renvoyeacute au deacutebut du programmersquo

X = y 2

while x gt 1

If y x == 0

print y lsquo est facteur de rsquo x

break

x -= 1

else

print y lsquo est premierlsquo

Lrsquoutilisation de zip et map peut srsquoaveacutereacutee encore plus efficace

l1 = [1 2 3]

l2 = [4 5 6]

for (x y) in zip(l1 l2)

print x y -- x + y

1 4 -- 5

2 5 -- 7

3 6 -- 9

Base de repreacutesentation des donneacutees

38

s=0123456789

print map(int s)

[0 1 2 3 4 5 6 7 8 9]

Utilisation et

puissance de MAP

Utilisation de ZIP

Intervales range(start stop step)

range(5 10)

5 jusqursquoagrave 10 (exclue) avec un pas de 1

range(0 10 3)

0 3 6 9

range(-10 -100 -30)

-10 -40 -70

Test conditionnel binaire x = 5

y = 10

if x gt y

print(x est grand que y)

else

print(ldquox nrsquoest pas grand que yrdquo)

Dans Python on peut compliquer les chose

x = 5

y = 10

Z = 12

if z gt x gt y

print(lsquoy est petit que x et x est petit que z)

Base de repreacutesentation des donneacutees

39

Boucle avec test conditionnel binaire break continue et else dans une boucle for

for n in range(2 10)

for x in range(2 n)

if n x == 0

print(n lsquoest eacutegal agrave x nx)

break

else

print(n lsquoest premier)

Utilisation de lrsquoinstruction continue

for num in range(2 10)

if num 2 == 0 le symbole deacutesigne lrsquoopeacuteration RESTE de la division

print(ldquoNombre paire trouveacute num)

continue

print(ldquoNombre non premier num)

Base de repreacutesentation des donneacutees

40

Deacutefinition de fonction (proceacutedure avec retour) def fib(n) Ecrire la suite de Fibonacci jusqursquoagrave n

a b = 0 1

while a lt n

print(a end= )

a b = b a+b

print()

fib(2000)

0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597

f = fib deacutesignation par reacutefeacuterence f agrave la fonction fib

f(100)

0 1 1 2 3 5 8 13 21 34 55 89

autre type de deacutefinition de fonction

def ask_ok(prompt retries=4 complaint=Oui or Non srsquoil vou plait )

while True

ok = input(prompt)

if ok in (lsquoo lsquooui lsquoOui)

return True

if ok in (lsquon no non lsquoNon)

return False

retries = retries - 1

if retries lt 0

raise OSError(lsquoUtilisateur non coopeacuteratif)

print(complaint)

Base de repreacutesentation des donneacutees

41

Lrsquoinstruction lambda def make_incrementeur(n)

return lambda x x + n

f = make_incrementeur(42)

f(0)

42

f(1)

43

un autre cas drsquoutilisation

pairs = [(1 one) (2 two) (3 three) (4 four)]

pairssort(key=lambda pair pair[1])

pairs

[(4 four) (1 one) (3 three) (2 two)]

Les annotations dans une fonction Les annotations deacutefinissent des messages de preacutesentation

def f(chiken str eggs str = eggs) -gt str remarquer que la fonction est de type STR

print(Annotations f__annotations__)

print(Arguments chiken eggs)

return chiken + and + eggs

f(spam)

Annotations chiken ltclass strgt return ltclass strgt eggs ltclass strgt

Arguments spam eggs

spam and eggslsquo

Base de repreacutesentation des donneacutees

42

Les deacutecorateurs python Notre deacutecorateur

def decorate(func)

print uJe suis dans la fonction decorate et je deacutecore s func__name__

print uExeacutecution de la fonction s func__name__

return func

Fonction cible utiliseacutee avec DECORATOR

decorate

def foobar(args)

print join(args)

Exemple drsquoappel de la fonction

foobar(A B C D)

Je suis dans la fonction decorate et je deacutecore foobar

Exeacutecution de la fonction foobar

A B C D

Il est posible drsquoattribuer plusieurs deacutecorateurs agrave une seule fonction

decorateur1

decorateur2

def ma_fonction()

instructions

Base de repreacutesentation des donneacutees

43

Manipulation des listes a = [6625 333 333 1 12345]

print(acount(333) acount(6625) acount(x))

2 1 0

ainsert(2 -1)

aappend(333)

a

[6625 333 -1 333 1 12345 333]

aindex(333)

1

aremove(333)

a

[6625 -1 333 1 12345 333]

areverse()

a

[333 12345 1 333 -1 6625]

asort()

a

[-1 1 6625 333 333 12345]

apop()

12345

a

[-1 1 6625 333 333]

Base de repreacutesentation des donneacutees

44

Puissance du langage Python Lrsquoensemble des lignes suiantes peut ecirctre compacteacute par ce qui suit

combs = []

for x in [123]

for y in [314]

if x = y

combsappend((x y))

Combs

Ou bien

[(x y) for x in [123] for y in [314] if x = y]

Donne le mecircme reacutesultat

[(1 3) (1 4) (2 3) (2 1) (2 4) (3 1) (3 4)]

Calcul de la valeur de PI arrondie

from math import pi

[str(round(pi i)) for i in range(1 6)]

[31 314 3142 31416 314159]

Geacuteneacuterateur avec utilisation de YIELD

def generateur()

yield a

yield b

yield cldquo

i=generateur()

for v in i

print v

a

b

c

Base de repreacutesentation des donneacutees

45

Les expressions reacuteguliegraveres en python Les expressions reacuteguliegravere sont utiliseacutees pour veacuterifier la conformiteacute des expressions de

chaines de caractegraveres par rapport agrave un motif Les symboles suivants sont utiliseacutes

^ $ + [ ] | ( )

Le point correspond agrave nimporte quel caractegravere

^ Indique un commencement de segment mais signifie aussi contraire de

$ Fin de segment

[xy] Une liste de segment possible Exemple [abc] eacutequivaut agrave a b ou c

(x|y) Indique un choix multiple type (ps|ump) eacutequivaut agrave ps OU UMP

d le segment est composeacute uniquement de chiffre ce qui eacutequivaut agrave [0-9]

D le segment nest pas composeacute de chiffre ce qui eacutequivaut agrave [^0-9]

s Un espace ce qui eacutequivaut agrave [ tnrfv]

S Pas despace ce qui eacutequivaut agrave [^ tnrfv]

w Preacutesence alphanumeacuterique ce qui eacutequivaut agrave [a-zA-Z0-9_]

W Pas de preacutesence alphanumeacuterique [^a-zA-Z0-9_]

Est un caractegravere deacutechappement T2 Le T soit reacutepeacuteteacute 2 fois

TA19 La seacutequence TA doit ecirctre preacutesente de 1 agrave 9 fois

TAM10 La seacutequence TAM nrsquoexiste pas ou reacutepeacuteteacutee 10 fois

LI1 La seacutequence LI doit ecirctre reacutepeacuteteacutee au moins une fois

Base de repreacutesentation des donneacutees

46

Les expressions reacuteguliegraveres en python Utilisation des expressions reacuteguliegravere

import re

print rematch(rGR()S GRIS)

lt_sreSRE_Match object at 0x02019DE0gt

Une utilisation freacutequente consiste en la validation des valeurs des emails saisis

Utilisation des expressions reacuteguliegravere

import re

mails = [lsquomtamaligmailcomrsquorsquoutmbuniv-bechardzrsquo lsquo8freefrrsquo lsquouniv-bechardzrsquo lsquotamalicdtarsquo]

regex = recompile(rrsquo^[a-z0-9_-]+[a-z0-9_-]+[(com|fr|dz)]+rsquo

for mail in mails

if regexmatch(mail) is not None

print Ce mail s est valide mail

else

print Erreur ce mail s est non valide mail

Ce mail mtamaligmailcom est valide

Ce mail utmbuniv-bechardz est valide

Ce mail 8freefr est valide

Erreur ce mail univ-bechardz est non valide

Erreur ce mail tamalicdta est non valide

Base de repreacutesentation des donneacutees

47

Les fichiers Creacuteer lire et eacutecrire dans un fichier en python Utilisation des expressions reacuteguliegravere

fichier = open(donneestxt r)

print fichier

ltopen file lsquodonneestxt mode r at 0x7ff6cf3fe4b0gt

Le descripteur permet de renseigner la machine sur la maniegravere avec laquelle le fichier est utiliseacute

r pour ouverture en mode READ

w pour ouverture en mode WRITE chaque fois le contenu du fichier est eacutecraseacute sinon python le creacutee

a pour ajout lsquoAPPENDrsquo Si le fichier nexiste pas python le creacutee

b Ouverture en mode Binaire

t Ouverture en mode Texte

x creacutee un nouveau fichier et louvrir pour eacutecriture

proceacutedure geacuteneacuterale pour lrsquoutilisation drsquoun fichier

fichier = open(lsquodonneestxtrsquo r)

print fichierread()

fichierclose()

Lrsquoinstruction WITH peut ecirctre utiliseacutee sans besoin de la fonction CLOSE

with open(datatxt r) as fichier

print fichierread()

Base de repreacutesentation des donneacutees

48

49

Le langage Python est un langage script interpreacuteteacute Le programme portant lrsquoune des extension py pyw ou pwc est

structureacute selon le canevas suivant

Les codifications

usrbinpython27

--codingencodage -

Les imports des librairies

Les instructions

Le langage Python passe pour ecirctre exeacutecuteacute sur deux eacutetapes la premiegravere UNE PRECOMPILATION geacuteneacuteration du code

machine et finalement un eacutecriture en code machine exeacutecutable (selon la machine)

Lrsquoenvironnement drsquoexeacutecution des scripts eacutecrits en Python regroupe les avantages des TRADUCTEURS (travaille en ligne par

ligne) et les COMPILATEURS (puissance de la structure algorithmique)

La bibliothegraveque cx_Freeze sert agrave transformer les fichiers scripts Pyhon py en exeacutecutable exe

Structures algorithmique du python

50

51

Matrices amp Systegravemes lineacuteaires

52

53

54

55

56

57

Le calcul scientifique

Reacutefeacuterences L-V Bertallanfy lsquoGeneral System Theoryrsquo Edition MASSON 1972

58

Page 2: Chap XIII : calcul scientifique avec python

Presentation The University of Bechar was born in 1986 as the National Institutes of Higher Education (INES) in 1992 it becomes University Center and on January 07 2007 it was officially declared as a University Since then many Research Teams have seen the day In 2011 The Laboratory for Energy Systems Studies Applied to Arid Zones was run by a group of young and well motivated researchers (7 Research teams) to solve real problems affecting arid zones SimulIA Team is one of them in the same laboratory The Workload of SimulIA concern studies and applications of modeling and simulation of systems in Arid Areas Research areas Energy amp Environment (Modeling amp Simulation) Application of heat in arid zones Energy economy Mapping and development of resources in arid zones SIMULIA for the task in the short term to develop the computer code for modeling and simulation which can be accessed online Website of the laboratory team httpenergaridwordpresscom

2

Introduction (Geacuteneacuteraliteacutes amp Historique)

Elaboration drsquoun environnement logiciel Python

(Installation Personnalisation amp Utilisation)

Domaines drsquoutilisation

Outils drsquoeacutelaboration de code Python (IDE)

Base de repreacutesentation des donneacutees (Eleacutements de base)

Structure algorithmique du langage Python

Matrices amp Systegravemes lineacuteaires

Systegravemes non-lineacuteaires

Interpolation amp approximation

Inteacutegration amp Diffeacuterentiation numeacuterique

Calcul parallegravele

Conclusion

Plan

3

Introduction (Geacuteneacuteraliteacutes) Les matheacutematiques appliqueacutees et le calcul scientifique jouent un rocircle croissant comme outils non

eacutevitables pour lrsquoeacutelaboration de recherches scientifiques et dans la conception de processus

industriels Le calcul scientifique reste pour toujours lrsquoeacutetape premiegravere de la voie du

deacuteveloppement culturel et technique drsquoun pays donneacute

Par ailleurs le niveau de complexiteacute des systegravemes geacuteneacuteralement manipuleacutes par les ecirctres

humains que nous sommes est tregraves eacuteleveacute agrave un niveau ougrave toute avanceacutee intellectuelle engendrera

des retombeacutes au niveau industriel tant que tous les processus de lrsquoeacuteconomie en deacutependent

En contre partie la majoriteacute des produits technologiques sont juste la solution immeacutediate de bon

nombre de reacutesolutions de requecircte de la vie courante Lavegravenement de linformatique et de ses

produits les langages de programmation de tout bord de lInternet et des teacuteleacutecommunications agrave

chacun ses infrastructures et ses protocoles a reacutevolutionneacute les meacutethodologies de travail des

eacutequipes et laboratoires de recherches Les langages de deacuteveloppement informatique des outils

et suites logiciels sont drsquoun grand secours aux travaux de modeacutelisation et de simulation des

processus

Les matheacutematiques appliqueacutees et linformatique sont les moyens de conception (Modeacutelisation et

Simulation) plus encore ils sont les vecteurs qui ont provoqueacute une ameacutelioration nette dans les

pratiques de tous les jours et aussi dans la vitesse de mise en œuvre de moyens exploitables

Les langage de programmation comme le CC++ le FORTRAN ou le Python ont joueacute un grand

rocircle dans le cours de deacuteveloppement de beaucoup de proceacutedeacutes (Modeacutelisation) et ont faciliteacute la

compreacutehension de beaucoup pheacutenomegravenes (Simulation) 4

Introduction (Historique) Python est un langage inteacuteressant pour sa faciliteacute et sa richesse en possibiliteacutes drsquoutilisation En

version de base Python dispose de nombreuses fonctionnaliteacutes inteacutegreacutees en standard

Autour des aptitudes de base standard Il est extensible par des modules de tout bord qui sont

les contributions de deacuteveloppeurs deacutevoueacutes agrave la cause de lrsquoOpen Source Ce sont des

bibliothegraveques qui aident le deacuteveloppeur agrave travailler sur des projets particuliers Plusieurs

bibliothegraveques peuvent ainsi ecirctre installeacutees pour par exemple deacutevelopper des interfaces

graphiques en Python (cas de tkinter)

Python est un langage de programmation dont la premiegravere version est sortie en 1991 Creacuteeacute par

Guido van Rossum il a eacuteteacute porteacute du Macintosh de son deacuteveloppeur qui travaillait agrave cette eacutepoque

au Centrum voor Wiskunde en Informatica aux Pays-Bas jusquagrave se voir associer une

organisation agrave but non lucratif particuliegraverement deacutevoueacutee la PSF (Python Software Foundation)

creacuteeacutee en 2001 Ce langage a eacuteteacute baptiseacute ainsi en hommage agrave la troupe de comiques les laquoMonty

Pythonraquo

5

Deacuteveloppeur Informaticien

Neacuteerlandais (langage Python)

Guido van Rossum

31 janvier 1956 Monty Python est le nom dune troupe ceacutelegravebre

dhumoristes britanniques (1969)

Introduction (Logiciel Open Source vs Proprieacutetaire) La PSF (Python Software Foundation) creacuteeacutee en 2001 appartient agrave Open Source Initiative et agrave la

FSF (Free Software Foundation)

Un logiciel proprieacutetaire appeleacute parfois de maniegravere militante logiciel privateur ou encore logiciel

non libre est un logiciel dont la duplication la modification ou lusage est limiteacute

La deacutesignation Open Source ou lsquoCode Source Ouvertrsquo sapplique aux logiciels dont la licence

respecte des critegraveres preacuteciseacutement eacutetablis par lOpen Source Initiative cest-agrave-dire les possibiliteacutes

de libre redistribution daccegraves au code source et de creacuteation de travaux deacuteriveacutes Mis agrave la

disposition du grand public ce code source est geacuteneacuteralement le reacutesultat dune collaboration

entre deacuteveloppeurs

6

Elaboration drsquoun environnement logiciel Python

Installation Beaucoup de meacutethodologies sont valable pour deacutevelopper un environnement compatible pour une programmation avec le

langage Python (Celui-ci est teacuteleacutechargeable sous deux version 2X ou 3X version de base qui ne sont pas forcement

totalement compatible) Le langage Python est utilisable sous diffeacuterent systegraveme drsquoexploitation (Win LinuxUNIX ou Mac OS)

Une autre alternative encore plus interessante que la premiegravere

est drsquoinstaller le logiciel ANACONDA

Avec lrsquoun des eacutediteurs de scripts

7

Notre choix

Environnement

Notre choix

IDE

Elaboration drsquoun environnement logiciel Python Installation La plateforme ANACONDA installe tout le neacutecessaire (lrsquoenvironnement PYTHON 3X2X) et donnera accegraves aux possibiliteacutes

drsquoeacutetendre lrsquoinstallation aux modules PYTHON neacutecessaires pour le deacuteveloppement de calcul scientifique de lrsquoingeacutenieur ou du

chercheur

Les diffeacuterents modules (librairies) neacutecessaire sont

NUMPY Analyse numeacuterique amp Matrices

SCIPY Extension pour calcul scientifique

MATPLOTLIB Dessin de courbe

SYMPY calcul symbolique

NETWORKX manipulation et gestion des graphes

PLOTLY Librairie en ligne pour dessin de courbes

EVENTLET

TKINTER Librairie pour manipulation drsquointerface graphique

IPYTHON Bibliothegraveque pour calcul scientifique

CYTHON Interface pour environnement CC++

JPYTHON Interface pour environnement JAVA

JUPYTER Editeur orienteacute navigateur

DJANGO-CMS System de gestion de contenus

WIDGY CMS utilisant le Framework Django

hellipencore des milliers de modules

8

Notre choix

Environnement

Notre choix

IDE

Elaboration drsquoun environnement logiciel Python Installation Assistant de lrsquoinstallation de ANACONDA et de PYCHARM

La plateforme ANACONDA = Python Modules LrsquoIDE de programmation PYTHON PyCharm 9

Notre choix

Environnement

Notre choix

De lrsquoIDE

Elaboration drsquoun environnement logiciel Python Personnalisation Sous PyCharm en mode TEREMINAL nous ajoutons

les modules neacutecessaires agrave la plateforme ANACONDA Dans la fenecirctre TERMINAL nous utiliserons CONDA

HPycharmProjectsessaigtconda install mpi4py

Using Anaconda Cloud api site

httpsapianacondaorg

Fetching package metadata

Solving package specifications

Package plan for installation in environment

hAnaconda325

The following packages will be downloaded

package | build

mpi4py-200 | py35_0 264 KB

The following NEW packages will be INSTALLED

mpi4py 200-py35_0 (copy)

Proceed ([y]n) Y

Fetching packages

mpi4py-200-p 100 || Time 00001 16926 kBs

Extracting packages hellip

[COMPLETE]|| 100

Linking packages

[mpi4py]| | 0

[COMPLETE]|| 100

10 Fenecirctre ABOUT

de PyCharm

Ideacutee du jour

Commande

installation modules

Elaboration drsquoun environnement logiciel Python Utilisation Sous PyCharm en mode TEREMINAL nous ajoutons les

modules neacutecessaires agrave la plateforme ANACONDA Caracteacuteristiques du langage script Python

Avantages

bull Tregraves riches librairies pour le calcul scientifique

bull Langage bien structureacute permettant drsquoeacutecrire des

programmes lisibles lsquowe code what we thinkrsquo

bull Drsquoautres librairies hors le cadre du calcul scientifique

(Gestion des services Web Accegraves aux ports seacuterie etc)

bull Graticiel lsquoOpen Sourcersquo derriegravere une large communauteacute

bull Compaciteacute du programme deacuteveloppeacute

bull Beaucoup drsquoalternatives pour lrsquoeacutedition (IDE)

Inconveacutenients

bull Environnement de deacuteveloppement moins

bull Pas tous les algorithmes qui peuvent ecirctre trouveacutes dans le

logiciel

Python peut ecirctre utiliser sous deux modes selon

lrsquointeractiviteacute escompteacutee

1 Commande en ligne

2 Exeacutecution de fichier script py 11 Fenecirctre ABOUT

de PyCharm

Elaboration drsquoun environnement logiciel Python Utilisation Sous PyCharm

Caracteacuteristiques du langage script Python

Python est un langage script informatique geacuteneacuterique et

moderne

bull Langage Python integravegre tous les types de donneacutees

(chaicircne reacuteel int) les controcircles des collections de

donneacutees (listes dictionnaires) et des modegraveles de flux

etc

bull La bibliothegraveque standard integravegre plusieurs Modules

bull Un grand nombre de modules speacutecialiseacutes ou des

applications sont eacutecrites en Python protocoles web

framework web etc Ainsi que le calcul scientifique

- Outils de deacuteveloppement (test automatique geacuteneacuteration de

documentation)

- et encore plushellip

Python peut ecirctre utiliser sous deux modes selon

lrsquointeractiviteacute escompteacutee

1 Commande en ligne

2 Exeacutecution de fichier script py 12

Mode console

Python

Mode

programme (py)

Elaboration drsquoun environnement logiciel Python Utilisation Sous Jupyter Interface WEB pour Python

Cette interface Web est facilement mise en œuvre par son

installation

conda install jupyter (si Anaconda est installeacute)

Ou

pip install jupyter

Le lancement de lrsquointerface est fait en invoquant

Jupiter notebook

Ouvrir le navigateur et entrer lrsquoadresse http1270018888

Pour utiliser un autre PORT autre que 8888

On note http127001Nouveau_Port

Lrsquointerface JUPITER est intuitive et facile agrave utiliser ses

fonctionnaliteacutes sont bull Deacuteploiement sous protocole Internet drsquoaptitude de calcul

Python

bull Toute les possibiliteacutes de gestion des documents lsquoNotebookrsquo

sont offertes

bull Possibiliteacutes drsquoeacutedition non limiteacutees (LaTeX HTML Code hellip)

bull Exeacutecution immeacutediate

bull Compatibiliteacute avec la plupart des langages et scripts de

programmation (CC++ Java JavaScript Julia Python R

Octave hellip)

bull Offre accessibiliteacute agrave Jupyter Drive via Google Drive

bull Options de Reporting avanceacutees (HTML LaTeX PDF)

13

Exemple de

code avec son

exeacutecution

Menu et barre

drsquooutils

Elaboration drsquoun environnement logiciel Python Utilisation Sous Jupyter Interface WEB pour Python

Les notebooks sont accessibles agrave partir de PyCharm Les notebooks sont des solutions de collaboration de preacutefeacuterences

ils integravegrent toute les fonctionnaliteacutes exigeacutees par un chercheur

dans le domaine des sciences humaines ou technologiques

Organisation des documents leur ouverture eacutedition ou mise agrave

jours se fait dans le mecircme endroit sans aucune deacutependance par

rapport agrave la machine puisque les notebooks sont accessible en

ligne (Serveur Ordinateur de bureau ou Peacuteripheacuterique mobile)

Les possibiliteacutes sont eacutetendues ainsi qursquoune documentation

abondante

14

Graphique

3D

Exemple de Code

Python

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse des donneacutees (Panda)

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

15

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse des donneacutees (Panda)

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

import numpy as np

systeme = nparray([[12][3-4]])

valeur=nparray([[3][1]])

sol=nplinalgsolve(systemevaleur)

print(x=sol[00] et y=sol[10])

x= 14 et y= 08

Reacutesolution de systegraveme lineacuteaire AX=b gtgtgt import numpy as np

gtgtgt from scipy import linalg

gtgtgt A = nparray([[1 2] [3 4]])

gtgtgt A

array([[1 2][3 4]])

gtgtgt b = nparray([[5] [6]])

gtgtgt b

array([[5][6]])

gtgtgt linalginv(A)dot(b) slow

array([[-4 ][ 45]])

gtgtgt Adot(linalginv(A)dot(b)) - b Veacuterification array([[888178420e-16][266453526e-15]])

gtgtgt nplinalgsolve(A b) fast

array([[-4 ][ 45]])

gtgtgt Adot(nplinalgsolve(A b)) - b Veacuterification array([[ 0][ 0]])

Importation de la

librairie Numpy

16

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse des donneacutees (Panda)

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

17

import numpy as np

from scipy import signal misc

import matplotlibpyplot as plt

image = miscface(gray=True)astype(npfloat32)

derfilt = nparray([10 -2 10] dtype=npfloat32)

ck = signalcspline2d(image 80)

deriv = (signalsepfir2d(ck derfilt [1]) +signalsepfir2d(ck [1] derfilt))

laplacian = nparray([[010] [1-41] [010]] dtype=npfloat32)

deriv2 = signalconvolve2d(cklaplacianmode=lsquosameboundary=symm)

pltfigure()

pltimshow(image)

pltgray()

plttitle(lsquoImage original)

pltshow()

pltfigure()

pltimshow(deriv)

pltgray()

plttitle(lsquosortie avec filtre spline)

pltshow()

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse des donneacutees (Panda)

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

from matplotlibpyplot import figure hold plot legend draw

from numpy import linspace

import scipystats as stats

from numpyrandom import randn

x = randn(100)

fig = figure()

ax = figadd_subplot(111)

axhist(x bins=30 label=rsquoEmpiricalrsquo)

xlim = axget_xlim()

ylim = axget_ylim()

pdfx = linspace(xlim[0] xlim[1] 200)

pdfy = statsnormpdf(pdfx)

pdfy = pdfy pdfymax() ylim[1]

hold(True)

plot(pdfx pdfy rsquor-rsquo label=rsquoPDFrsquo)

axset_ylim((ylim[0] 12 ylim[1]))

legend()

hold(False)

draw()

18

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse des donneacutees (Panda QtGraph)

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation 19

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Domaines drsquoutilisation

matplotlib inline

from pylab import plot show title xlabel ylabel subplot savefig

from scipy import fft arange ifft

from numpy import sin linspace pi

from scipyiowavfile import readwrite

def plotSpectru(yFs)

n = len(y) lungime semnal

k = arange(n)

T = nFs

frq = kT two sides frequency range

frq = frq[range(n2)] one side frequency range

Y = fft(y)n fft computing and normalization

Y = Y[range(n2)]

plot(frqabs(Y)r) plotting the spectrum

xlabel(Freq (Hz))

ylabel(|Y(freq)|)

Fs = 44100 sampling rate

ratedata=read(fatihawav)

y=data

lungime=len(y)

timp=len(y)44100

t=linspace(0timplen(y))

subplot(211)

plot(ty)

xlabel(Time)

ylabel(Amplitude)

subplot(212)

plotSpectru(yFs)

show()

20

Lecture de la

sourah

Code du traitement

audio

Spectre Amp|Freacuteq

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele (MPI Python)

Theacuteorie des graphes (Networkx)

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

21 Exemple

de graphe

Fenecirctre Aperccedilu

du bloc-note

Importation de la

librairie NetworkX

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

import RPiGPIO as GPIO

GPIOsetmode(GPIOBCM) set board mode to Broadcom

GPIOsetup(17 GPIOOUT) set up pin 17

GPIOsetup(18 GPIOOUT) set up pin 18

GPIOoutput(17 1) turn on pin 17

GPIOoutput(18 1) turn on pin 18

Importation

librairie GPIO

Module

Galileo Gen 2

Module

RaspBerry PI 3

22

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D (Python CAD FreeCAD)

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

23

from OCCSTEPControl import STEPControl_Reader

from OCCIFSelect import IFSelect_RetDone IFSelect_ItemsByEntity

from OCCDisplaySimpleGui import init_display

step_reader = STEPControl_Reader()

status = step_readerReadFile(modelswind_turbinestp)

if status == IFSelect_RetDone check status

failsonly = False

step_readerPrintCheckLoad(failsonly IFSelect_ItemsByEntity)

step_readerPrintCheckTransfer(failsonly IFSelect_ItemsByEntity)

ok = step_readerTransferRoot(1)

_nbs = step_readerNbShapes()

aResShape = step_readerShape(1)

else

print(Error cant read file)

sysexit(0)

display start_display add_menu add_function_to_menu = init_display()

displayDisplayShape(aResShape update=True)

start_display()

Importation

librairie OCC

Maillage Dauphin

Rendu du macirct drsquoun

aeacuterogeacuteneacuterateur

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D (Python CAD FreeCAD)

Bioinformatique et manipulation du geacutenome

POO avec Python (Programmation

Orienteacutee Objet) Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

class Rocket()

Rocket simule une roquette pour un jeu

ou une simulation de physique

def __init__(self)

Each rocket has an (xy) position

selfx = 0

selfy = 0

def move_up(self)

Increacutementation de la position y de la roquette

selfy += 1

Deacutefinir une ensemble de 5 roquettes les stocker dans une liste

my_rockets = []

for x in range(05)

new_rocket = Rocket()

my_rocketsappend(new_rocket)

A remarquer que chaque roquette est un objet agrave part entiegravere

for rocket in my_rockets

print(rocket)

Deacutefinition drsquoune

nouvelle Classe

Instantiation

Meacutethode Constructeur

__init__

24

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D (Python CAD FreeCAD)

Bioinformatique et manipulation

du geacutenome Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

25

from Bio import SeqIO

for seq_record in SeqIOparse(ls_orchidgbk genbank)

print(seq_recordid)

print(repr(seq_recordseq))

print(len(seq_record))

Z785331

Seq(CGTAACAAGGTTTCCGTAGGTGAACCTGCGGAAGGATCATTGATGAGACCGTGGCGC

IUPACAmbiguousDNA())

740

Z784391

Seq(CATTGTTGAGATCACATAATAATTGATCGAGTTAATCTGGAGGATCTGTTTACTGCC

IUPACAmbiguousDNA())

592

Sinon dans une Terminal Python

gtgtgt from BioSeq import Seq

gtgtgt from BioAlphabet import generic_dna

gtgtgt gene = Seq(GTGAAAAAGATGCAATCTATCGTACTCGCACTTTCCCTGGTTCTGGTCGCTCCCATGGCA +

GCACAGGCTGCGGAAATTACGTTAGTCCCGTCAGTAAAATTACAGATAGGCGATCGTGAT +

AATCGTGGCTATTACTGGGATGGAGGTCACTGGCGCGACCACGGCTGGTGGAAACAACAT +

TATGAATGGCGAGGCAATCGCTGGCACCTACACGGACCGCCGCCACCGCCGCGCCACCAT +

AAGAAAGCTCCTCATGATCATCACGGCGGTCATGGTCCAGGCAAACATCACCGCTAA

generic_dna)

gtgtgt genetranslate(table=Bacterial)

Seq(VKKMQSIVLALSLVLVAPMAAQAAEITLVPSVKLQIGDRDNRGYYWDGGHWRDHHR

HasStopCodon(ExtendedIUPACProtein() )

gtgtgt genetranslate(table=Bacterial to_stop=True)

Seq(VKKMQSIVLALSLVLVAPMAAQAAEITLVPSVKLQIGDRDNRGYYWDGGHWRDHHHR

ExtendedIUPACProtein())

Logo de

BioPython Seacutequence drsquoADN

Importation

librairie BIO

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D (Python CAD FreeCAD)

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

26

Installer agrave partir de PyPI

$ pip install mezzanine

Instantier un projet

$ mezzanine-project monproject

$ cd monproject

Instantier une Base de donneacutees

$ python managepy createdb

Lancer le serveur Web

$ python managepy runserver

Installation en mode

commande

URL du site instantieacute

Version Mobile Menu

Version Administration

Sites Web fait avec

Mezzanine

Version Normal

Les environnements de deacuteveloppement inteacutegreacutes de code Python sont nombreux des solutions proprieacutetaires agrave celles portant le

label GPL

Ils sont de trois grandes cateacutegories

Les applications bureaux (Desktop)

Les consoles de commande en ligne Les interfaces orienteacutees Web

Outils drsquoeacutelaboration de code Python (IDE)

27

Les environnements de deacuteveloppement inteacutegreacutes de code Python sont nombreux des solutions proprieacutetaires agrave celles portant le

label GPL Ils sont de trois grandes cateacutegories

Les applications bureaux (Desktop)

Les consoles de commande en ligne

Les interfaces orienteacutees Web

Outils drsquoeacutelaboration de code Python (IDE)

28

Les environnements de deacuteveloppement inteacutegreacutes de code Python sont nombreux des solutions proprieacutetaires agrave celles portant le

label GPL Ils sont de trois grandes cateacutegories

Les applications bureaux (Desktop)

Les consoles de commande en ligne

Les interfaces orienteacutees Web

Outils drsquoeacutelaboration de code Python (IDE)

29

30

Nom de Symbole Les noms de variables en Python peuvent contenir des caractegraveres alphanumeacuteriques a-z A-Z 0-

9 et certains caractegraveres speacuteciaux tel que _ Les noms de variables normales doivent commencer par une lettre

Par convention les noms de variables commencent par une lettre minuscule et les noms de classe commencent par

une lettre majuscule En outre il y a un certain nombre de mots-cleacutes Python qui ne peuvent pas ecirctre utiliseacutes comme

noms de variables Ces mots-cleacutes sont les suivants

and as assert break class continue def del elif else except exec finally for from global if import in

is lambda not or pass print raise return try while with yield

Affectation assignment de variable

x = 10

my_variable = 122

type(x) fonction TYPE retourne le type de la variable entre parenthegravese

builtinsfloat

Verification de type x = 10

veacuterifier si la variable est reacuteelle

type(x) is float

isinstance(x float)

True

z = complex(x)

print(z type(z))

(1+0j) ltclass complexlsquogt

Base de repreacutesentation des donneacutees

31

Operateurs et comparaisons Opeacuterateurs arithmeacutetiques + - (division entiegravere) puissance

30 20

10

NB operators puissance en python nrsquoest pas ^ mais

2 2

4

Les opeacuterateurs de comparaison sont gtltgt=lt===

objects identiques

x1 = x2 = [12]

x1 is x2

True

2 gt= 2 2 lt= 2

(True True)

Chaines de caractegraveres les liste et les dictionnaires s = Hello world

type(s)

builtinsstr

length of the string the number of characters

len(s)

11

replace a substring in a string with somethign else

s2 = sreplace(world test)

print(s2)

Hello test

s[0]

H

Base de repreacutesentation des donneacutees

32

Chaines de caractegraveres les liste et les dictionnaires s = Hello worldldquo

replace a substring in a string with somethign else

s2 = sreplace(world test)

Hello test

print(s2)

s[05]

Hellolsquo

s[05]

Hellolsquo

s[]

Hello worldlsquo

print(value = f 10) Formatage C des variables

value = 1000000

s2 = value1 = 2f value2 = d (31415 15)

print(s2)

value1 = 314 value2 = 1

Listes l = [1234]

print(type(l))

print(l)

ltclass listgt

[1 2 3 4]

l = [1 a 10 1-1j] peuvent ecirctre heacuteteacuterogegravene

print(l)

[1 a 10 (1-1j)]

Base de repreacutesentation des donneacutees

33

Listes start = 10

stop = 30

step = 2

range(start stop step)

range(10 30 2)

list(range(start stop step))

[10 12 14 16 18 20 22 24 26 28]

s2 = list(s)

S2

[H e l l o w o r l d]

Tri de la liste

s2sort()

print(s2)

[ H d e l l l o o r w]

l = []

lappend(A)

lappend(d)

lappend(d)

print(l)

[A d d]

Tuples Ce sont des variables comme les listes mais pas alteacuterables

point = (10 20)

print(point type(point))

(10 20) ltclass tuplegt

Base de repreacutesentation des donneacutees

34

Tuples x y = point

print(x = x)

print(y = y)

x = 10

y = 20

Dictionaries params = parameter1 10 parameter2 20 parameter3 30

print(type(params))

print(params)

ltclass dictgt

fparameter2 20 parameter3 30 parameter1 10

params[parameter1] = A

params[parameter2] = B

Ajouter une nouvelle entreacutee

params[parameter4] = D

print(paramegravetre = + str(params[parameter1]))

print(paramegravetre = + str(params[parameter2]))

print(paramegravetre = + str(params[parameter3]))

print(paramegravetre = + str(params[parameter4]))

paramegravetre = A

paramegravetre = B

paramegravetre = 30

paramegravetre = D

Base de repreacutesentation des donneacutees

35

36

Affectation amp Controcircle conditionnel de flue statement1 = False Crsquoest une affectation

statement2 = False

if statement1 Test valideacute condition (statement1) est VRAIE

print(statement1 is True)

elif statement2 Exeacutecuteacutee condition (statement2) est VRAIE

print(statement2 is True)

else Exeacutecuteacutee sinon

print(statement1 and statement2 are False)

Boucles for x in [123] [123] peut ecirctre deacutesigneacute par range(3) avec print(x+1)

print(x)

1

2

3

for word in [scientific computing with python]

print(word) condition de reacutepeacutetition deacutependante du contenu de la liste

scientific

computing

with

python

l1 = [x2 for x in range(05)] agrave remarquer la compaciteacute du Python

print(l1)

[0 1 4 9 16]

Base de repreacutesentation des donneacutees

37

Boucles var = 0

while var = 1

print jlsquoeacutecris mon programme ici

choix = raw_input(voulez vous recommencer ( on ) )

if choix == n

var = 1

else

lsquovous allez ecirctre renvoyeacute au deacutebut du programmersquo

X = y 2

while x gt 1

If y x == 0

print y lsquo est facteur de rsquo x

break

x -= 1

else

print y lsquo est premierlsquo

Lrsquoutilisation de zip et map peut srsquoaveacutereacutee encore plus efficace

l1 = [1 2 3]

l2 = [4 5 6]

for (x y) in zip(l1 l2)

print x y -- x + y

1 4 -- 5

2 5 -- 7

3 6 -- 9

Base de repreacutesentation des donneacutees

38

s=0123456789

print map(int s)

[0 1 2 3 4 5 6 7 8 9]

Utilisation et

puissance de MAP

Utilisation de ZIP

Intervales range(start stop step)

range(5 10)

5 jusqursquoagrave 10 (exclue) avec un pas de 1

range(0 10 3)

0 3 6 9

range(-10 -100 -30)

-10 -40 -70

Test conditionnel binaire x = 5

y = 10

if x gt y

print(x est grand que y)

else

print(ldquox nrsquoest pas grand que yrdquo)

Dans Python on peut compliquer les chose

x = 5

y = 10

Z = 12

if z gt x gt y

print(lsquoy est petit que x et x est petit que z)

Base de repreacutesentation des donneacutees

39

Boucle avec test conditionnel binaire break continue et else dans une boucle for

for n in range(2 10)

for x in range(2 n)

if n x == 0

print(n lsquoest eacutegal agrave x nx)

break

else

print(n lsquoest premier)

Utilisation de lrsquoinstruction continue

for num in range(2 10)

if num 2 == 0 le symbole deacutesigne lrsquoopeacuteration RESTE de la division

print(ldquoNombre paire trouveacute num)

continue

print(ldquoNombre non premier num)

Base de repreacutesentation des donneacutees

40

Deacutefinition de fonction (proceacutedure avec retour) def fib(n) Ecrire la suite de Fibonacci jusqursquoagrave n

a b = 0 1

while a lt n

print(a end= )

a b = b a+b

print()

fib(2000)

0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597

f = fib deacutesignation par reacutefeacuterence f agrave la fonction fib

f(100)

0 1 1 2 3 5 8 13 21 34 55 89

autre type de deacutefinition de fonction

def ask_ok(prompt retries=4 complaint=Oui or Non srsquoil vou plait )

while True

ok = input(prompt)

if ok in (lsquoo lsquooui lsquoOui)

return True

if ok in (lsquon no non lsquoNon)

return False

retries = retries - 1

if retries lt 0

raise OSError(lsquoUtilisateur non coopeacuteratif)

print(complaint)

Base de repreacutesentation des donneacutees

41

Lrsquoinstruction lambda def make_incrementeur(n)

return lambda x x + n

f = make_incrementeur(42)

f(0)

42

f(1)

43

un autre cas drsquoutilisation

pairs = [(1 one) (2 two) (3 three) (4 four)]

pairssort(key=lambda pair pair[1])

pairs

[(4 four) (1 one) (3 three) (2 two)]

Les annotations dans une fonction Les annotations deacutefinissent des messages de preacutesentation

def f(chiken str eggs str = eggs) -gt str remarquer que la fonction est de type STR

print(Annotations f__annotations__)

print(Arguments chiken eggs)

return chiken + and + eggs

f(spam)

Annotations chiken ltclass strgt return ltclass strgt eggs ltclass strgt

Arguments spam eggs

spam and eggslsquo

Base de repreacutesentation des donneacutees

42

Les deacutecorateurs python Notre deacutecorateur

def decorate(func)

print uJe suis dans la fonction decorate et je deacutecore s func__name__

print uExeacutecution de la fonction s func__name__

return func

Fonction cible utiliseacutee avec DECORATOR

decorate

def foobar(args)

print join(args)

Exemple drsquoappel de la fonction

foobar(A B C D)

Je suis dans la fonction decorate et je deacutecore foobar

Exeacutecution de la fonction foobar

A B C D

Il est posible drsquoattribuer plusieurs deacutecorateurs agrave une seule fonction

decorateur1

decorateur2

def ma_fonction()

instructions

Base de repreacutesentation des donneacutees

43

Manipulation des listes a = [6625 333 333 1 12345]

print(acount(333) acount(6625) acount(x))

2 1 0

ainsert(2 -1)

aappend(333)

a

[6625 333 -1 333 1 12345 333]

aindex(333)

1

aremove(333)

a

[6625 -1 333 1 12345 333]

areverse()

a

[333 12345 1 333 -1 6625]

asort()

a

[-1 1 6625 333 333 12345]

apop()

12345

a

[-1 1 6625 333 333]

Base de repreacutesentation des donneacutees

44

Puissance du langage Python Lrsquoensemble des lignes suiantes peut ecirctre compacteacute par ce qui suit

combs = []

for x in [123]

for y in [314]

if x = y

combsappend((x y))

Combs

Ou bien

[(x y) for x in [123] for y in [314] if x = y]

Donne le mecircme reacutesultat

[(1 3) (1 4) (2 3) (2 1) (2 4) (3 1) (3 4)]

Calcul de la valeur de PI arrondie

from math import pi

[str(round(pi i)) for i in range(1 6)]

[31 314 3142 31416 314159]

Geacuteneacuterateur avec utilisation de YIELD

def generateur()

yield a

yield b

yield cldquo

i=generateur()

for v in i

print v

a

b

c

Base de repreacutesentation des donneacutees

45

Les expressions reacuteguliegraveres en python Les expressions reacuteguliegravere sont utiliseacutees pour veacuterifier la conformiteacute des expressions de

chaines de caractegraveres par rapport agrave un motif Les symboles suivants sont utiliseacutes

^ $ + [ ] | ( )

Le point correspond agrave nimporte quel caractegravere

^ Indique un commencement de segment mais signifie aussi contraire de

$ Fin de segment

[xy] Une liste de segment possible Exemple [abc] eacutequivaut agrave a b ou c

(x|y) Indique un choix multiple type (ps|ump) eacutequivaut agrave ps OU UMP

d le segment est composeacute uniquement de chiffre ce qui eacutequivaut agrave [0-9]

D le segment nest pas composeacute de chiffre ce qui eacutequivaut agrave [^0-9]

s Un espace ce qui eacutequivaut agrave [ tnrfv]

S Pas despace ce qui eacutequivaut agrave [^ tnrfv]

w Preacutesence alphanumeacuterique ce qui eacutequivaut agrave [a-zA-Z0-9_]

W Pas de preacutesence alphanumeacuterique [^a-zA-Z0-9_]

Est un caractegravere deacutechappement T2 Le T soit reacutepeacuteteacute 2 fois

TA19 La seacutequence TA doit ecirctre preacutesente de 1 agrave 9 fois

TAM10 La seacutequence TAM nrsquoexiste pas ou reacutepeacuteteacutee 10 fois

LI1 La seacutequence LI doit ecirctre reacutepeacuteteacutee au moins une fois

Base de repreacutesentation des donneacutees

46

Les expressions reacuteguliegraveres en python Utilisation des expressions reacuteguliegravere

import re

print rematch(rGR()S GRIS)

lt_sreSRE_Match object at 0x02019DE0gt

Une utilisation freacutequente consiste en la validation des valeurs des emails saisis

Utilisation des expressions reacuteguliegravere

import re

mails = [lsquomtamaligmailcomrsquorsquoutmbuniv-bechardzrsquo lsquo8freefrrsquo lsquouniv-bechardzrsquo lsquotamalicdtarsquo]

regex = recompile(rrsquo^[a-z0-9_-]+[a-z0-9_-]+[(com|fr|dz)]+rsquo

for mail in mails

if regexmatch(mail) is not None

print Ce mail s est valide mail

else

print Erreur ce mail s est non valide mail

Ce mail mtamaligmailcom est valide

Ce mail utmbuniv-bechardz est valide

Ce mail 8freefr est valide

Erreur ce mail univ-bechardz est non valide

Erreur ce mail tamalicdta est non valide

Base de repreacutesentation des donneacutees

47

Les fichiers Creacuteer lire et eacutecrire dans un fichier en python Utilisation des expressions reacuteguliegravere

fichier = open(donneestxt r)

print fichier

ltopen file lsquodonneestxt mode r at 0x7ff6cf3fe4b0gt

Le descripteur permet de renseigner la machine sur la maniegravere avec laquelle le fichier est utiliseacute

r pour ouverture en mode READ

w pour ouverture en mode WRITE chaque fois le contenu du fichier est eacutecraseacute sinon python le creacutee

a pour ajout lsquoAPPENDrsquo Si le fichier nexiste pas python le creacutee

b Ouverture en mode Binaire

t Ouverture en mode Texte

x creacutee un nouveau fichier et louvrir pour eacutecriture

proceacutedure geacuteneacuterale pour lrsquoutilisation drsquoun fichier

fichier = open(lsquodonneestxtrsquo r)

print fichierread()

fichierclose()

Lrsquoinstruction WITH peut ecirctre utiliseacutee sans besoin de la fonction CLOSE

with open(datatxt r) as fichier

print fichierread()

Base de repreacutesentation des donneacutees

48

49

Le langage Python est un langage script interpreacuteteacute Le programme portant lrsquoune des extension py pyw ou pwc est

structureacute selon le canevas suivant

Les codifications

usrbinpython27

--codingencodage -

Les imports des librairies

Les instructions

Le langage Python passe pour ecirctre exeacutecuteacute sur deux eacutetapes la premiegravere UNE PRECOMPILATION geacuteneacuteration du code

machine et finalement un eacutecriture en code machine exeacutecutable (selon la machine)

Lrsquoenvironnement drsquoexeacutecution des scripts eacutecrits en Python regroupe les avantages des TRADUCTEURS (travaille en ligne par

ligne) et les COMPILATEURS (puissance de la structure algorithmique)

La bibliothegraveque cx_Freeze sert agrave transformer les fichiers scripts Pyhon py en exeacutecutable exe

Structures algorithmique du python

50

51

Matrices amp Systegravemes lineacuteaires

52

53

54

55

56

57

Le calcul scientifique

Reacutefeacuterences L-V Bertallanfy lsquoGeneral System Theoryrsquo Edition MASSON 1972

58

Page 3: Chap XIII : calcul scientifique avec python

Introduction (Geacuteneacuteraliteacutes amp Historique)

Elaboration drsquoun environnement logiciel Python

(Installation Personnalisation amp Utilisation)

Domaines drsquoutilisation

Outils drsquoeacutelaboration de code Python (IDE)

Base de repreacutesentation des donneacutees (Eleacutements de base)

Structure algorithmique du langage Python

Matrices amp Systegravemes lineacuteaires

Systegravemes non-lineacuteaires

Interpolation amp approximation

Inteacutegration amp Diffeacuterentiation numeacuterique

Calcul parallegravele

Conclusion

Plan

3

Introduction (Geacuteneacuteraliteacutes) Les matheacutematiques appliqueacutees et le calcul scientifique jouent un rocircle croissant comme outils non

eacutevitables pour lrsquoeacutelaboration de recherches scientifiques et dans la conception de processus

industriels Le calcul scientifique reste pour toujours lrsquoeacutetape premiegravere de la voie du

deacuteveloppement culturel et technique drsquoun pays donneacute

Par ailleurs le niveau de complexiteacute des systegravemes geacuteneacuteralement manipuleacutes par les ecirctres

humains que nous sommes est tregraves eacuteleveacute agrave un niveau ougrave toute avanceacutee intellectuelle engendrera

des retombeacutes au niveau industriel tant que tous les processus de lrsquoeacuteconomie en deacutependent

En contre partie la majoriteacute des produits technologiques sont juste la solution immeacutediate de bon

nombre de reacutesolutions de requecircte de la vie courante Lavegravenement de linformatique et de ses

produits les langages de programmation de tout bord de lInternet et des teacuteleacutecommunications agrave

chacun ses infrastructures et ses protocoles a reacutevolutionneacute les meacutethodologies de travail des

eacutequipes et laboratoires de recherches Les langages de deacuteveloppement informatique des outils

et suites logiciels sont drsquoun grand secours aux travaux de modeacutelisation et de simulation des

processus

Les matheacutematiques appliqueacutees et linformatique sont les moyens de conception (Modeacutelisation et

Simulation) plus encore ils sont les vecteurs qui ont provoqueacute une ameacutelioration nette dans les

pratiques de tous les jours et aussi dans la vitesse de mise en œuvre de moyens exploitables

Les langage de programmation comme le CC++ le FORTRAN ou le Python ont joueacute un grand

rocircle dans le cours de deacuteveloppement de beaucoup de proceacutedeacutes (Modeacutelisation) et ont faciliteacute la

compreacutehension de beaucoup pheacutenomegravenes (Simulation) 4

Introduction (Historique) Python est un langage inteacuteressant pour sa faciliteacute et sa richesse en possibiliteacutes drsquoutilisation En

version de base Python dispose de nombreuses fonctionnaliteacutes inteacutegreacutees en standard

Autour des aptitudes de base standard Il est extensible par des modules de tout bord qui sont

les contributions de deacuteveloppeurs deacutevoueacutes agrave la cause de lrsquoOpen Source Ce sont des

bibliothegraveques qui aident le deacuteveloppeur agrave travailler sur des projets particuliers Plusieurs

bibliothegraveques peuvent ainsi ecirctre installeacutees pour par exemple deacutevelopper des interfaces

graphiques en Python (cas de tkinter)

Python est un langage de programmation dont la premiegravere version est sortie en 1991 Creacuteeacute par

Guido van Rossum il a eacuteteacute porteacute du Macintosh de son deacuteveloppeur qui travaillait agrave cette eacutepoque

au Centrum voor Wiskunde en Informatica aux Pays-Bas jusquagrave se voir associer une

organisation agrave but non lucratif particuliegraverement deacutevoueacutee la PSF (Python Software Foundation)

creacuteeacutee en 2001 Ce langage a eacuteteacute baptiseacute ainsi en hommage agrave la troupe de comiques les laquoMonty

Pythonraquo

5

Deacuteveloppeur Informaticien

Neacuteerlandais (langage Python)

Guido van Rossum

31 janvier 1956 Monty Python est le nom dune troupe ceacutelegravebre

dhumoristes britanniques (1969)

Introduction (Logiciel Open Source vs Proprieacutetaire) La PSF (Python Software Foundation) creacuteeacutee en 2001 appartient agrave Open Source Initiative et agrave la

FSF (Free Software Foundation)

Un logiciel proprieacutetaire appeleacute parfois de maniegravere militante logiciel privateur ou encore logiciel

non libre est un logiciel dont la duplication la modification ou lusage est limiteacute

La deacutesignation Open Source ou lsquoCode Source Ouvertrsquo sapplique aux logiciels dont la licence

respecte des critegraveres preacuteciseacutement eacutetablis par lOpen Source Initiative cest-agrave-dire les possibiliteacutes

de libre redistribution daccegraves au code source et de creacuteation de travaux deacuteriveacutes Mis agrave la

disposition du grand public ce code source est geacuteneacuteralement le reacutesultat dune collaboration

entre deacuteveloppeurs

6

Elaboration drsquoun environnement logiciel Python

Installation Beaucoup de meacutethodologies sont valable pour deacutevelopper un environnement compatible pour une programmation avec le

langage Python (Celui-ci est teacuteleacutechargeable sous deux version 2X ou 3X version de base qui ne sont pas forcement

totalement compatible) Le langage Python est utilisable sous diffeacuterent systegraveme drsquoexploitation (Win LinuxUNIX ou Mac OS)

Une autre alternative encore plus interessante que la premiegravere

est drsquoinstaller le logiciel ANACONDA

Avec lrsquoun des eacutediteurs de scripts

7

Notre choix

Environnement

Notre choix

IDE

Elaboration drsquoun environnement logiciel Python Installation La plateforme ANACONDA installe tout le neacutecessaire (lrsquoenvironnement PYTHON 3X2X) et donnera accegraves aux possibiliteacutes

drsquoeacutetendre lrsquoinstallation aux modules PYTHON neacutecessaires pour le deacuteveloppement de calcul scientifique de lrsquoingeacutenieur ou du

chercheur

Les diffeacuterents modules (librairies) neacutecessaire sont

NUMPY Analyse numeacuterique amp Matrices

SCIPY Extension pour calcul scientifique

MATPLOTLIB Dessin de courbe

SYMPY calcul symbolique

NETWORKX manipulation et gestion des graphes

PLOTLY Librairie en ligne pour dessin de courbes

EVENTLET

TKINTER Librairie pour manipulation drsquointerface graphique

IPYTHON Bibliothegraveque pour calcul scientifique

CYTHON Interface pour environnement CC++

JPYTHON Interface pour environnement JAVA

JUPYTER Editeur orienteacute navigateur

DJANGO-CMS System de gestion de contenus

WIDGY CMS utilisant le Framework Django

hellipencore des milliers de modules

8

Notre choix

Environnement

Notre choix

IDE

Elaboration drsquoun environnement logiciel Python Installation Assistant de lrsquoinstallation de ANACONDA et de PYCHARM

La plateforme ANACONDA = Python Modules LrsquoIDE de programmation PYTHON PyCharm 9

Notre choix

Environnement

Notre choix

De lrsquoIDE

Elaboration drsquoun environnement logiciel Python Personnalisation Sous PyCharm en mode TEREMINAL nous ajoutons

les modules neacutecessaires agrave la plateforme ANACONDA Dans la fenecirctre TERMINAL nous utiliserons CONDA

HPycharmProjectsessaigtconda install mpi4py

Using Anaconda Cloud api site

httpsapianacondaorg

Fetching package metadata

Solving package specifications

Package plan for installation in environment

hAnaconda325

The following packages will be downloaded

package | build

mpi4py-200 | py35_0 264 KB

The following NEW packages will be INSTALLED

mpi4py 200-py35_0 (copy)

Proceed ([y]n) Y

Fetching packages

mpi4py-200-p 100 || Time 00001 16926 kBs

Extracting packages hellip

[COMPLETE]|| 100

Linking packages

[mpi4py]| | 0

[COMPLETE]|| 100

10 Fenecirctre ABOUT

de PyCharm

Ideacutee du jour

Commande

installation modules

Elaboration drsquoun environnement logiciel Python Utilisation Sous PyCharm en mode TEREMINAL nous ajoutons les

modules neacutecessaires agrave la plateforme ANACONDA Caracteacuteristiques du langage script Python

Avantages

bull Tregraves riches librairies pour le calcul scientifique

bull Langage bien structureacute permettant drsquoeacutecrire des

programmes lisibles lsquowe code what we thinkrsquo

bull Drsquoautres librairies hors le cadre du calcul scientifique

(Gestion des services Web Accegraves aux ports seacuterie etc)

bull Graticiel lsquoOpen Sourcersquo derriegravere une large communauteacute

bull Compaciteacute du programme deacuteveloppeacute

bull Beaucoup drsquoalternatives pour lrsquoeacutedition (IDE)

Inconveacutenients

bull Environnement de deacuteveloppement moins

bull Pas tous les algorithmes qui peuvent ecirctre trouveacutes dans le

logiciel

Python peut ecirctre utiliser sous deux modes selon

lrsquointeractiviteacute escompteacutee

1 Commande en ligne

2 Exeacutecution de fichier script py 11 Fenecirctre ABOUT

de PyCharm

Elaboration drsquoun environnement logiciel Python Utilisation Sous PyCharm

Caracteacuteristiques du langage script Python

Python est un langage script informatique geacuteneacuterique et

moderne

bull Langage Python integravegre tous les types de donneacutees

(chaicircne reacuteel int) les controcircles des collections de

donneacutees (listes dictionnaires) et des modegraveles de flux

etc

bull La bibliothegraveque standard integravegre plusieurs Modules

bull Un grand nombre de modules speacutecialiseacutes ou des

applications sont eacutecrites en Python protocoles web

framework web etc Ainsi que le calcul scientifique

- Outils de deacuteveloppement (test automatique geacuteneacuteration de

documentation)

- et encore plushellip

Python peut ecirctre utiliser sous deux modes selon

lrsquointeractiviteacute escompteacutee

1 Commande en ligne

2 Exeacutecution de fichier script py 12

Mode console

Python

Mode

programme (py)

Elaboration drsquoun environnement logiciel Python Utilisation Sous Jupyter Interface WEB pour Python

Cette interface Web est facilement mise en œuvre par son

installation

conda install jupyter (si Anaconda est installeacute)

Ou

pip install jupyter

Le lancement de lrsquointerface est fait en invoquant

Jupiter notebook

Ouvrir le navigateur et entrer lrsquoadresse http1270018888

Pour utiliser un autre PORT autre que 8888

On note http127001Nouveau_Port

Lrsquointerface JUPITER est intuitive et facile agrave utiliser ses

fonctionnaliteacutes sont bull Deacuteploiement sous protocole Internet drsquoaptitude de calcul

Python

bull Toute les possibiliteacutes de gestion des documents lsquoNotebookrsquo

sont offertes

bull Possibiliteacutes drsquoeacutedition non limiteacutees (LaTeX HTML Code hellip)

bull Exeacutecution immeacutediate

bull Compatibiliteacute avec la plupart des langages et scripts de

programmation (CC++ Java JavaScript Julia Python R

Octave hellip)

bull Offre accessibiliteacute agrave Jupyter Drive via Google Drive

bull Options de Reporting avanceacutees (HTML LaTeX PDF)

13

Exemple de

code avec son

exeacutecution

Menu et barre

drsquooutils

Elaboration drsquoun environnement logiciel Python Utilisation Sous Jupyter Interface WEB pour Python

Les notebooks sont accessibles agrave partir de PyCharm Les notebooks sont des solutions de collaboration de preacutefeacuterences

ils integravegrent toute les fonctionnaliteacutes exigeacutees par un chercheur

dans le domaine des sciences humaines ou technologiques

Organisation des documents leur ouverture eacutedition ou mise agrave

jours se fait dans le mecircme endroit sans aucune deacutependance par

rapport agrave la machine puisque les notebooks sont accessible en

ligne (Serveur Ordinateur de bureau ou Peacuteripheacuterique mobile)

Les possibiliteacutes sont eacutetendues ainsi qursquoune documentation

abondante

14

Graphique

3D

Exemple de Code

Python

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse des donneacutees (Panda)

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

15

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse des donneacutees (Panda)

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

import numpy as np

systeme = nparray([[12][3-4]])

valeur=nparray([[3][1]])

sol=nplinalgsolve(systemevaleur)

print(x=sol[00] et y=sol[10])

x= 14 et y= 08

Reacutesolution de systegraveme lineacuteaire AX=b gtgtgt import numpy as np

gtgtgt from scipy import linalg

gtgtgt A = nparray([[1 2] [3 4]])

gtgtgt A

array([[1 2][3 4]])

gtgtgt b = nparray([[5] [6]])

gtgtgt b

array([[5][6]])

gtgtgt linalginv(A)dot(b) slow

array([[-4 ][ 45]])

gtgtgt Adot(linalginv(A)dot(b)) - b Veacuterification array([[888178420e-16][266453526e-15]])

gtgtgt nplinalgsolve(A b) fast

array([[-4 ][ 45]])

gtgtgt Adot(nplinalgsolve(A b)) - b Veacuterification array([[ 0][ 0]])

Importation de la

librairie Numpy

16

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse des donneacutees (Panda)

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

17

import numpy as np

from scipy import signal misc

import matplotlibpyplot as plt

image = miscface(gray=True)astype(npfloat32)

derfilt = nparray([10 -2 10] dtype=npfloat32)

ck = signalcspline2d(image 80)

deriv = (signalsepfir2d(ck derfilt [1]) +signalsepfir2d(ck [1] derfilt))

laplacian = nparray([[010] [1-41] [010]] dtype=npfloat32)

deriv2 = signalconvolve2d(cklaplacianmode=lsquosameboundary=symm)

pltfigure()

pltimshow(image)

pltgray()

plttitle(lsquoImage original)

pltshow()

pltfigure()

pltimshow(deriv)

pltgray()

plttitle(lsquosortie avec filtre spline)

pltshow()

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse des donneacutees (Panda)

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

from matplotlibpyplot import figure hold plot legend draw

from numpy import linspace

import scipystats as stats

from numpyrandom import randn

x = randn(100)

fig = figure()

ax = figadd_subplot(111)

axhist(x bins=30 label=rsquoEmpiricalrsquo)

xlim = axget_xlim()

ylim = axget_ylim()

pdfx = linspace(xlim[0] xlim[1] 200)

pdfy = statsnormpdf(pdfx)

pdfy = pdfy pdfymax() ylim[1]

hold(True)

plot(pdfx pdfy rsquor-rsquo label=rsquoPDFrsquo)

axset_ylim((ylim[0] 12 ylim[1]))

legend()

hold(False)

draw()

18

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse des donneacutees (Panda QtGraph)

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation 19

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Domaines drsquoutilisation

matplotlib inline

from pylab import plot show title xlabel ylabel subplot savefig

from scipy import fft arange ifft

from numpy import sin linspace pi

from scipyiowavfile import readwrite

def plotSpectru(yFs)

n = len(y) lungime semnal

k = arange(n)

T = nFs

frq = kT two sides frequency range

frq = frq[range(n2)] one side frequency range

Y = fft(y)n fft computing and normalization

Y = Y[range(n2)]

plot(frqabs(Y)r) plotting the spectrum

xlabel(Freq (Hz))

ylabel(|Y(freq)|)

Fs = 44100 sampling rate

ratedata=read(fatihawav)

y=data

lungime=len(y)

timp=len(y)44100

t=linspace(0timplen(y))

subplot(211)

plot(ty)

xlabel(Time)

ylabel(Amplitude)

subplot(212)

plotSpectru(yFs)

show()

20

Lecture de la

sourah

Code du traitement

audio

Spectre Amp|Freacuteq

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele (MPI Python)

Theacuteorie des graphes (Networkx)

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

21 Exemple

de graphe

Fenecirctre Aperccedilu

du bloc-note

Importation de la

librairie NetworkX

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

import RPiGPIO as GPIO

GPIOsetmode(GPIOBCM) set board mode to Broadcom

GPIOsetup(17 GPIOOUT) set up pin 17

GPIOsetup(18 GPIOOUT) set up pin 18

GPIOoutput(17 1) turn on pin 17

GPIOoutput(18 1) turn on pin 18

Importation

librairie GPIO

Module

Galileo Gen 2

Module

RaspBerry PI 3

22

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D (Python CAD FreeCAD)

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

23

from OCCSTEPControl import STEPControl_Reader

from OCCIFSelect import IFSelect_RetDone IFSelect_ItemsByEntity

from OCCDisplaySimpleGui import init_display

step_reader = STEPControl_Reader()

status = step_readerReadFile(modelswind_turbinestp)

if status == IFSelect_RetDone check status

failsonly = False

step_readerPrintCheckLoad(failsonly IFSelect_ItemsByEntity)

step_readerPrintCheckTransfer(failsonly IFSelect_ItemsByEntity)

ok = step_readerTransferRoot(1)

_nbs = step_readerNbShapes()

aResShape = step_readerShape(1)

else

print(Error cant read file)

sysexit(0)

display start_display add_menu add_function_to_menu = init_display()

displayDisplayShape(aResShape update=True)

start_display()

Importation

librairie OCC

Maillage Dauphin

Rendu du macirct drsquoun

aeacuterogeacuteneacuterateur

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D (Python CAD FreeCAD)

Bioinformatique et manipulation du geacutenome

POO avec Python (Programmation

Orienteacutee Objet) Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

class Rocket()

Rocket simule une roquette pour un jeu

ou une simulation de physique

def __init__(self)

Each rocket has an (xy) position

selfx = 0

selfy = 0

def move_up(self)

Increacutementation de la position y de la roquette

selfy += 1

Deacutefinir une ensemble de 5 roquettes les stocker dans une liste

my_rockets = []

for x in range(05)

new_rocket = Rocket()

my_rocketsappend(new_rocket)

A remarquer que chaque roquette est un objet agrave part entiegravere

for rocket in my_rockets

print(rocket)

Deacutefinition drsquoune

nouvelle Classe

Instantiation

Meacutethode Constructeur

__init__

24

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D (Python CAD FreeCAD)

Bioinformatique et manipulation

du geacutenome Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

25

from Bio import SeqIO

for seq_record in SeqIOparse(ls_orchidgbk genbank)

print(seq_recordid)

print(repr(seq_recordseq))

print(len(seq_record))

Z785331

Seq(CGTAACAAGGTTTCCGTAGGTGAACCTGCGGAAGGATCATTGATGAGACCGTGGCGC

IUPACAmbiguousDNA())

740

Z784391

Seq(CATTGTTGAGATCACATAATAATTGATCGAGTTAATCTGGAGGATCTGTTTACTGCC

IUPACAmbiguousDNA())

592

Sinon dans une Terminal Python

gtgtgt from BioSeq import Seq

gtgtgt from BioAlphabet import generic_dna

gtgtgt gene = Seq(GTGAAAAAGATGCAATCTATCGTACTCGCACTTTCCCTGGTTCTGGTCGCTCCCATGGCA +

GCACAGGCTGCGGAAATTACGTTAGTCCCGTCAGTAAAATTACAGATAGGCGATCGTGAT +

AATCGTGGCTATTACTGGGATGGAGGTCACTGGCGCGACCACGGCTGGTGGAAACAACAT +

TATGAATGGCGAGGCAATCGCTGGCACCTACACGGACCGCCGCCACCGCCGCGCCACCAT +

AAGAAAGCTCCTCATGATCATCACGGCGGTCATGGTCCAGGCAAACATCACCGCTAA

generic_dna)

gtgtgt genetranslate(table=Bacterial)

Seq(VKKMQSIVLALSLVLVAPMAAQAAEITLVPSVKLQIGDRDNRGYYWDGGHWRDHHR

HasStopCodon(ExtendedIUPACProtein() )

gtgtgt genetranslate(table=Bacterial to_stop=True)

Seq(VKKMQSIVLALSLVLVAPMAAQAAEITLVPSVKLQIGDRDNRGYYWDGGHWRDHHHR

ExtendedIUPACProtein())

Logo de

BioPython Seacutequence drsquoADN

Importation

librairie BIO

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D (Python CAD FreeCAD)

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

26

Installer agrave partir de PyPI

$ pip install mezzanine

Instantier un projet

$ mezzanine-project monproject

$ cd monproject

Instantier une Base de donneacutees

$ python managepy createdb

Lancer le serveur Web

$ python managepy runserver

Installation en mode

commande

URL du site instantieacute

Version Mobile Menu

Version Administration

Sites Web fait avec

Mezzanine

Version Normal

Les environnements de deacuteveloppement inteacutegreacutes de code Python sont nombreux des solutions proprieacutetaires agrave celles portant le

label GPL

Ils sont de trois grandes cateacutegories

Les applications bureaux (Desktop)

Les consoles de commande en ligne Les interfaces orienteacutees Web

Outils drsquoeacutelaboration de code Python (IDE)

27

Les environnements de deacuteveloppement inteacutegreacutes de code Python sont nombreux des solutions proprieacutetaires agrave celles portant le

label GPL Ils sont de trois grandes cateacutegories

Les applications bureaux (Desktop)

Les consoles de commande en ligne

Les interfaces orienteacutees Web

Outils drsquoeacutelaboration de code Python (IDE)

28

Les environnements de deacuteveloppement inteacutegreacutes de code Python sont nombreux des solutions proprieacutetaires agrave celles portant le

label GPL Ils sont de trois grandes cateacutegories

Les applications bureaux (Desktop)

Les consoles de commande en ligne

Les interfaces orienteacutees Web

Outils drsquoeacutelaboration de code Python (IDE)

29

30

Nom de Symbole Les noms de variables en Python peuvent contenir des caractegraveres alphanumeacuteriques a-z A-Z 0-

9 et certains caractegraveres speacuteciaux tel que _ Les noms de variables normales doivent commencer par une lettre

Par convention les noms de variables commencent par une lettre minuscule et les noms de classe commencent par

une lettre majuscule En outre il y a un certain nombre de mots-cleacutes Python qui ne peuvent pas ecirctre utiliseacutes comme

noms de variables Ces mots-cleacutes sont les suivants

and as assert break class continue def del elif else except exec finally for from global if import in

is lambda not or pass print raise return try while with yield

Affectation assignment de variable

x = 10

my_variable = 122

type(x) fonction TYPE retourne le type de la variable entre parenthegravese

builtinsfloat

Verification de type x = 10

veacuterifier si la variable est reacuteelle

type(x) is float

isinstance(x float)

True

z = complex(x)

print(z type(z))

(1+0j) ltclass complexlsquogt

Base de repreacutesentation des donneacutees

31

Operateurs et comparaisons Opeacuterateurs arithmeacutetiques + - (division entiegravere) puissance

30 20

10

NB operators puissance en python nrsquoest pas ^ mais

2 2

4

Les opeacuterateurs de comparaison sont gtltgt=lt===

objects identiques

x1 = x2 = [12]

x1 is x2

True

2 gt= 2 2 lt= 2

(True True)

Chaines de caractegraveres les liste et les dictionnaires s = Hello world

type(s)

builtinsstr

length of the string the number of characters

len(s)

11

replace a substring in a string with somethign else

s2 = sreplace(world test)

print(s2)

Hello test

s[0]

H

Base de repreacutesentation des donneacutees

32

Chaines de caractegraveres les liste et les dictionnaires s = Hello worldldquo

replace a substring in a string with somethign else

s2 = sreplace(world test)

Hello test

print(s2)

s[05]

Hellolsquo

s[05]

Hellolsquo

s[]

Hello worldlsquo

print(value = f 10) Formatage C des variables

value = 1000000

s2 = value1 = 2f value2 = d (31415 15)

print(s2)

value1 = 314 value2 = 1

Listes l = [1234]

print(type(l))

print(l)

ltclass listgt

[1 2 3 4]

l = [1 a 10 1-1j] peuvent ecirctre heacuteteacuterogegravene

print(l)

[1 a 10 (1-1j)]

Base de repreacutesentation des donneacutees

33

Listes start = 10

stop = 30

step = 2

range(start stop step)

range(10 30 2)

list(range(start stop step))

[10 12 14 16 18 20 22 24 26 28]

s2 = list(s)

S2

[H e l l o w o r l d]

Tri de la liste

s2sort()

print(s2)

[ H d e l l l o o r w]

l = []

lappend(A)

lappend(d)

lappend(d)

print(l)

[A d d]

Tuples Ce sont des variables comme les listes mais pas alteacuterables

point = (10 20)

print(point type(point))

(10 20) ltclass tuplegt

Base de repreacutesentation des donneacutees

34

Tuples x y = point

print(x = x)

print(y = y)

x = 10

y = 20

Dictionaries params = parameter1 10 parameter2 20 parameter3 30

print(type(params))

print(params)

ltclass dictgt

fparameter2 20 parameter3 30 parameter1 10

params[parameter1] = A

params[parameter2] = B

Ajouter une nouvelle entreacutee

params[parameter4] = D

print(paramegravetre = + str(params[parameter1]))

print(paramegravetre = + str(params[parameter2]))

print(paramegravetre = + str(params[parameter3]))

print(paramegravetre = + str(params[parameter4]))

paramegravetre = A

paramegravetre = B

paramegravetre = 30

paramegravetre = D

Base de repreacutesentation des donneacutees

35

36

Affectation amp Controcircle conditionnel de flue statement1 = False Crsquoest une affectation

statement2 = False

if statement1 Test valideacute condition (statement1) est VRAIE

print(statement1 is True)

elif statement2 Exeacutecuteacutee condition (statement2) est VRAIE

print(statement2 is True)

else Exeacutecuteacutee sinon

print(statement1 and statement2 are False)

Boucles for x in [123] [123] peut ecirctre deacutesigneacute par range(3) avec print(x+1)

print(x)

1

2

3

for word in [scientific computing with python]

print(word) condition de reacutepeacutetition deacutependante du contenu de la liste

scientific

computing

with

python

l1 = [x2 for x in range(05)] agrave remarquer la compaciteacute du Python

print(l1)

[0 1 4 9 16]

Base de repreacutesentation des donneacutees

37

Boucles var = 0

while var = 1

print jlsquoeacutecris mon programme ici

choix = raw_input(voulez vous recommencer ( on ) )

if choix == n

var = 1

else

lsquovous allez ecirctre renvoyeacute au deacutebut du programmersquo

X = y 2

while x gt 1

If y x == 0

print y lsquo est facteur de rsquo x

break

x -= 1

else

print y lsquo est premierlsquo

Lrsquoutilisation de zip et map peut srsquoaveacutereacutee encore plus efficace

l1 = [1 2 3]

l2 = [4 5 6]

for (x y) in zip(l1 l2)

print x y -- x + y

1 4 -- 5

2 5 -- 7

3 6 -- 9

Base de repreacutesentation des donneacutees

38

s=0123456789

print map(int s)

[0 1 2 3 4 5 6 7 8 9]

Utilisation et

puissance de MAP

Utilisation de ZIP

Intervales range(start stop step)

range(5 10)

5 jusqursquoagrave 10 (exclue) avec un pas de 1

range(0 10 3)

0 3 6 9

range(-10 -100 -30)

-10 -40 -70

Test conditionnel binaire x = 5

y = 10

if x gt y

print(x est grand que y)

else

print(ldquox nrsquoest pas grand que yrdquo)

Dans Python on peut compliquer les chose

x = 5

y = 10

Z = 12

if z gt x gt y

print(lsquoy est petit que x et x est petit que z)

Base de repreacutesentation des donneacutees

39

Boucle avec test conditionnel binaire break continue et else dans une boucle for

for n in range(2 10)

for x in range(2 n)

if n x == 0

print(n lsquoest eacutegal agrave x nx)

break

else

print(n lsquoest premier)

Utilisation de lrsquoinstruction continue

for num in range(2 10)

if num 2 == 0 le symbole deacutesigne lrsquoopeacuteration RESTE de la division

print(ldquoNombre paire trouveacute num)

continue

print(ldquoNombre non premier num)

Base de repreacutesentation des donneacutees

40

Deacutefinition de fonction (proceacutedure avec retour) def fib(n) Ecrire la suite de Fibonacci jusqursquoagrave n

a b = 0 1

while a lt n

print(a end= )

a b = b a+b

print()

fib(2000)

0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597

f = fib deacutesignation par reacutefeacuterence f agrave la fonction fib

f(100)

0 1 1 2 3 5 8 13 21 34 55 89

autre type de deacutefinition de fonction

def ask_ok(prompt retries=4 complaint=Oui or Non srsquoil vou plait )

while True

ok = input(prompt)

if ok in (lsquoo lsquooui lsquoOui)

return True

if ok in (lsquon no non lsquoNon)

return False

retries = retries - 1

if retries lt 0

raise OSError(lsquoUtilisateur non coopeacuteratif)

print(complaint)

Base de repreacutesentation des donneacutees

41

Lrsquoinstruction lambda def make_incrementeur(n)

return lambda x x + n

f = make_incrementeur(42)

f(0)

42

f(1)

43

un autre cas drsquoutilisation

pairs = [(1 one) (2 two) (3 three) (4 four)]

pairssort(key=lambda pair pair[1])

pairs

[(4 four) (1 one) (3 three) (2 two)]

Les annotations dans une fonction Les annotations deacutefinissent des messages de preacutesentation

def f(chiken str eggs str = eggs) -gt str remarquer que la fonction est de type STR

print(Annotations f__annotations__)

print(Arguments chiken eggs)

return chiken + and + eggs

f(spam)

Annotations chiken ltclass strgt return ltclass strgt eggs ltclass strgt

Arguments spam eggs

spam and eggslsquo

Base de repreacutesentation des donneacutees

42

Les deacutecorateurs python Notre deacutecorateur

def decorate(func)

print uJe suis dans la fonction decorate et je deacutecore s func__name__

print uExeacutecution de la fonction s func__name__

return func

Fonction cible utiliseacutee avec DECORATOR

decorate

def foobar(args)

print join(args)

Exemple drsquoappel de la fonction

foobar(A B C D)

Je suis dans la fonction decorate et je deacutecore foobar

Exeacutecution de la fonction foobar

A B C D

Il est posible drsquoattribuer plusieurs deacutecorateurs agrave une seule fonction

decorateur1

decorateur2

def ma_fonction()

instructions

Base de repreacutesentation des donneacutees

43

Manipulation des listes a = [6625 333 333 1 12345]

print(acount(333) acount(6625) acount(x))

2 1 0

ainsert(2 -1)

aappend(333)

a

[6625 333 -1 333 1 12345 333]

aindex(333)

1

aremove(333)

a

[6625 -1 333 1 12345 333]

areverse()

a

[333 12345 1 333 -1 6625]

asort()

a

[-1 1 6625 333 333 12345]

apop()

12345

a

[-1 1 6625 333 333]

Base de repreacutesentation des donneacutees

44

Puissance du langage Python Lrsquoensemble des lignes suiantes peut ecirctre compacteacute par ce qui suit

combs = []

for x in [123]

for y in [314]

if x = y

combsappend((x y))

Combs

Ou bien

[(x y) for x in [123] for y in [314] if x = y]

Donne le mecircme reacutesultat

[(1 3) (1 4) (2 3) (2 1) (2 4) (3 1) (3 4)]

Calcul de la valeur de PI arrondie

from math import pi

[str(round(pi i)) for i in range(1 6)]

[31 314 3142 31416 314159]

Geacuteneacuterateur avec utilisation de YIELD

def generateur()

yield a

yield b

yield cldquo

i=generateur()

for v in i

print v

a

b

c

Base de repreacutesentation des donneacutees

45

Les expressions reacuteguliegraveres en python Les expressions reacuteguliegravere sont utiliseacutees pour veacuterifier la conformiteacute des expressions de

chaines de caractegraveres par rapport agrave un motif Les symboles suivants sont utiliseacutes

^ $ + [ ] | ( )

Le point correspond agrave nimporte quel caractegravere

^ Indique un commencement de segment mais signifie aussi contraire de

$ Fin de segment

[xy] Une liste de segment possible Exemple [abc] eacutequivaut agrave a b ou c

(x|y) Indique un choix multiple type (ps|ump) eacutequivaut agrave ps OU UMP

d le segment est composeacute uniquement de chiffre ce qui eacutequivaut agrave [0-9]

D le segment nest pas composeacute de chiffre ce qui eacutequivaut agrave [^0-9]

s Un espace ce qui eacutequivaut agrave [ tnrfv]

S Pas despace ce qui eacutequivaut agrave [^ tnrfv]

w Preacutesence alphanumeacuterique ce qui eacutequivaut agrave [a-zA-Z0-9_]

W Pas de preacutesence alphanumeacuterique [^a-zA-Z0-9_]

Est un caractegravere deacutechappement T2 Le T soit reacutepeacuteteacute 2 fois

TA19 La seacutequence TA doit ecirctre preacutesente de 1 agrave 9 fois

TAM10 La seacutequence TAM nrsquoexiste pas ou reacutepeacuteteacutee 10 fois

LI1 La seacutequence LI doit ecirctre reacutepeacuteteacutee au moins une fois

Base de repreacutesentation des donneacutees

46

Les expressions reacuteguliegraveres en python Utilisation des expressions reacuteguliegravere

import re

print rematch(rGR()S GRIS)

lt_sreSRE_Match object at 0x02019DE0gt

Une utilisation freacutequente consiste en la validation des valeurs des emails saisis

Utilisation des expressions reacuteguliegravere

import re

mails = [lsquomtamaligmailcomrsquorsquoutmbuniv-bechardzrsquo lsquo8freefrrsquo lsquouniv-bechardzrsquo lsquotamalicdtarsquo]

regex = recompile(rrsquo^[a-z0-9_-]+[a-z0-9_-]+[(com|fr|dz)]+rsquo

for mail in mails

if regexmatch(mail) is not None

print Ce mail s est valide mail

else

print Erreur ce mail s est non valide mail

Ce mail mtamaligmailcom est valide

Ce mail utmbuniv-bechardz est valide

Ce mail 8freefr est valide

Erreur ce mail univ-bechardz est non valide

Erreur ce mail tamalicdta est non valide

Base de repreacutesentation des donneacutees

47

Les fichiers Creacuteer lire et eacutecrire dans un fichier en python Utilisation des expressions reacuteguliegravere

fichier = open(donneestxt r)

print fichier

ltopen file lsquodonneestxt mode r at 0x7ff6cf3fe4b0gt

Le descripteur permet de renseigner la machine sur la maniegravere avec laquelle le fichier est utiliseacute

r pour ouverture en mode READ

w pour ouverture en mode WRITE chaque fois le contenu du fichier est eacutecraseacute sinon python le creacutee

a pour ajout lsquoAPPENDrsquo Si le fichier nexiste pas python le creacutee

b Ouverture en mode Binaire

t Ouverture en mode Texte

x creacutee un nouveau fichier et louvrir pour eacutecriture

proceacutedure geacuteneacuterale pour lrsquoutilisation drsquoun fichier

fichier = open(lsquodonneestxtrsquo r)

print fichierread()

fichierclose()

Lrsquoinstruction WITH peut ecirctre utiliseacutee sans besoin de la fonction CLOSE

with open(datatxt r) as fichier

print fichierread()

Base de repreacutesentation des donneacutees

48

49

Le langage Python est un langage script interpreacuteteacute Le programme portant lrsquoune des extension py pyw ou pwc est

structureacute selon le canevas suivant

Les codifications

usrbinpython27

--codingencodage -

Les imports des librairies

Les instructions

Le langage Python passe pour ecirctre exeacutecuteacute sur deux eacutetapes la premiegravere UNE PRECOMPILATION geacuteneacuteration du code

machine et finalement un eacutecriture en code machine exeacutecutable (selon la machine)

Lrsquoenvironnement drsquoexeacutecution des scripts eacutecrits en Python regroupe les avantages des TRADUCTEURS (travaille en ligne par

ligne) et les COMPILATEURS (puissance de la structure algorithmique)

La bibliothegraveque cx_Freeze sert agrave transformer les fichiers scripts Pyhon py en exeacutecutable exe

Structures algorithmique du python

50

51

Matrices amp Systegravemes lineacuteaires

52

53

54

55

56

57

Le calcul scientifique

Reacutefeacuterences L-V Bertallanfy lsquoGeneral System Theoryrsquo Edition MASSON 1972

58

Page 4: Chap XIII : calcul scientifique avec python

Introduction (Geacuteneacuteraliteacutes) Les matheacutematiques appliqueacutees et le calcul scientifique jouent un rocircle croissant comme outils non

eacutevitables pour lrsquoeacutelaboration de recherches scientifiques et dans la conception de processus

industriels Le calcul scientifique reste pour toujours lrsquoeacutetape premiegravere de la voie du

deacuteveloppement culturel et technique drsquoun pays donneacute

Par ailleurs le niveau de complexiteacute des systegravemes geacuteneacuteralement manipuleacutes par les ecirctres

humains que nous sommes est tregraves eacuteleveacute agrave un niveau ougrave toute avanceacutee intellectuelle engendrera

des retombeacutes au niveau industriel tant que tous les processus de lrsquoeacuteconomie en deacutependent

En contre partie la majoriteacute des produits technologiques sont juste la solution immeacutediate de bon

nombre de reacutesolutions de requecircte de la vie courante Lavegravenement de linformatique et de ses

produits les langages de programmation de tout bord de lInternet et des teacuteleacutecommunications agrave

chacun ses infrastructures et ses protocoles a reacutevolutionneacute les meacutethodologies de travail des

eacutequipes et laboratoires de recherches Les langages de deacuteveloppement informatique des outils

et suites logiciels sont drsquoun grand secours aux travaux de modeacutelisation et de simulation des

processus

Les matheacutematiques appliqueacutees et linformatique sont les moyens de conception (Modeacutelisation et

Simulation) plus encore ils sont les vecteurs qui ont provoqueacute une ameacutelioration nette dans les

pratiques de tous les jours et aussi dans la vitesse de mise en œuvre de moyens exploitables

Les langage de programmation comme le CC++ le FORTRAN ou le Python ont joueacute un grand

rocircle dans le cours de deacuteveloppement de beaucoup de proceacutedeacutes (Modeacutelisation) et ont faciliteacute la

compreacutehension de beaucoup pheacutenomegravenes (Simulation) 4

Introduction (Historique) Python est un langage inteacuteressant pour sa faciliteacute et sa richesse en possibiliteacutes drsquoutilisation En

version de base Python dispose de nombreuses fonctionnaliteacutes inteacutegreacutees en standard

Autour des aptitudes de base standard Il est extensible par des modules de tout bord qui sont

les contributions de deacuteveloppeurs deacutevoueacutes agrave la cause de lrsquoOpen Source Ce sont des

bibliothegraveques qui aident le deacuteveloppeur agrave travailler sur des projets particuliers Plusieurs

bibliothegraveques peuvent ainsi ecirctre installeacutees pour par exemple deacutevelopper des interfaces

graphiques en Python (cas de tkinter)

Python est un langage de programmation dont la premiegravere version est sortie en 1991 Creacuteeacute par

Guido van Rossum il a eacuteteacute porteacute du Macintosh de son deacuteveloppeur qui travaillait agrave cette eacutepoque

au Centrum voor Wiskunde en Informatica aux Pays-Bas jusquagrave se voir associer une

organisation agrave but non lucratif particuliegraverement deacutevoueacutee la PSF (Python Software Foundation)

creacuteeacutee en 2001 Ce langage a eacuteteacute baptiseacute ainsi en hommage agrave la troupe de comiques les laquoMonty

Pythonraquo

5

Deacuteveloppeur Informaticien

Neacuteerlandais (langage Python)

Guido van Rossum

31 janvier 1956 Monty Python est le nom dune troupe ceacutelegravebre

dhumoristes britanniques (1969)

Introduction (Logiciel Open Source vs Proprieacutetaire) La PSF (Python Software Foundation) creacuteeacutee en 2001 appartient agrave Open Source Initiative et agrave la

FSF (Free Software Foundation)

Un logiciel proprieacutetaire appeleacute parfois de maniegravere militante logiciel privateur ou encore logiciel

non libre est un logiciel dont la duplication la modification ou lusage est limiteacute

La deacutesignation Open Source ou lsquoCode Source Ouvertrsquo sapplique aux logiciels dont la licence

respecte des critegraveres preacuteciseacutement eacutetablis par lOpen Source Initiative cest-agrave-dire les possibiliteacutes

de libre redistribution daccegraves au code source et de creacuteation de travaux deacuteriveacutes Mis agrave la

disposition du grand public ce code source est geacuteneacuteralement le reacutesultat dune collaboration

entre deacuteveloppeurs

6

Elaboration drsquoun environnement logiciel Python

Installation Beaucoup de meacutethodologies sont valable pour deacutevelopper un environnement compatible pour une programmation avec le

langage Python (Celui-ci est teacuteleacutechargeable sous deux version 2X ou 3X version de base qui ne sont pas forcement

totalement compatible) Le langage Python est utilisable sous diffeacuterent systegraveme drsquoexploitation (Win LinuxUNIX ou Mac OS)

Une autre alternative encore plus interessante que la premiegravere

est drsquoinstaller le logiciel ANACONDA

Avec lrsquoun des eacutediteurs de scripts

7

Notre choix

Environnement

Notre choix

IDE

Elaboration drsquoun environnement logiciel Python Installation La plateforme ANACONDA installe tout le neacutecessaire (lrsquoenvironnement PYTHON 3X2X) et donnera accegraves aux possibiliteacutes

drsquoeacutetendre lrsquoinstallation aux modules PYTHON neacutecessaires pour le deacuteveloppement de calcul scientifique de lrsquoingeacutenieur ou du

chercheur

Les diffeacuterents modules (librairies) neacutecessaire sont

NUMPY Analyse numeacuterique amp Matrices

SCIPY Extension pour calcul scientifique

MATPLOTLIB Dessin de courbe

SYMPY calcul symbolique

NETWORKX manipulation et gestion des graphes

PLOTLY Librairie en ligne pour dessin de courbes

EVENTLET

TKINTER Librairie pour manipulation drsquointerface graphique

IPYTHON Bibliothegraveque pour calcul scientifique

CYTHON Interface pour environnement CC++

JPYTHON Interface pour environnement JAVA

JUPYTER Editeur orienteacute navigateur

DJANGO-CMS System de gestion de contenus

WIDGY CMS utilisant le Framework Django

hellipencore des milliers de modules

8

Notre choix

Environnement

Notre choix

IDE

Elaboration drsquoun environnement logiciel Python Installation Assistant de lrsquoinstallation de ANACONDA et de PYCHARM

La plateforme ANACONDA = Python Modules LrsquoIDE de programmation PYTHON PyCharm 9

Notre choix

Environnement

Notre choix

De lrsquoIDE

Elaboration drsquoun environnement logiciel Python Personnalisation Sous PyCharm en mode TEREMINAL nous ajoutons

les modules neacutecessaires agrave la plateforme ANACONDA Dans la fenecirctre TERMINAL nous utiliserons CONDA

HPycharmProjectsessaigtconda install mpi4py

Using Anaconda Cloud api site

httpsapianacondaorg

Fetching package metadata

Solving package specifications

Package plan for installation in environment

hAnaconda325

The following packages will be downloaded

package | build

mpi4py-200 | py35_0 264 KB

The following NEW packages will be INSTALLED

mpi4py 200-py35_0 (copy)

Proceed ([y]n) Y

Fetching packages

mpi4py-200-p 100 || Time 00001 16926 kBs

Extracting packages hellip

[COMPLETE]|| 100

Linking packages

[mpi4py]| | 0

[COMPLETE]|| 100

10 Fenecirctre ABOUT

de PyCharm

Ideacutee du jour

Commande

installation modules

Elaboration drsquoun environnement logiciel Python Utilisation Sous PyCharm en mode TEREMINAL nous ajoutons les

modules neacutecessaires agrave la plateforme ANACONDA Caracteacuteristiques du langage script Python

Avantages

bull Tregraves riches librairies pour le calcul scientifique

bull Langage bien structureacute permettant drsquoeacutecrire des

programmes lisibles lsquowe code what we thinkrsquo

bull Drsquoautres librairies hors le cadre du calcul scientifique

(Gestion des services Web Accegraves aux ports seacuterie etc)

bull Graticiel lsquoOpen Sourcersquo derriegravere une large communauteacute

bull Compaciteacute du programme deacuteveloppeacute

bull Beaucoup drsquoalternatives pour lrsquoeacutedition (IDE)

Inconveacutenients

bull Environnement de deacuteveloppement moins

bull Pas tous les algorithmes qui peuvent ecirctre trouveacutes dans le

logiciel

Python peut ecirctre utiliser sous deux modes selon

lrsquointeractiviteacute escompteacutee

1 Commande en ligne

2 Exeacutecution de fichier script py 11 Fenecirctre ABOUT

de PyCharm

Elaboration drsquoun environnement logiciel Python Utilisation Sous PyCharm

Caracteacuteristiques du langage script Python

Python est un langage script informatique geacuteneacuterique et

moderne

bull Langage Python integravegre tous les types de donneacutees

(chaicircne reacuteel int) les controcircles des collections de

donneacutees (listes dictionnaires) et des modegraveles de flux

etc

bull La bibliothegraveque standard integravegre plusieurs Modules

bull Un grand nombre de modules speacutecialiseacutes ou des

applications sont eacutecrites en Python protocoles web

framework web etc Ainsi que le calcul scientifique

- Outils de deacuteveloppement (test automatique geacuteneacuteration de

documentation)

- et encore plushellip

Python peut ecirctre utiliser sous deux modes selon

lrsquointeractiviteacute escompteacutee

1 Commande en ligne

2 Exeacutecution de fichier script py 12

Mode console

Python

Mode

programme (py)

Elaboration drsquoun environnement logiciel Python Utilisation Sous Jupyter Interface WEB pour Python

Cette interface Web est facilement mise en œuvre par son

installation

conda install jupyter (si Anaconda est installeacute)

Ou

pip install jupyter

Le lancement de lrsquointerface est fait en invoquant

Jupiter notebook

Ouvrir le navigateur et entrer lrsquoadresse http1270018888

Pour utiliser un autre PORT autre que 8888

On note http127001Nouveau_Port

Lrsquointerface JUPITER est intuitive et facile agrave utiliser ses

fonctionnaliteacutes sont bull Deacuteploiement sous protocole Internet drsquoaptitude de calcul

Python

bull Toute les possibiliteacutes de gestion des documents lsquoNotebookrsquo

sont offertes

bull Possibiliteacutes drsquoeacutedition non limiteacutees (LaTeX HTML Code hellip)

bull Exeacutecution immeacutediate

bull Compatibiliteacute avec la plupart des langages et scripts de

programmation (CC++ Java JavaScript Julia Python R

Octave hellip)

bull Offre accessibiliteacute agrave Jupyter Drive via Google Drive

bull Options de Reporting avanceacutees (HTML LaTeX PDF)

13

Exemple de

code avec son

exeacutecution

Menu et barre

drsquooutils

Elaboration drsquoun environnement logiciel Python Utilisation Sous Jupyter Interface WEB pour Python

Les notebooks sont accessibles agrave partir de PyCharm Les notebooks sont des solutions de collaboration de preacutefeacuterences

ils integravegrent toute les fonctionnaliteacutes exigeacutees par un chercheur

dans le domaine des sciences humaines ou technologiques

Organisation des documents leur ouverture eacutedition ou mise agrave

jours se fait dans le mecircme endroit sans aucune deacutependance par

rapport agrave la machine puisque les notebooks sont accessible en

ligne (Serveur Ordinateur de bureau ou Peacuteripheacuterique mobile)

Les possibiliteacutes sont eacutetendues ainsi qursquoune documentation

abondante

14

Graphique

3D

Exemple de Code

Python

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse des donneacutees (Panda)

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

15

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse des donneacutees (Panda)

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

import numpy as np

systeme = nparray([[12][3-4]])

valeur=nparray([[3][1]])

sol=nplinalgsolve(systemevaleur)

print(x=sol[00] et y=sol[10])

x= 14 et y= 08

Reacutesolution de systegraveme lineacuteaire AX=b gtgtgt import numpy as np

gtgtgt from scipy import linalg

gtgtgt A = nparray([[1 2] [3 4]])

gtgtgt A

array([[1 2][3 4]])

gtgtgt b = nparray([[5] [6]])

gtgtgt b

array([[5][6]])

gtgtgt linalginv(A)dot(b) slow

array([[-4 ][ 45]])

gtgtgt Adot(linalginv(A)dot(b)) - b Veacuterification array([[888178420e-16][266453526e-15]])

gtgtgt nplinalgsolve(A b) fast

array([[-4 ][ 45]])

gtgtgt Adot(nplinalgsolve(A b)) - b Veacuterification array([[ 0][ 0]])

Importation de la

librairie Numpy

16

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse des donneacutees (Panda)

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

17

import numpy as np

from scipy import signal misc

import matplotlibpyplot as plt

image = miscface(gray=True)astype(npfloat32)

derfilt = nparray([10 -2 10] dtype=npfloat32)

ck = signalcspline2d(image 80)

deriv = (signalsepfir2d(ck derfilt [1]) +signalsepfir2d(ck [1] derfilt))

laplacian = nparray([[010] [1-41] [010]] dtype=npfloat32)

deriv2 = signalconvolve2d(cklaplacianmode=lsquosameboundary=symm)

pltfigure()

pltimshow(image)

pltgray()

plttitle(lsquoImage original)

pltshow()

pltfigure()

pltimshow(deriv)

pltgray()

plttitle(lsquosortie avec filtre spline)

pltshow()

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse des donneacutees (Panda)

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

from matplotlibpyplot import figure hold plot legend draw

from numpy import linspace

import scipystats as stats

from numpyrandom import randn

x = randn(100)

fig = figure()

ax = figadd_subplot(111)

axhist(x bins=30 label=rsquoEmpiricalrsquo)

xlim = axget_xlim()

ylim = axget_ylim()

pdfx = linspace(xlim[0] xlim[1] 200)

pdfy = statsnormpdf(pdfx)

pdfy = pdfy pdfymax() ylim[1]

hold(True)

plot(pdfx pdfy rsquor-rsquo label=rsquoPDFrsquo)

axset_ylim((ylim[0] 12 ylim[1]))

legend()

hold(False)

draw()

18

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse des donneacutees (Panda QtGraph)

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation 19

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Domaines drsquoutilisation

matplotlib inline

from pylab import plot show title xlabel ylabel subplot savefig

from scipy import fft arange ifft

from numpy import sin linspace pi

from scipyiowavfile import readwrite

def plotSpectru(yFs)

n = len(y) lungime semnal

k = arange(n)

T = nFs

frq = kT two sides frequency range

frq = frq[range(n2)] one side frequency range

Y = fft(y)n fft computing and normalization

Y = Y[range(n2)]

plot(frqabs(Y)r) plotting the spectrum

xlabel(Freq (Hz))

ylabel(|Y(freq)|)

Fs = 44100 sampling rate

ratedata=read(fatihawav)

y=data

lungime=len(y)

timp=len(y)44100

t=linspace(0timplen(y))

subplot(211)

plot(ty)

xlabel(Time)

ylabel(Amplitude)

subplot(212)

plotSpectru(yFs)

show()

20

Lecture de la

sourah

Code du traitement

audio

Spectre Amp|Freacuteq

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele (MPI Python)

Theacuteorie des graphes (Networkx)

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

21 Exemple

de graphe

Fenecirctre Aperccedilu

du bloc-note

Importation de la

librairie NetworkX

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

import RPiGPIO as GPIO

GPIOsetmode(GPIOBCM) set board mode to Broadcom

GPIOsetup(17 GPIOOUT) set up pin 17

GPIOsetup(18 GPIOOUT) set up pin 18

GPIOoutput(17 1) turn on pin 17

GPIOoutput(18 1) turn on pin 18

Importation

librairie GPIO

Module

Galileo Gen 2

Module

RaspBerry PI 3

22

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D (Python CAD FreeCAD)

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

23

from OCCSTEPControl import STEPControl_Reader

from OCCIFSelect import IFSelect_RetDone IFSelect_ItemsByEntity

from OCCDisplaySimpleGui import init_display

step_reader = STEPControl_Reader()

status = step_readerReadFile(modelswind_turbinestp)

if status == IFSelect_RetDone check status

failsonly = False

step_readerPrintCheckLoad(failsonly IFSelect_ItemsByEntity)

step_readerPrintCheckTransfer(failsonly IFSelect_ItemsByEntity)

ok = step_readerTransferRoot(1)

_nbs = step_readerNbShapes()

aResShape = step_readerShape(1)

else

print(Error cant read file)

sysexit(0)

display start_display add_menu add_function_to_menu = init_display()

displayDisplayShape(aResShape update=True)

start_display()

Importation

librairie OCC

Maillage Dauphin

Rendu du macirct drsquoun

aeacuterogeacuteneacuterateur

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D (Python CAD FreeCAD)

Bioinformatique et manipulation du geacutenome

POO avec Python (Programmation

Orienteacutee Objet) Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

class Rocket()

Rocket simule une roquette pour un jeu

ou une simulation de physique

def __init__(self)

Each rocket has an (xy) position

selfx = 0

selfy = 0

def move_up(self)

Increacutementation de la position y de la roquette

selfy += 1

Deacutefinir une ensemble de 5 roquettes les stocker dans une liste

my_rockets = []

for x in range(05)

new_rocket = Rocket()

my_rocketsappend(new_rocket)

A remarquer que chaque roquette est un objet agrave part entiegravere

for rocket in my_rockets

print(rocket)

Deacutefinition drsquoune

nouvelle Classe

Instantiation

Meacutethode Constructeur

__init__

24

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D (Python CAD FreeCAD)

Bioinformatique et manipulation

du geacutenome Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

25

from Bio import SeqIO

for seq_record in SeqIOparse(ls_orchidgbk genbank)

print(seq_recordid)

print(repr(seq_recordseq))

print(len(seq_record))

Z785331

Seq(CGTAACAAGGTTTCCGTAGGTGAACCTGCGGAAGGATCATTGATGAGACCGTGGCGC

IUPACAmbiguousDNA())

740

Z784391

Seq(CATTGTTGAGATCACATAATAATTGATCGAGTTAATCTGGAGGATCTGTTTACTGCC

IUPACAmbiguousDNA())

592

Sinon dans une Terminal Python

gtgtgt from BioSeq import Seq

gtgtgt from BioAlphabet import generic_dna

gtgtgt gene = Seq(GTGAAAAAGATGCAATCTATCGTACTCGCACTTTCCCTGGTTCTGGTCGCTCCCATGGCA +

GCACAGGCTGCGGAAATTACGTTAGTCCCGTCAGTAAAATTACAGATAGGCGATCGTGAT +

AATCGTGGCTATTACTGGGATGGAGGTCACTGGCGCGACCACGGCTGGTGGAAACAACAT +

TATGAATGGCGAGGCAATCGCTGGCACCTACACGGACCGCCGCCACCGCCGCGCCACCAT +

AAGAAAGCTCCTCATGATCATCACGGCGGTCATGGTCCAGGCAAACATCACCGCTAA

generic_dna)

gtgtgt genetranslate(table=Bacterial)

Seq(VKKMQSIVLALSLVLVAPMAAQAAEITLVPSVKLQIGDRDNRGYYWDGGHWRDHHR

HasStopCodon(ExtendedIUPACProtein() )

gtgtgt genetranslate(table=Bacterial to_stop=True)

Seq(VKKMQSIVLALSLVLVAPMAAQAAEITLVPSVKLQIGDRDNRGYYWDGGHWRDHHHR

ExtendedIUPACProtein())

Logo de

BioPython Seacutequence drsquoADN

Importation

librairie BIO

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D (Python CAD FreeCAD)

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

26

Installer agrave partir de PyPI

$ pip install mezzanine

Instantier un projet

$ mezzanine-project monproject

$ cd monproject

Instantier une Base de donneacutees

$ python managepy createdb

Lancer le serveur Web

$ python managepy runserver

Installation en mode

commande

URL du site instantieacute

Version Mobile Menu

Version Administration

Sites Web fait avec

Mezzanine

Version Normal

Les environnements de deacuteveloppement inteacutegreacutes de code Python sont nombreux des solutions proprieacutetaires agrave celles portant le

label GPL

Ils sont de trois grandes cateacutegories

Les applications bureaux (Desktop)

Les consoles de commande en ligne Les interfaces orienteacutees Web

Outils drsquoeacutelaboration de code Python (IDE)

27

Les environnements de deacuteveloppement inteacutegreacutes de code Python sont nombreux des solutions proprieacutetaires agrave celles portant le

label GPL Ils sont de trois grandes cateacutegories

Les applications bureaux (Desktop)

Les consoles de commande en ligne

Les interfaces orienteacutees Web

Outils drsquoeacutelaboration de code Python (IDE)

28

Les environnements de deacuteveloppement inteacutegreacutes de code Python sont nombreux des solutions proprieacutetaires agrave celles portant le

label GPL Ils sont de trois grandes cateacutegories

Les applications bureaux (Desktop)

Les consoles de commande en ligne

Les interfaces orienteacutees Web

Outils drsquoeacutelaboration de code Python (IDE)

29

30

Nom de Symbole Les noms de variables en Python peuvent contenir des caractegraveres alphanumeacuteriques a-z A-Z 0-

9 et certains caractegraveres speacuteciaux tel que _ Les noms de variables normales doivent commencer par une lettre

Par convention les noms de variables commencent par une lettre minuscule et les noms de classe commencent par

une lettre majuscule En outre il y a un certain nombre de mots-cleacutes Python qui ne peuvent pas ecirctre utiliseacutes comme

noms de variables Ces mots-cleacutes sont les suivants

and as assert break class continue def del elif else except exec finally for from global if import in

is lambda not or pass print raise return try while with yield

Affectation assignment de variable

x = 10

my_variable = 122

type(x) fonction TYPE retourne le type de la variable entre parenthegravese

builtinsfloat

Verification de type x = 10

veacuterifier si la variable est reacuteelle

type(x) is float

isinstance(x float)

True

z = complex(x)

print(z type(z))

(1+0j) ltclass complexlsquogt

Base de repreacutesentation des donneacutees

31

Operateurs et comparaisons Opeacuterateurs arithmeacutetiques + - (division entiegravere) puissance

30 20

10

NB operators puissance en python nrsquoest pas ^ mais

2 2

4

Les opeacuterateurs de comparaison sont gtltgt=lt===

objects identiques

x1 = x2 = [12]

x1 is x2

True

2 gt= 2 2 lt= 2

(True True)

Chaines de caractegraveres les liste et les dictionnaires s = Hello world

type(s)

builtinsstr

length of the string the number of characters

len(s)

11

replace a substring in a string with somethign else

s2 = sreplace(world test)

print(s2)

Hello test

s[0]

H

Base de repreacutesentation des donneacutees

32

Chaines de caractegraveres les liste et les dictionnaires s = Hello worldldquo

replace a substring in a string with somethign else

s2 = sreplace(world test)

Hello test

print(s2)

s[05]

Hellolsquo

s[05]

Hellolsquo

s[]

Hello worldlsquo

print(value = f 10) Formatage C des variables

value = 1000000

s2 = value1 = 2f value2 = d (31415 15)

print(s2)

value1 = 314 value2 = 1

Listes l = [1234]

print(type(l))

print(l)

ltclass listgt

[1 2 3 4]

l = [1 a 10 1-1j] peuvent ecirctre heacuteteacuterogegravene

print(l)

[1 a 10 (1-1j)]

Base de repreacutesentation des donneacutees

33

Listes start = 10

stop = 30

step = 2

range(start stop step)

range(10 30 2)

list(range(start stop step))

[10 12 14 16 18 20 22 24 26 28]

s2 = list(s)

S2

[H e l l o w o r l d]

Tri de la liste

s2sort()

print(s2)

[ H d e l l l o o r w]

l = []

lappend(A)

lappend(d)

lappend(d)

print(l)

[A d d]

Tuples Ce sont des variables comme les listes mais pas alteacuterables

point = (10 20)

print(point type(point))

(10 20) ltclass tuplegt

Base de repreacutesentation des donneacutees

34

Tuples x y = point

print(x = x)

print(y = y)

x = 10

y = 20

Dictionaries params = parameter1 10 parameter2 20 parameter3 30

print(type(params))

print(params)

ltclass dictgt

fparameter2 20 parameter3 30 parameter1 10

params[parameter1] = A

params[parameter2] = B

Ajouter une nouvelle entreacutee

params[parameter4] = D

print(paramegravetre = + str(params[parameter1]))

print(paramegravetre = + str(params[parameter2]))

print(paramegravetre = + str(params[parameter3]))

print(paramegravetre = + str(params[parameter4]))

paramegravetre = A

paramegravetre = B

paramegravetre = 30

paramegravetre = D

Base de repreacutesentation des donneacutees

35

36

Affectation amp Controcircle conditionnel de flue statement1 = False Crsquoest une affectation

statement2 = False

if statement1 Test valideacute condition (statement1) est VRAIE

print(statement1 is True)

elif statement2 Exeacutecuteacutee condition (statement2) est VRAIE

print(statement2 is True)

else Exeacutecuteacutee sinon

print(statement1 and statement2 are False)

Boucles for x in [123] [123] peut ecirctre deacutesigneacute par range(3) avec print(x+1)

print(x)

1

2

3

for word in [scientific computing with python]

print(word) condition de reacutepeacutetition deacutependante du contenu de la liste

scientific

computing

with

python

l1 = [x2 for x in range(05)] agrave remarquer la compaciteacute du Python

print(l1)

[0 1 4 9 16]

Base de repreacutesentation des donneacutees

37

Boucles var = 0

while var = 1

print jlsquoeacutecris mon programme ici

choix = raw_input(voulez vous recommencer ( on ) )

if choix == n

var = 1

else

lsquovous allez ecirctre renvoyeacute au deacutebut du programmersquo

X = y 2

while x gt 1

If y x == 0

print y lsquo est facteur de rsquo x

break

x -= 1

else

print y lsquo est premierlsquo

Lrsquoutilisation de zip et map peut srsquoaveacutereacutee encore plus efficace

l1 = [1 2 3]

l2 = [4 5 6]

for (x y) in zip(l1 l2)

print x y -- x + y

1 4 -- 5

2 5 -- 7

3 6 -- 9

Base de repreacutesentation des donneacutees

38

s=0123456789

print map(int s)

[0 1 2 3 4 5 6 7 8 9]

Utilisation et

puissance de MAP

Utilisation de ZIP

Intervales range(start stop step)

range(5 10)

5 jusqursquoagrave 10 (exclue) avec un pas de 1

range(0 10 3)

0 3 6 9

range(-10 -100 -30)

-10 -40 -70

Test conditionnel binaire x = 5

y = 10

if x gt y

print(x est grand que y)

else

print(ldquox nrsquoest pas grand que yrdquo)

Dans Python on peut compliquer les chose

x = 5

y = 10

Z = 12

if z gt x gt y

print(lsquoy est petit que x et x est petit que z)

Base de repreacutesentation des donneacutees

39

Boucle avec test conditionnel binaire break continue et else dans une boucle for

for n in range(2 10)

for x in range(2 n)

if n x == 0

print(n lsquoest eacutegal agrave x nx)

break

else

print(n lsquoest premier)

Utilisation de lrsquoinstruction continue

for num in range(2 10)

if num 2 == 0 le symbole deacutesigne lrsquoopeacuteration RESTE de la division

print(ldquoNombre paire trouveacute num)

continue

print(ldquoNombre non premier num)

Base de repreacutesentation des donneacutees

40

Deacutefinition de fonction (proceacutedure avec retour) def fib(n) Ecrire la suite de Fibonacci jusqursquoagrave n

a b = 0 1

while a lt n

print(a end= )

a b = b a+b

print()

fib(2000)

0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597

f = fib deacutesignation par reacutefeacuterence f agrave la fonction fib

f(100)

0 1 1 2 3 5 8 13 21 34 55 89

autre type de deacutefinition de fonction

def ask_ok(prompt retries=4 complaint=Oui or Non srsquoil vou plait )

while True

ok = input(prompt)

if ok in (lsquoo lsquooui lsquoOui)

return True

if ok in (lsquon no non lsquoNon)

return False

retries = retries - 1

if retries lt 0

raise OSError(lsquoUtilisateur non coopeacuteratif)

print(complaint)

Base de repreacutesentation des donneacutees

41

Lrsquoinstruction lambda def make_incrementeur(n)

return lambda x x + n

f = make_incrementeur(42)

f(0)

42

f(1)

43

un autre cas drsquoutilisation

pairs = [(1 one) (2 two) (3 three) (4 four)]

pairssort(key=lambda pair pair[1])

pairs

[(4 four) (1 one) (3 three) (2 two)]

Les annotations dans une fonction Les annotations deacutefinissent des messages de preacutesentation

def f(chiken str eggs str = eggs) -gt str remarquer que la fonction est de type STR

print(Annotations f__annotations__)

print(Arguments chiken eggs)

return chiken + and + eggs

f(spam)

Annotations chiken ltclass strgt return ltclass strgt eggs ltclass strgt

Arguments spam eggs

spam and eggslsquo

Base de repreacutesentation des donneacutees

42

Les deacutecorateurs python Notre deacutecorateur

def decorate(func)

print uJe suis dans la fonction decorate et je deacutecore s func__name__

print uExeacutecution de la fonction s func__name__

return func

Fonction cible utiliseacutee avec DECORATOR

decorate

def foobar(args)

print join(args)

Exemple drsquoappel de la fonction

foobar(A B C D)

Je suis dans la fonction decorate et je deacutecore foobar

Exeacutecution de la fonction foobar

A B C D

Il est posible drsquoattribuer plusieurs deacutecorateurs agrave une seule fonction

decorateur1

decorateur2

def ma_fonction()

instructions

Base de repreacutesentation des donneacutees

43

Manipulation des listes a = [6625 333 333 1 12345]

print(acount(333) acount(6625) acount(x))

2 1 0

ainsert(2 -1)

aappend(333)

a

[6625 333 -1 333 1 12345 333]

aindex(333)

1

aremove(333)

a

[6625 -1 333 1 12345 333]

areverse()

a

[333 12345 1 333 -1 6625]

asort()

a

[-1 1 6625 333 333 12345]

apop()

12345

a

[-1 1 6625 333 333]

Base de repreacutesentation des donneacutees

44

Puissance du langage Python Lrsquoensemble des lignes suiantes peut ecirctre compacteacute par ce qui suit

combs = []

for x in [123]

for y in [314]

if x = y

combsappend((x y))

Combs

Ou bien

[(x y) for x in [123] for y in [314] if x = y]

Donne le mecircme reacutesultat

[(1 3) (1 4) (2 3) (2 1) (2 4) (3 1) (3 4)]

Calcul de la valeur de PI arrondie

from math import pi

[str(round(pi i)) for i in range(1 6)]

[31 314 3142 31416 314159]

Geacuteneacuterateur avec utilisation de YIELD

def generateur()

yield a

yield b

yield cldquo

i=generateur()

for v in i

print v

a

b

c

Base de repreacutesentation des donneacutees

45

Les expressions reacuteguliegraveres en python Les expressions reacuteguliegravere sont utiliseacutees pour veacuterifier la conformiteacute des expressions de

chaines de caractegraveres par rapport agrave un motif Les symboles suivants sont utiliseacutes

^ $ + [ ] | ( )

Le point correspond agrave nimporte quel caractegravere

^ Indique un commencement de segment mais signifie aussi contraire de

$ Fin de segment

[xy] Une liste de segment possible Exemple [abc] eacutequivaut agrave a b ou c

(x|y) Indique un choix multiple type (ps|ump) eacutequivaut agrave ps OU UMP

d le segment est composeacute uniquement de chiffre ce qui eacutequivaut agrave [0-9]

D le segment nest pas composeacute de chiffre ce qui eacutequivaut agrave [^0-9]

s Un espace ce qui eacutequivaut agrave [ tnrfv]

S Pas despace ce qui eacutequivaut agrave [^ tnrfv]

w Preacutesence alphanumeacuterique ce qui eacutequivaut agrave [a-zA-Z0-9_]

W Pas de preacutesence alphanumeacuterique [^a-zA-Z0-9_]

Est un caractegravere deacutechappement T2 Le T soit reacutepeacuteteacute 2 fois

TA19 La seacutequence TA doit ecirctre preacutesente de 1 agrave 9 fois

TAM10 La seacutequence TAM nrsquoexiste pas ou reacutepeacuteteacutee 10 fois

LI1 La seacutequence LI doit ecirctre reacutepeacuteteacutee au moins une fois

Base de repreacutesentation des donneacutees

46

Les expressions reacuteguliegraveres en python Utilisation des expressions reacuteguliegravere

import re

print rematch(rGR()S GRIS)

lt_sreSRE_Match object at 0x02019DE0gt

Une utilisation freacutequente consiste en la validation des valeurs des emails saisis

Utilisation des expressions reacuteguliegravere

import re

mails = [lsquomtamaligmailcomrsquorsquoutmbuniv-bechardzrsquo lsquo8freefrrsquo lsquouniv-bechardzrsquo lsquotamalicdtarsquo]

regex = recompile(rrsquo^[a-z0-9_-]+[a-z0-9_-]+[(com|fr|dz)]+rsquo

for mail in mails

if regexmatch(mail) is not None

print Ce mail s est valide mail

else

print Erreur ce mail s est non valide mail

Ce mail mtamaligmailcom est valide

Ce mail utmbuniv-bechardz est valide

Ce mail 8freefr est valide

Erreur ce mail univ-bechardz est non valide

Erreur ce mail tamalicdta est non valide

Base de repreacutesentation des donneacutees

47

Les fichiers Creacuteer lire et eacutecrire dans un fichier en python Utilisation des expressions reacuteguliegravere

fichier = open(donneestxt r)

print fichier

ltopen file lsquodonneestxt mode r at 0x7ff6cf3fe4b0gt

Le descripteur permet de renseigner la machine sur la maniegravere avec laquelle le fichier est utiliseacute

r pour ouverture en mode READ

w pour ouverture en mode WRITE chaque fois le contenu du fichier est eacutecraseacute sinon python le creacutee

a pour ajout lsquoAPPENDrsquo Si le fichier nexiste pas python le creacutee

b Ouverture en mode Binaire

t Ouverture en mode Texte

x creacutee un nouveau fichier et louvrir pour eacutecriture

proceacutedure geacuteneacuterale pour lrsquoutilisation drsquoun fichier

fichier = open(lsquodonneestxtrsquo r)

print fichierread()

fichierclose()

Lrsquoinstruction WITH peut ecirctre utiliseacutee sans besoin de la fonction CLOSE

with open(datatxt r) as fichier

print fichierread()

Base de repreacutesentation des donneacutees

48

49

Le langage Python est un langage script interpreacuteteacute Le programme portant lrsquoune des extension py pyw ou pwc est

structureacute selon le canevas suivant

Les codifications

usrbinpython27

--codingencodage -

Les imports des librairies

Les instructions

Le langage Python passe pour ecirctre exeacutecuteacute sur deux eacutetapes la premiegravere UNE PRECOMPILATION geacuteneacuteration du code

machine et finalement un eacutecriture en code machine exeacutecutable (selon la machine)

Lrsquoenvironnement drsquoexeacutecution des scripts eacutecrits en Python regroupe les avantages des TRADUCTEURS (travaille en ligne par

ligne) et les COMPILATEURS (puissance de la structure algorithmique)

La bibliothegraveque cx_Freeze sert agrave transformer les fichiers scripts Pyhon py en exeacutecutable exe

Structures algorithmique du python

50

51

Matrices amp Systegravemes lineacuteaires

52

53

54

55

56

57

Le calcul scientifique

Reacutefeacuterences L-V Bertallanfy lsquoGeneral System Theoryrsquo Edition MASSON 1972

58

Page 5: Chap XIII : calcul scientifique avec python

Introduction (Historique) Python est un langage inteacuteressant pour sa faciliteacute et sa richesse en possibiliteacutes drsquoutilisation En

version de base Python dispose de nombreuses fonctionnaliteacutes inteacutegreacutees en standard

Autour des aptitudes de base standard Il est extensible par des modules de tout bord qui sont

les contributions de deacuteveloppeurs deacutevoueacutes agrave la cause de lrsquoOpen Source Ce sont des

bibliothegraveques qui aident le deacuteveloppeur agrave travailler sur des projets particuliers Plusieurs

bibliothegraveques peuvent ainsi ecirctre installeacutees pour par exemple deacutevelopper des interfaces

graphiques en Python (cas de tkinter)

Python est un langage de programmation dont la premiegravere version est sortie en 1991 Creacuteeacute par

Guido van Rossum il a eacuteteacute porteacute du Macintosh de son deacuteveloppeur qui travaillait agrave cette eacutepoque

au Centrum voor Wiskunde en Informatica aux Pays-Bas jusquagrave se voir associer une

organisation agrave but non lucratif particuliegraverement deacutevoueacutee la PSF (Python Software Foundation)

creacuteeacutee en 2001 Ce langage a eacuteteacute baptiseacute ainsi en hommage agrave la troupe de comiques les laquoMonty

Pythonraquo

5

Deacuteveloppeur Informaticien

Neacuteerlandais (langage Python)

Guido van Rossum

31 janvier 1956 Monty Python est le nom dune troupe ceacutelegravebre

dhumoristes britanniques (1969)

Introduction (Logiciel Open Source vs Proprieacutetaire) La PSF (Python Software Foundation) creacuteeacutee en 2001 appartient agrave Open Source Initiative et agrave la

FSF (Free Software Foundation)

Un logiciel proprieacutetaire appeleacute parfois de maniegravere militante logiciel privateur ou encore logiciel

non libre est un logiciel dont la duplication la modification ou lusage est limiteacute

La deacutesignation Open Source ou lsquoCode Source Ouvertrsquo sapplique aux logiciels dont la licence

respecte des critegraveres preacuteciseacutement eacutetablis par lOpen Source Initiative cest-agrave-dire les possibiliteacutes

de libre redistribution daccegraves au code source et de creacuteation de travaux deacuteriveacutes Mis agrave la

disposition du grand public ce code source est geacuteneacuteralement le reacutesultat dune collaboration

entre deacuteveloppeurs

6

Elaboration drsquoun environnement logiciel Python

Installation Beaucoup de meacutethodologies sont valable pour deacutevelopper un environnement compatible pour une programmation avec le

langage Python (Celui-ci est teacuteleacutechargeable sous deux version 2X ou 3X version de base qui ne sont pas forcement

totalement compatible) Le langage Python est utilisable sous diffeacuterent systegraveme drsquoexploitation (Win LinuxUNIX ou Mac OS)

Une autre alternative encore plus interessante que la premiegravere

est drsquoinstaller le logiciel ANACONDA

Avec lrsquoun des eacutediteurs de scripts

7

Notre choix

Environnement

Notre choix

IDE

Elaboration drsquoun environnement logiciel Python Installation La plateforme ANACONDA installe tout le neacutecessaire (lrsquoenvironnement PYTHON 3X2X) et donnera accegraves aux possibiliteacutes

drsquoeacutetendre lrsquoinstallation aux modules PYTHON neacutecessaires pour le deacuteveloppement de calcul scientifique de lrsquoingeacutenieur ou du

chercheur

Les diffeacuterents modules (librairies) neacutecessaire sont

NUMPY Analyse numeacuterique amp Matrices

SCIPY Extension pour calcul scientifique

MATPLOTLIB Dessin de courbe

SYMPY calcul symbolique

NETWORKX manipulation et gestion des graphes

PLOTLY Librairie en ligne pour dessin de courbes

EVENTLET

TKINTER Librairie pour manipulation drsquointerface graphique

IPYTHON Bibliothegraveque pour calcul scientifique

CYTHON Interface pour environnement CC++

JPYTHON Interface pour environnement JAVA

JUPYTER Editeur orienteacute navigateur

DJANGO-CMS System de gestion de contenus

WIDGY CMS utilisant le Framework Django

hellipencore des milliers de modules

8

Notre choix

Environnement

Notre choix

IDE

Elaboration drsquoun environnement logiciel Python Installation Assistant de lrsquoinstallation de ANACONDA et de PYCHARM

La plateforme ANACONDA = Python Modules LrsquoIDE de programmation PYTHON PyCharm 9

Notre choix

Environnement

Notre choix

De lrsquoIDE

Elaboration drsquoun environnement logiciel Python Personnalisation Sous PyCharm en mode TEREMINAL nous ajoutons

les modules neacutecessaires agrave la plateforme ANACONDA Dans la fenecirctre TERMINAL nous utiliserons CONDA

HPycharmProjectsessaigtconda install mpi4py

Using Anaconda Cloud api site

httpsapianacondaorg

Fetching package metadata

Solving package specifications

Package plan for installation in environment

hAnaconda325

The following packages will be downloaded

package | build

mpi4py-200 | py35_0 264 KB

The following NEW packages will be INSTALLED

mpi4py 200-py35_0 (copy)

Proceed ([y]n) Y

Fetching packages

mpi4py-200-p 100 || Time 00001 16926 kBs

Extracting packages hellip

[COMPLETE]|| 100

Linking packages

[mpi4py]| | 0

[COMPLETE]|| 100

10 Fenecirctre ABOUT

de PyCharm

Ideacutee du jour

Commande

installation modules

Elaboration drsquoun environnement logiciel Python Utilisation Sous PyCharm en mode TEREMINAL nous ajoutons les

modules neacutecessaires agrave la plateforme ANACONDA Caracteacuteristiques du langage script Python

Avantages

bull Tregraves riches librairies pour le calcul scientifique

bull Langage bien structureacute permettant drsquoeacutecrire des

programmes lisibles lsquowe code what we thinkrsquo

bull Drsquoautres librairies hors le cadre du calcul scientifique

(Gestion des services Web Accegraves aux ports seacuterie etc)

bull Graticiel lsquoOpen Sourcersquo derriegravere une large communauteacute

bull Compaciteacute du programme deacuteveloppeacute

bull Beaucoup drsquoalternatives pour lrsquoeacutedition (IDE)

Inconveacutenients

bull Environnement de deacuteveloppement moins

bull Pas tous les algorithmes qui peuvent ecirctre trouveacutes dans le

logiciel

Python peut ecirctre utiliser sous deux modes selon

lrsquointeractiviteacute escompteacutee

1 Commande en ligne

2 Exeacutecution de fichier script py 11 Fenecirctre ABOUT

de PyCharm

Elaboration drsquoun environnement logiciel Python Utilisation Sous PyCharm

Caracteacuteristiques du langage script Python

Python est un langage script informatique geacuteneacuterique et

moderne

bull Langage Python integravegre tous les types de donneacutees

(chaicircne reacuteel int) les controcircles des collections de

donneacutees (listes dictionnaires) et des modegraveles de flux

etc

bull La bibliothegraveque standard integravegre plusieurs Modules

bull Un grand nombre de modules speacutecialiseacutes ou des

applications sont eacutecrites en Python protocoles web

framework web etc Ainsi que le calcul scientifique

- Outils de deacuteveloppement (test automatique geacuteneacuteration de

documentation)

- et encore plushellip

Python peut ecirctre utiliser sous deux modes selon

lrsquointeractiviteacute escompteacutee

1 Commande en ligne

2 Exeacutecution de fichier script py 12

Mode console

Python

Mode

programme (py)

Elaboration drsquoun environnement logiciel Python Utilisation Sous Jupyter Interface WEB pour Python

Cette interface Web est facilement mise en œuvre par son

installation

conda install jupyter (si Anaconda est installeacute)

Ou

pip install jupyter

Le lancement de lrsquointerface est fait en invoquant

Jupiter notebook

Ouvrir le navigateur et entrer lrsquoadresse http1270018888

Pour utiliser un autre PORT autre que 8888

On note http127001Nouveau_Port

Lrsquointerface JUPITER est intuitive et facile agrave utiliser ses

fonctionnaliteacutes sont bull Deacuteploiement sous protocole Internet drsquoaptitude de calcul

Python

bull Toute les possibiliteacutes de gestion des documents lsquoNotebookrsquo

sont offertes

bull Possibiliteacutes drsquoeacutedition non limiteacutees (LaTeX HTML Code hellip)

bull Exeacutecution immeacutediate

bull Compatibiliteacute avec la plupart des langages et scripts de

programmation (CC++ Java JavaScript Julia Python R

Octave hellip)

bull Offre accessibiliteacute agrave Jupyter Drive via Google Drive

bull Options de Reporting avanceacutees (HTML LaTeX PDF)

13

Exemple de

code avec son

exeacutecution

Menu et barre

drsquooutils

Elaboration drsquoun environnement logiciel Python Utilisation Sous Jupyter Interface WEB pour Python

Les notebooks sont accessibles agrave partir de PyCharm Les notebooks sont des solutions de collaboration de preacutefeacuterences

ils integravegrent toute les fonctionnaliteacutes exigeacutees par un chercheur

dans le domaine des sciences humaines ou technologiques

Organisation des documents leur ouverture eacutedition ou mise agrave

jours se fait dans le mecircme endroit sans aucune deacutependance par

rapport agrave la machine puisque les notebooks sont accessible en

ligne (Serveur Ordinateur de bureau ou Peacuteripheacuterique mobile)

Les possibiliteacutes sont eacutetendues ainsi qursquoune documentation

abondante

14

Graphique

3D

Exemple de Code

Python

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse des donneacutees (Panda)

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

15

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse des donneacutees (Panda)

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

import numpy as np

systeme = nparray([[12][3-4]])

valeur=nparray([[3][1]])

sol=nplinalgsolve(systemevaleur)

print(x=sol[00] et y=sol[10])

x= 14 et y= 08

Reacutesolution de systegraveme lineacuteaire AX=b gtgtgt import numpy as np

gtgtgt from scipy import linalg

gtgtgt A = nparray([[1 2] [3 4]])

gtgtgt A

array([[1 2][3 4]])

gtgtgt b = nparray([[5] [6]])

gtgtgt b

array([[5][6]])

gtgtgt linalginv(A)dot(b) slow

array([[-4 ][ 45]])

gtgtgt Adot(linalginv(A)dot(b)) - b Veacuterification array([[888178420e-16][266453526e-15]])

gtgtgt nplinalgsolve(A b) fast

array([[-4 ][ 45]])

gtgtgt Adot(nplinalgsolve(A b)) - b Veacuterification array([[ 0][ 0]])

Importation de la

librairie Numpy

16

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse des donneacutees (Panda)

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

17

import numpy as np

from scipy import signal misc

import matplotlibpyplot as plt

image = miscface(gray=True)astype(npfloat32)

derfilt = nparray([10 -2 10] dtype=npfloat32)

ck = signalcspline2d(image 80)

deriv = (signalsepfir2d(ck derfilt [1]) +signalsepfir2d(ck [1] derfilt))

laplacian = nparray([[010] [1-41] [010]] dtype=npfloat32)

deriv2 = signalconvolve2d(cklaplacianmode=lsquosameboundary=symm)

pltfigure()

pltimshow(image)

pltgray()

plttitle(lsquoImage original)

pltshow()

pltfigure()

pltimshow(deriv)

pltgray()

plttitle(lsquosortie avec filtre spline)

pltshow()

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse des donneacutees (Panda)

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

from matplotlibpyplot import figure hold plot legend draw

from numpy import linspace

import scipystats as stats

from numpyrandom import randn

x = randn(100)

fig = figure()

ax = figadd_subplot(111)

axhist(x bins=30 label=rsquoEmpiricalrsquo)

xlim = axget_xlim()

ylim = axget_ylim()

pdfx = linspace(xlim[0] xlim[1] 200)

pdfy = statsnormpdf(pdfx)

pdfy = pdfy pdfymax() ylim[1]

hold(True)

plot(pdfx pdfy rsquor-rsquo label=rsquoPDFrsquo)

axset_ylim((ylim[0] 12 ylim[1]))

legend()

hold(False)

draw()

18

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse des donneacutees (Panda QtGraph)

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation 19

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Domaines drsquoutilisation

matplotlib inline

from pylab import plot show title xlabel ylabel subplot savefig

from scipy import fft arange ifft

from numpy import sin linspace pi

from scipyiowavfile import readwrite

def plotSpectru(yFs)

n = len(y) lungime semnal

k = arange(n)

T = nFs

frq = kT two sides frequency range

frq = frq[range(n2)] one side frequency range

Y = fft(y)n fft computing and normalization

Y = Y[range(n2)]

plot(frqabs(Y)r) plotting the spectrum

xlabel(Freq (Hz))

ylabel(|Y(freq)|)

Fs = 44100 sampling rate

ratedata=read(fatihawav)

y=data

lungime=len(y)

timp=len(y)44100

t=linspace(0timplen(y))

subplot(211)

plot(ty)

xlabel(Time)

ylabel(Amplitude)

subplot(212)

plotSpectru(yFs)

show()

20

Lecture de la

sourah

Code du traitement

audio

Spectre Amp|Freacuteq

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele (MPI Python)

Theacuteorie des graphes (Networkx)

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

21 Exemple

de graphe

Fenecirctre Aperccedilu

du bloc-note

Importation de la

librairie NetworkX

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

import RPiGPIO as GPIO

GPIOsetmode(GPIOBCM) set board mode to Broadcom

GPIOsetup(17 GPIOOUT) set up pin 17

GPIOsetup(18 GPIOOUT) set up pin 18

GPIOoutput(17 1) turn on pin 17

GPIOoutput(18 1) turn on pin 18

Importation

librairie GPIO

Module

Galileo Gen 2

Module

RaspBerry PI 3

22

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D (Python CAD FreeCAD)

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

23

from OCCSTEPControl import STEPControl_Reader

from OCCIFSelect import IFSelect_RetDone IFSelect_ItemsByEntity

from OCCDisplaySimpleGui import init_display

step_reader = STEPControl_Reader()

status = step_readerReadFile(modelswind_turbinestp)

if status == IFSelect_RetDone check status

failsonly = False

step_readerPrintCheckLoad(failsonly IFSelect_ItemsByEntity)

step_readerPrintCheckTransfer(failsonly IFSelect_ItemsByEntity)

ok = step_readerTransferRoot(1)

_nbs = step_readerNbShapes()

aResShape = step_readerShape(1)

else

print(Error cant read file)

sysexit(0)

display start_display add_menu add_function_to_menu = init_display()

displayDisplayShape(aResShape update=True)

start_display()

Importation

librairie OCC

Maillage Dauphin

Rendu du macirct drsquoun

aeacuterogeacuteneacuterateur

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D (Python CAD FreeCAD)

Bioinformatique et manipulation du geacutenome

POO avec Python (Programmation

Orienteacutee Objet) Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

class Rocket()

Rocket simule une roquette pour un jeu

ou une simulation de physique

def __init__(self)

Each rocket has an (xy) position

selfx = 0

selfy = 0

def move_up(self)

Increacutementation de la position y de la roquette

selfy += 1

Deacutefinir une ensemble de 5 roquettes les stocker dans une liste

my_rockets = []

for x in range(05)

new_rocket = Rocket()

my_rocketsappend(new_rocket)

A remarquer que chaque roquette est un objet agrave part entiegravere

for rocket in my_rockets

print(rocket)

Deacutefinition drsquoune

nouvelle Classe

Instantiation

Meacutethode Constructeur

__init__

24

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D (Python CAD FreeCAD)

Bioinformatique et manipulation

du geacutenome Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

25

from Bio import SeqIO

for seq_record in SeqIOparse(ls_orchidgbk genbank)

print(seq_recordid)

print(repr(seq_recordseq))

print(len(seq_record))

Z785331

Seq(CGTAACAAGGTTTCCGTAGGTGAACCTGCGGAAGGATCATTGATGAGACCGTGGCGC

IUPACAmbiguousDNA())

740

Z784391

Seq(CATTGTTGAGATCACATAATAATTGATCGAGTTAATCTGGAGGATCTGTTTACTGCC

IUPACAmbiguousDNA())

592

Sinon dans une Terminal Python

gtgtgt from BioSeq import Seq

gtgtgt from BioAlphabet import generic_dna

gtgtgt gene = Seq(GTGAAAAAGATGCAATCTATCGTACTCGCACTTTCCCTGGTTCTGGTCGCTCCCATGGCA +

GCACAGGCTGCGGAAATTACGTTAGTCCCGTCAGTAAAATTACAGATAGGCGATCGTGAT +

AATCGTGGCTATTACTGGGATGGAGGTCACTGGCGCGACCACGGCTGGTGGAAACAACAT +

TATGAATGGCGAGGCAATCGCTGGCACCTACACGGACCGCCGCCACCGCCGCGCCACCAT +

AAGAAAGCTCCTCATGATCATCACGGCGGTCATGGTCCAGGCAAACATCACCGCTAA

generic_dna)

gtgtgt genetranslate(table=Bacterial)

Seq(VKKMQSIVLALSLVLVAPMAAQAAEITLVPSVKLQIGDRDNRGYYWDGGHWRDHHR

HasStopCodon(ExtendedIUPACProtein() )

gtgtgt genetranslate(table=Bacterial to_stop=True)

Seq(VKKMQSIVLALSLVLVAPMAAQAAEITLVPSVKLQIGDRDNRGYYWDGGHWRDHHHR

ExtendedIUPACProtein())

Logo de

BioPython Seacutequence drsquoADN

Importation

librairie BIO

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D (Python CAD FreeCAD)

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

26

Installer agrave partir de PyPI

$ pip install mezzanine

Instantier un projet

$ mezzanine-project monproject

$ cd monproject

Instantier une Base de donneacutees

$ python managepy createdb

Lancer le serveur Web

$ python managepy runserver

Installation en mode

commande

URL du site instantieacute

Version Mobile Menu

Version Administration

Sites Web fait avec

Mezzanine

Version Normal

Les environnements de deacuteveloppement inteacutegreacutes de code Python sont nombreux des solutions proprieacutetaires agrave celles portant le

label GPL

Ils sont de trois grandes cateacutegories

Les applications bureaux (Desktop)

Les consoles de commande en ligne Les interfaces orienteacutees Web

Outils drsquoeacutelaboration de code Python (IDE)

27

Les environnements de deacuteveloppement inteacutegreacutes de code Python sont nombreux des solutions proprieacutetaires agrave celles portant le

label GPL Ils sont de trois grandes cateacutegories

Les applications bureaux (Desktop)

Les consoles de commande en ligne

Les interfaces orienteacutees Web

Outils drsquoeacutelaboration de code Python (IDE)

28

Les environnements de deacuteveloppement inteacutegreacutes de code Python sont nombreux des solutions proprieacutetaires agrave celles portant le

label GPL Ils sont de trois grandes cateacutegories

Les applications bureaux (Desktop)

Les consoles de commande en ligne

Les interfaces orienteacutees Web

Outils drsquoeacutelaboration de code Python (IDE)

29

30

Nom de Symbole Les noms de variables en Python peuvent contenir des caractegraveres alphanumeacuteriques a-z A-Z 0-

9 et certains caractegraveres speacuteciaux tel que _ Les noms de variables normales doivent commencer par une lettre

Par convention les noms de variables commencent par une lettre minuscule et les noms de classe commencent par

une lettre majuscule En outre il y a un certain nombre de mots-cleacutes Python qui ne peuvent pas ecirctre utiliseacutes comme

noms de variables Ces mots-cleacutes sont les suivants

and as assert break class continue def del elif else except exec finally for from global if import in

is lambda not or pass print raise return try while with yield

Affectation assignment de variable

x = 10

my_variable = 122

type(x) fonction TYPE retourne le type de la variable entre parenthegravese

builtinsfloat

Verification de type x = 10

veacuterifier si la variable est reacuteelle

type(x) is float

isinstance(x float)

True

z = complex(x)

print(z type(z))

(1+0j) ltclass complexlsquogt

Base de repreacutesentation des donneacutees

31

Operateurs et comparaisons Opeacuterateurs arithmeacutetiques + - (division entiegravere) puissance

30 20

10

NB operators puissance en python nrsquoest pas ^ mais

2 2

4

Les opeacuterateurs de comparaison sont gtltgt=lt===

objects identiques

x1 = x2 = [12]

x1 is x2

True

2 gt= 2 2 lt= 2

(True True)

Chaines de caractegraveres les liste et les dictionnaires s = Hello world

type(s)

builtinsstr

length of the string the number of characters

len(s)

11

replace a substring in a string with somethign else

s2 = sreplace(world test)

print(s2)

Hello test

s[0]

H

Base de repreacutesentation des donneacutees

32

Chaines de caractegraveres les liste et les dictionnaires s = Hello worldldquo

replace a substring in a string with somethign else

s2 = sreplace(world test)

Hello test

print(s2)

s[05]

Hellolsquo

s[05]

Hellolsquo

s[]

Hello worldlsquo

print(value = f 10) Formatage C des variables

value = 1000000

s2 = value1 = 2f value2 = d (31415 15)

print(s2)

value1 = 314 value2 = 1

Listes l = [1234]

print(type(l))

print(l)

ltclass listgt

[1 2 3 4]

l = [1 a 10 1-1j] peuvent ecirctre heacuteteacuterogegravene

print(l)

[1 a 10 (1-1j)]

Base de repreacutesentation des donneacutees

33

Listes start = 10

stop = 30

step = 2

range(start stop step)

range(10 30 2)

list(range(start stop step))

[10 12 14 16 18 20 22 24 26 28]

s2 = list(s)

S2

[H e l l o w o r l d]

Tri de la liste

s2sort()

print(s2)

[ H d e l l l o o r w]

l = []

lappend(A)

lappend(d)

lappend(d)

print(l)

[A d d]

Tuples Ce sont des variables comme les listes mais pas alteacuterables

point = (10 20)

print(point type(point))

(10 20) ltclass tuplegt

Base de repreacutesentation des donneacutees

34

Tuples x y = point

print(x = x)

print(y = y)

x = 10

y = 20

Dictionaries params = parameter1 10 parameter2 20 parameter3 30

print(type(params))

print(params)

ltclass dictgt

fparameter2 20 parameter3 30 parameter1 10

params[parameter1] = A

params[parameter2] = B

Ajouter une nouvelle entreacutee

params[parameter4] = D

print(paramegravetre = + str(params[parameter1]))

print(paramegravetre = + str(params[parameter2]))

print(paramegravetre = + str(params[parameter3]))

print(paramegravetre = + str(params[parameter4]))

paramegravetre = A

paramegravetre = B

paramegravetre = 30

paramegravetre = D

Base de repreacutesentation des donneacutees

35

36

Affectation amp Controcircle conditionnel de flue statement1 = False Crsquoest une affectation

statement2 = False

if statement1 Test valideacute condition (statement1) est VRAIE

print(statement1 is True)

elif statement2 Exeacutecuteacutee condition (statement2) est VRAIE

print(statement2 is True)

else Exeacutecuteacutee sinon

print(statement1 and statement2 are False)

Boucles for x in [123] [123] peut ecirctre deacutesigneacute par range(3) avec print(x+1)

print(x)

1

2

3

for word in [scientific computing with python]

print(word) condition de reacutepeacutetition deacutependante du contenu de la liste

scientific

computing

with

python

l1 = [x2 for x in range(05)] agrave remarquer la compaciteacute du Python

print(l1)

[0 1 4 9 16]

Base de repreacutesentation des donneacutees

37

Boucles var = 0

while var = 1

print jlsquoeacutecris mon programme ici

choix = raw_input(voulez vous recommencer ( on ) )

if choix == n

var = 1

else

lsquovous allez ecirctre renvoyeacute au deacutebut du programmersquo

X = y 2

while x gt 1

If y x == 0

print y lsquo est facteur de rsquo x

break

x -= 1

else

print y lsquo est premierlsquo

Lrsquoutilisation de zip et map peut srsquoaveacutereacutee encore plus efficace

l1 = [1 2 3]

l2 = [4 5 6]

for (x y) in zip(l1 l2)

print x y -- x + y

1 4 -- 5

2 5 -- 7

3 6 -- 9

Base de repreacutesentation des donneacutees

38

s=0123456789

print map(int s)

[0 1 2 3 4 5 6 7 8 9]

Utilisation et

puissance de MAP

Utilisation de ZIP

Intervales range(start stop step)

range(5 10)

5 jusqursquoagrave 10 (exclue) avec un pas de 1

range(0 10 3)

0 3 6 9

range(-10 -100 -30)

-10 -40 -70

Test conditionnel binaire x = 5

y = 10

if x gt y

print(x est grand que y)

else

print(ldquox nrsquoest pas grand que yrdquo)

Dans Python on peut compliquer les chose

x = 5

y = 10

Z = 12

if z gt x gt y

print(lsquoy est petit que x et x est petit que z)

Base de repreacutesentation des donneacutees

39

Boucle avec test conditionnel binaire break continue et else dans une boucle for

for n in range(2 10)

for x in range(2 n)

if n x == 0

print(n lsquoest eacutegal agrave x nx)

break

else

print(n lsquoest premier)

Utilisation de lrsquoinstruction continue

for num in range(2 10)

if num 2 == 0 le symbole deacutesigne lrsquoopeacuteration RESTE de la division

print(ldquoNombre paire trouveacute num)

continue

print(ldquoNombre non premier num)

Base de repreacutesentation des donneacutees

40

Deacutefinition de fonction (proceacutedure avec retour) def fib(n) Ecrire la suite de Fibonacci jusqursquoagrave n

a b = 0 1

while a lt n

print(a end= )

a b = b a+b

print()

fib(2000)

0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597

f = fib deacutesignation par reacutefeacuterence f agrave la fonction fib

f(100)

0 1 1 2 3 5 8 13 21 34 55 89

autre type de deacutefinition de fonction

def ask_ok(prompt retries=4 complaint=Oui or Non srsquoil vou plait )

while True

ok = input(prompt)

if ok in (lsquoo lsquooui lsquoOui)

return True

if ok in (lsquon no non lsquoNon)

return False

retries = retries - 1

if retries lt 0

raise OSError(lsquoUtilisateur non coopeacuteratif)

print(complaint)

Base de repreacutesentation des donneacutees

41

Lrsquoinstruction lambda def make_incrementeur(n)

return lambda x x + n

f = make_incrementeur(42)

f(0)

42

f(1)

43

un autre cas drsquoutilisation

pairs = [(1 one) (2 two) (3 three) (4 four)]

pairssort(key=lambda pair pair[1])

pairs

[(4 four) (1 one) (3 three) (2 two)]

Les annotations dans une fonction Les annotations deacutefinissent des messages de preacutesentation

def f(chiken str eggs str = eggs) -gt str remarquer que la fonction est de type STR

print(Annotations f__annotations__)

print(Arguments chiken eggs)

return chiken + and + eggs

f(spam)

Annotations chiken ltclass strgt return ltclass strgt eggs ltclass strgt

Arguments spam eggs

spam and eggslsquo

Base de repreacutesentation des donneacutees

42

Les deacutecorateurs python Notre deacutecorateur

def decorate(func)

print uJe suis dans la fonction decorate et je deacutecore s func__name__

print uExeacutecution de la fonction s func__name__

return func

Fonction cible utiliseacutee avec DECORATOR

decorate

def foobar(args)

print join(args)

Exemple drsquoappel de la fonction

foobar(A B C D)

Je suis dans la fonction decorate et je deacutecore foobar

Exeacutecution de la fonction foobar

A B C D

Il est posible drsquoattribuer plusieurs deacutecorateurs agrave une seule fonction

decorateur1

decorateur2

def ma_fonction()

instructions

Base de repreacutesentation des donneacutees

43

Manipulation des listes a = [6625 333 333 1 12345]

print(acount(333) acount(6625) acount(x))

2 1 0

ainsert(2 -1)

aappend(333)

a

[6625 333 -1 333 1 12345 333]

aindex(333)

1

aremove(333)

a

[6625 -1 333 1 12345 333]

areverse()

a

[333 12345 1 333 -1 6625]

asort()

a

[-1 1 6625 333 333 12345]

apop()

12345

a

[-1 1 6625 333 333]

Base de repreacutesentation des donneacutees

44

Puissance du langage Python Lrsquoensemble des lignes suiantes peut ecirctre compacteacute par ce qui suit

combs = []

for x in [123]

for y in [314]

if x = y

combsappend((x y))

Combs

Ou bien

[(x y) for x in [123] for y in [314] if x = y]

Donne le mecircme reacutesultat

[(1 3) (1 4) (2 3) (2 1) (2 4) (3 1) (3 4)]

Calcul de la valeur de PI arrondie

from math import pi

[str(round(pi i)) for i in range(1 6)]

[31 314 3142 31416 314159]

Geacuteneacuterateur avec utilisation de YIELD

def generateur()

yield a

yield b

yield cldquo

i=generateur()

for v in i

print v

a

b

c

Base de repreacutesentation des donneacutees

45

Les expressions reacuteguliegraveres en python Les expressions reacuteguliegravere sont utiliseacutees pour veacuterifier la conformiteacute des expressions de

chaines de caractegraveres par rapport agrave un motif Les symboles suivants sont utiliseacutes

^ $ + [ ] | ( )

Le point correspond agrave nimporte quel caractegravere

^ Indique un commencement de segment mais signifie aussi contraire de

$ Fin de segment

[xy] Une liste de segment possible Exemple [abc] eacutequivaut agrave a b ou c

(x|y) Indique un choix multiple type (ps|ump) eacutequivaut agrave ps OU UMP

d le segment est composeacute uniquement de chiffre ce qui eacutequivaut agrave [0-9]

D le segment nest pas composeacute de chiffre ce qui eacutequivaut agrave [^0-9]

s Un espace ce qui eacutequivaut agrave [ tnrfv]

S Pas despace ce qui eacutequivaut agrave [^ tnrfv]

w Preacutesence alphanumeacuterique ce qui eacutequivaut agrave [a-zA-Z0-9_]

W Pas de preacutesence alphanumeacuterique [^a-zA-Z0-9_]

Est un caractegravere deacutechappement T2 Le T soit reacutepeacuteteacute 2 fois

TA19 La seacutequence TA doit ecirctre preacutesente de 1 agrave 9 fois

TAM10 La seacutequence TAM nrsquoexiste pas ou reacutepeacuteteacutee 10 fois

LI1 La seacutequence LI doit ecirctre reacutepeacuteteacutee au moins une fois

Base de repreacutesentation des donneacutees

46

Les expressions reacuteguliegraveres en python Utilisation des expressions reacuteguliegravere

import re

print rematch(rGR()S GRIS)

lt_sreSRE_Match object at 0x02019DE0gt

Une utilisation freacutequente consiste en la validation des valeurs des emails saisis

Utilisation des expressions reacuteguliegravere

import re

mails = [lsquomtamaligmailcomrsquorsquoutmbuniv-bechardzrsquo lsquo8freefrrsquo lsquouniv-bechardzrsquo lsquotamalicdtarsquo]

regex = recompile(rrsquo^[a-z0-9_-]+[a-z0-9_-]+[(com|fr|dz)]+rsquo

for mail in mails

if regexmatch(mail) is not None

print Ce mail s est valide mail

else

print Erreur ce mail s est non valide mail

Ce mail mtamaligmailcom est valide

Ce mail utmbuniv-bechardz est valide

Ce mail 8freefr est valide

Erreur ce mail univ-bechardz est non valide

Erreur ce mail tamalicdta est non valide

Base de repreacutesentation des donneacutees

47

Les fichiers Creacuteer lire et eacutecrire dans un fichier en python Utilisation des expressions reacuteguliegravere

fichier = open(donneestxt r)

print fichier

ltopen file lsquodonneestxt mode r at 0x7ff6cf3fe4b0gt

Le descripteur permet de renseigner la machine sur la maniegravere avec laquelle le fichier est utiliseacute

r pour ouverture en mode READ

w pour ouverture en mode WRITE chaque fois le contenu du fichier est eacutecraseacute sinon python le creacutee

a pour ajout lsquoAPPENDrsquo Si le fichier nexiste pas python le creacutee

b Ouverture en mode Binaire

t Ouverture en mode Texte

x creacutee un nouveau fichier et louvrir pour eacutecriture

proceacutedure geacuteneacuterale pour lrsquoutilisation drsquoun fichier

fichier = open(lsquodonneestxtrsquo r)

print fichierread()

fichierclose()

Lrsquoinstruction WITH peut ecirctre utiliseacutee sans besoin de la fonction CLOSE

with open(datatxt r) as fichier

print fichierread()

Base de repreacutesentation des donneacutees

48

49

Le langage Python est un langage script interpreacuteteacute Le programme portant lrsquoune des extension py pyw ou pwc est

structureacute selon le canevas suivant

Les codifications

usrbinpython27

--codingencodage -

Les imports des librairies

Les instructions

Le langage Python passe pour ecirctre exeacutecuteacute sur deux eacutetapes la premiegravere UNE PRECOMPILATION geacuteneacuteration du code

machine et finalement un eacutecriture en code machine exeacutecutable (selon la machine)

Lrsquoenvironnement drsquoexeacutecution des scripts eacutecrits en Python regroupe les avantages des TRADUCTEURS (travaille en ligne par

ligne) et les COMPILATEURS (puissance de la structure algorithmique)

La bibliothegraveque cx_Freeze sert agrave transformer les fichiers scripts Pyhon py en exeacutecutable exe

Structures algorithmique du python

50

51

Matrices amp Systegravemes lineacuteaires

52

53

54

55

56

57

Le calcul scientifique

Reacutefeacuterences L-V Bertallanfy lsquoGeneral System Theoryrsquo Edition MASSON 1972

58

Page 6: Chap XIII : calcul scientifique avec python

Introduction (Logiciel Open Source vs Proprieacutetaire) La PSF (Python Software Foundation) creacuteeacutee en 2001 appartient agrave Open Source Initiative et agrave la

FSF (Free Software Foundation)

Un logiciel proprieacutetaire appeleacute parfois de maniegravere militante logiciel privateur ou encore logiciel

non libre est un logiciel dont la duplication la modification ou lusage est limiteacute

La deacutesignation Open Source ou lsquoCode Source Ouvertrsquo sapplique aux logiciels dont la licence

respecte des critegraveres preacuteciseacutement eacutetablis par lOpen Source Initiative cest-agrave-dire les possibiliteacutes

de libre redistribution daccegraves au code source et de creacuteation de travaux deacuteriveacutes Mis agrave la

disposition du grand public ce code source est geacuteneacuteralement le reacutesultat dune collaboration

entre deacuteveloppeurs

6

Elaboration drsquoun environnement logiciel Python

Installation Beaucoup de meacutethodologies sont valable pour deacutevelopper un environnement compatible pour une programmation avec le

langage Python (Celui-ci est teacuteleacutechargeable sous deux version 2X ou 3X version de base qui ne sont pas forcement

totalement compatible) Le langage Python est utilisable sous diffeacuterent systegraveme drsquoexploitation (Win LinuxUNIX ou Mac OS)

Une autre alternative encore plus interessante que la premiegravere

est drsquoinstaller le logiciel ANACONDA

Avec lrsquoun des eacutediteurs de scripts

7

Notre choix

Environnement

Notre choix

IDE

Elaboration drsquoun environnement logiciel Python Installation La plateforme ANACONDA installe tout le neacutecessaire (lrsquoenvironnement PYTHON 3X2X) et donnera accegraves aux possibiliteacutes

drsquoeacutetendre lrsquoinstallation aux modules PYTHON neacutecessaires pour le deacuteveloppement de calcul scientifique de lrsquoingeacutenieur ou du

chercheur

Les diffeacuterents modules (librairies) neacutecessaire sont

NUMPY Analyse numeacuterique amp Matrices

SCIPY Extension pour calcul scientifique

MATPLOTLIB Dessin de courbe

SYMPY calcul symbolique

NETWORKX manipulation et gestion des graphes

PLOTLY Librairie en ligne pour dessin de courbes

EVENTLET

TKINTER Librairie pour manipulation drsquointerface graphique

IPYTHON Bibliothegraveque pour calcul scientifique

CYTHON Interface pour environnement CC++

JPYTHON Interface pour environnement JAVA

JUPYTER Editeur orienteacute navigateur

DJANGO-CMS System de gestion de contenus

WIDGY CMS utilisant le Framework Django

hellipencore des milliers de modules

8

Notre choix

Environnement

Notre choix

IDE

Elaboration drsquoun environnement logiciel Python Installation Assistant de lrsquoinstallation de ANACONDA et de PYCHARM

La plateforme ANACONDA = Python Modules LrsquoIDE de programmation PYTHON PyCharm 9

Notre choix

Environnement

Notre choix

De lrsquoIDE

Elaboration drsquoun environnement logiciel Python Personnalisation Sous PyCharm en mode TEREMINAL nous ajoutons

les modules neacutecessaires agrave la plateforme ANACONDA Dans la fenecirctre TERMINAL nous utiliserons CONDA

HPycharmProjectsessaigtconda install mpi4py

Using Anaconda Cloud api site

httpsapianacondaorg

Fetching package metadata

Solving package specifications

Package plan for installation in environment

hAnaconda325

The following packages will be downloaded

package | build

mpi4py-200 | py35_0 264 KB

The following NEW packages will be INSTALLED

mpi4py 200-py35_0 (copy)

Proceed ([y]n) Y

Fetching packages

mpi4py-200-p 100 || Time 00001 16926 kBs

Extracting packages hellip

[COMPLETE]|| 100

Linking packages

[mpi4py]| | 0

[COMPLETE]|| 100

10 Fenecirctre ABOUT

de PyCharm

Ideacutee du jour

Commande

installation modules

Elaboration drsquoun environnement logiciel Python Utilisation Sous PyCharm en mode TEREMINAL nous ajoutons les

modules neacutecessaires agrave la plateforme ANACONDA Caracteacuteristiques du langage script Python

Avantages

bull Tregraves riches librairies pour le calcul scientifique

bull Langage bien structureacute permettant drsquoeacutecrire des

programmes lisibles lsquowe code what we thinkrsquo

bull Drsquoautres librairies hors le cadre du calcul scientifique

(Gestion des services Web Accegraves aux ports seacuterie etc)

bull Graticiel lsquoOpen Sourcersquo derriegravere une large communauteacute

bull Compaciteacute du programme deacuteveloppeacute

bull Beaucoup drsquoalternatives pour lrsquoeacutedition (IDE)

Inconveacutenients

bull Environnement de deacuteveloppement moins

bull Pas tous les algorithmes qui peuvent ecirctre trouveacutes dans le

logiciel

Python peut ecirctre utiliser sous deux modes selon

lrsquointeractiviteacute escompteacutee

1 Commande en ligne

2 Exeacutecution de fichier script py 11 Fenecirctre ABOUT

de PyCharm

Elaboration drsquoun environnement logiciel Python Utilisation Sous PyCharm

Caracteacuteristiques du langage script Python

Python est un langage script informatique geacuteneacuterique et

moderne

bull Langage Python integravegre tous les types de donneacutees

(chaicircne reacuteel int) les controcircles des collections de

donneacutees (listes dictionnaires) et des modegraveles de flux

etc

bull La bibliothegraveque standard integravegre plusieurs Modules

bull Un grand nombre de modules speacutecialiseacutes ou des

applications sont eacutecrites en Python protocoles web

framework web etc Ainsi que le calcul scientifique

- Outils de deacuteveloppement (test automatique geacuteneacuteration de

documentation)

- et encore plushellip

Python peut ecirctre utiliser sous deux modes selon

lrsquointeractiviteacute escompteacutee

1 Commande en ligne

2 Exeacutecution de fichier script py 12

Mode console

Python

Mode

programme (py)

Elaboration drsquoun environnement logiciel Python Utilisation Sous Jupyter Interface WEB pour Python

Cette interface Web est facilement mise en œuvre par son

installation

conda install jupyter (si Anaconda est installeacute)

Ou

pip install jupyter

Le lancement de lrsquointerface est fait en invoquant

Jupiter notebook

Ouvrir le navigateur et entrer lrsquoadresse http1270018888

Pour utiliser un autre PORT autre que 8888

On note http127001Nouveau_Port

Lrsquointerface JUPITER est intuitive et facile agrave utiliser ses

fonctionnaliteacutes sont bull Deacuteploiement sous protocole Internet drsquoaptitude de calcul

Python

bull Toute les possibiliteacutes de gestion des documents lsquoNotebookrsquo

sont offertes

bull Possibiliteacutes drsquoeacutedition non limiteacutees (LaTeX HTML Code hellip)

bull Exeacutecution immeacutediate

bull Compatibiliteacute avec la plupart des langages et scripts de

programmation (CC++ Java JavaScript Julia Python R

Octave hellip)

bull Offre accessibiliteacute agrave Jupyter Drive via Google Drive

bull Options de Reporting avanceacutees (HTML LaTeX PDF)

13

Exemple de

code avec son

exeacutecution

Menu et barre

drsquooutils

Elaboration drsquoun environnement logiciel Python Utilisation Sous Jupyter Interface WEB pour Python

Les notebooks sont accessibles agrave partir de PyCharm Les notebooks sont des solutions de collaboration de preacutefeacuterences

ils integravegrent toute les fonctionnaliteacutes exigeacutees par un chercheur

dans le domaine des sciences humaines ou technologiques

Organisation des documents leur ouverture eacutedition ou mise agrave

jours se fait dans le mecircme endroit sans aucune deacutependance par

rapport agrave la machine puisque les notebooks sont accessible en

ligne (Serveur Ordinateur de bureau ou Peacuteripheacuterique mobile)

Les possibiliteacutes sont eacutetendues ainsi qursquoune documentation

abondante

14

Graphique

3D

Exemple de Code

Python

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse des donneacutees (Panda)

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

15

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse des donneacutees (Panda)

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

import numpy as np

systeme = nparray([[12][3-4]])

valeur=nparray([[3][1]])

sol=nplinalgsolve(systemevaleur)

print(x=sol[00] et y=sol[10])

x= 14 et y= 08

Reacutesolution de systegraveme lineacuteaire AX=b gtgtgt import numpy as np

gtgtgt from scipy import linalg

gtgtgt A = nparray([[1 2] [3 4]])

gtgtgt A

array([[1 2][3 4]])

gtgtgt b = nparray([[5] [6]])

gtgtgt b

array([[5][6]])

gtgtgt linalginv(A)dot(b) slow

array([[-4 ][ 45]])

gtgtgt Adot(linalginv(A)dot(b)) - b Veacuterification array([[888178420e-16][266453526e-15]])

gtgtgt nplinalgsolve(A b) fast

array([[-4 ][ 45]])

gtgtgt Adot(nplinalgsolve(A b)) - b Veacuterification array([[ 0][ 0]])

Importation de la

librairie Numpy

16

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse des donneacutees (Panda)

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

17

import numpy as np

from scipy import signal misc

import matplotlibpyplot as plt

image = miscface(gray=True)astype(npfloat32)

derfilt = nparray([10 -2 10] dtype=npfloat32)

ck = signalcspline2d(image 80)

deriv = (signalsepfir2d(ck derfilt [1]) +signalsepfir2d(ck [1] derfilt))

laplacian = nparray([[010] [1-41] [010]] dtype=npfloat32)

deriv2 = signalconvolve2d(cklaplacianmode=lsquosameboundary=symm)

pltfigure()

pltimshow(image)

pltgray()

plttitle(lsquoImage original)

pltshow()

pltfigure()

pltimshow(deriv)

pltgray()

plttitle(lsquosortie avec filtre spline)

pltshow()

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse des donneacutees (Panda)

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

from matplotlibpyplot import figure hold plot legend draw

from numpy import linspace

import scipystats as stats

from numpyrandom import randn

x = randn(100)

fig = figure()

ax = figadd_subplot(111)

axhist(x bins=30 label=rsquoEmpiricalrsquo)

xlim = axget_xlim()

ylim = axget_ylim()

pdfx = linspace(xlim[0] xlim[1] 200)

pdfy = statsnormpdf(pdfx)

pdfy = pdfy pdfymax() ylim[1]

hold(True)

plot(pdfx pdfy rsquor-rsquo label=rsquoPDFrsquo)

axset_ylim((ylim[0] 12 ylim[1]))

legend()

hold(False)

draw()

18

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse des donneacutees (Panda QtGraph)

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation 19

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Domaines drsquoutilisation

matplotlib inline

from pylab import plot show title xlabel ylabel subplot savefig

from scipy import fft arange ifft

from numpy import sin linspace pi

from scipyiowavfile import readwrite

def plotSpectru(yFs)

n = len(y) lungime semnal

k = arange(n)

T = nFs

frq = kT two sides frequency range

frq = frq[range(n2)] one side frequency range

Y = fft(y)n fft computing and normalization

Y = Y[range(n2)]

plot(frqabs(Y)r) plotting the spectrum

xlabel(Freq (Hz))

ylabel(|Y(freq)|)

Fs = 44100 sampling rate

ratedata=read(fatihawav)

y=data

lungime=len(y)

timp=len(y)44100

t=linspace(0timplen(y))

subplot(211)

plot(ty)

xlabel(Time)

ylabel(Amplitude)

subplot(212)

plotSpectru(yFs)

show()

20

Lecture de la

sourah

Code du traitement

audio

Spectre Amp|Freacuteq

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele (MPI Python)

Theacuteorie des graphes (Networkx)

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

21 Exemple

de graphe

Fenecirctre Aperccedilu

du bloc-note

Importation de la

librairie NetworkX

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

import RPiGPIO as GPIO

GPIOsetmode(GPIOBCM) set board mode to Broadcom

GPIOsetup(17 GPIOOUT) set up pin 17

GPIOsetup(18 GPIOOUT) set up pin 18

GPIOoutput(17 1) turn on pin 17

GPIOoutput(18 1) turn on pin 18

Importation

librairie GPIO

Module

Galileo Gen 2

Module

RaspBerry PI 3

22

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D (Python CAD FreeCAD)

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

23

from OCCSTEPControl import STEPControl_Reader

from OCCIFSelect import IFSelect_RetDone IFSelect_ItemsByEntity

from OCCDisplaySimpleGui import init_display

step_reader = STEPControl_Reader()

status = step_readerReadFile(modelswind_turbinestp)

if status == IFSelect_RetDone check status

failsonly = False

step_readerPrintCheckLoad(failsonly IFSelect_ItemsByEntity)

step_readerPrintCheckTransfer(failsonly IFSelect_ItemsByEntity)

ok = step_readerTransferRoot(1)

_nbs = step_readerNbShapes()

aResShape = step_readerShape(1)

else

print(Error cant read file)

sysexit(0)

display start_display add_menu add_function_to_menu = init_display()

displayDisplayShape(aResShape update=True)

start_display()

Importation

librairie OCC

Maillage Dauphin

Rendu du macirct drsquoun

aeacuterogeacuteneacuterateur

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D (Python CAD FreeCAD)

Bioinformatique et manipulation du geacutenome

POO avec Python (Programmation

Orienteacutee Objet) Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

class Rocket()

Rocket simule une roquette pour un jeu

ou une simulation de physique

def __init__(self)

Each rocket has an (xy) position

selfx = 0

selfy = 0

def move_up(self)

Increacutementation de la position y de la roquette

selfy += 1

Deacutefinir une ensemble de 5 roquettes les stocker dans une liste

my_rockets = []

for x in range(05)

new_rocket = Rocket()

my_rocketsappend(new_rocket)

A remarquer que chaque roquette est un objet agrave part entiegravere

for rocket in my_rockets

print(rocket)

Deacutefinition drsquoune

nouvelle Classe

Instantiation

Meacutethode Constructeur

__init__

24

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D (Python CAD FreeCAD)

Bioinformatique et manipulation

du geacutenome Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

25

from Bio import SeqIO

for seq_record in SeqIOparse(ls_orchidgbk genbank)

print(seq_recordid)

print(repr(seq_recordseq))

print(len(seq_record))

Z785331

Seq(CGTAACAAGGTTTCCGTAGGTGAACCTGCGGAAGGATCATTGATGAGACCGTGGCGC

IUPACAmbiguousDNA())

740

Z784391

Seq(CATTGTTGAGATCACATAATAATTGATCGAGTTAATCTGGAGGATCTGTTTACTGCC

IUPACAmbiguousDNA())

592

Sinon dans une Terminal Python

gtgtgt from BioSeq import Seq

gtgtgt from BioAlphabet import generic_dna

gtgtgt gene = Seq(GTGAAAAAGATGCAATCTATCGTACTCGCACTTTCCCTGGTTCTGGTCGCTCCCATGGCA +

GCACAGGCTGCGGAAATTACGTTAGTCCCGTCAGTAAAATTACAGATAGGCGATCGTGAT +

AATCGTGGCTATTACTGGGATGGAGGTCACTGGCGCGACCACGGCTGGTGGAAACAACAT +

TATGAATGGCGAGGCAATCGCTGGCACCTACACGGACCGCCGCCACCGCCGCGCCACCAT +

AAGAAAGCTCCTCATGATCATCACGGCGGTCATGGTCCAGGCAAACATCACCGCTAA

generic_dna)

gtgtgt genetranslate(table=Bacterial)

Seq(VKKMQSIVLALSLVLVAPMAAQAAEITLVPSVKLQIGDRDNRGYYWDGGHWRDHHR

HasStopCodon(ExtendedIUPACProtein() )

gtgtgt genetranslate(table=Bacterial to_stop=True)

Seq(VKKMQSIVLALSLVLVAPMAAQAAEITLVPSVKLQIGDRDNRGYYWDGGHWRDHHHR

ExtendedIUPACProtein())

Logo de

BioPython Seacutequence drsquoADN

Importation

librairie BIO

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D (Python CAD FreeCAD)

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

26

Installer agrave partir de PyPI

$ pip install mezzanine

Instantier un projet

$ mezzanine-project monproject

$ cd monproject

Instantier une Base de donneacutees

$ python managepy createdb

Lancer le serveur Web

$ python managepy runserver

Installation en mode

commande

URL du site instantieacute

Version Mobile Menu

Version Administration

Sites Web fait avec

Mezzanine

Version Normal

Les environnements de deacuteveloppement inteacutegreacutes de code Python sont nombreux des solutions proprieacutetaires agrave celles portant le

label GPL

Ils sont de trois grandes cateacutegories

Les applications bureaux (Desktop)

Les consoles de commande en ligne Les interfaces orienteacutees Web

Outils drsquoeacutelaboration de code Python (IDE)

27

Les environnements de deacuteveloppement inteacutegreacutes de code Python sont nombreux des solutions proprieacutetaires agrave celles portant le

label GPL Ils sont de trois grandes cateacutegories

Les applications bureaux (Desktop)

Les consoles de commande en ligne

Les interfaces orienteacutees Web

Outils drsquoeacutelaboration de code Python (IDE)

28

Les environnements de deacuteveloppement inteacutegreacutes de code Python sont nombreux des solutions proprieacutetaires agrave celles portant le

label GPL Ils sont de trois grandes cateacutegories

Les applications bureaux (Desktop)

Les consoles de commande en ligne

Les interfaces orienteacutees Web

Outils drsquoeacutelaboration de code Python (IDE)

29

30

Nom de Symbole Les noms de variables en Python peuvent contenir des caractegraveres alphanumeacuteriques a-z A-Z 0-

9 et certains caractegraveres speacuteciaux tel que _ Les noms de variables normales doivent commencer par une lettre

Par convention les noms de variables commencent par une lettre minuscule et les noms de classe commencent par

une lettre majuscule En outre il y a un certain nombre de mots-cleacutes Python qui ne peuvent pas ecirctre utiliseacutes comme

noms de variables Ces mots-cleacutes sont les suivants

and as assert break class continue def del elif else except exec finally for from global if import in

is lambda not or pass print raise return try while with yield

Affectation assignment de variable

x = 10

my_variable = 122

type(x) fonction TYPE retourne le type de la variable entre parenthegravese

builtinsfloat

Verification de type x = 10

veacuterifier si la variable est reacuteelle

type(x) is float

isinstance(x float)

True

z = complex(x)

print(z type(z))

(1+0j) ltclass complexlsquogt

Base de repreacutesentation des donneacutees

31

Operateurs et comparaisons Opeacuterateurs arithmeacutetiques + - (division entiegravere) puissance

30 20

10

NB operators puissance en python nrsquoest pas ^ mais

2 2

4

Les opeacuterateurs de comparaison sont gtltgt=lt===

objects identiques

x1 = x2 = [12]

x1 is x2

True

2 gt= 2 2 lt= 2

(True True)

Chaines de caractegraveres les liste et les dictionnaires s = Hello world

type(s)

builtinsstr

length of the string the number of characters

len(s)

11

replace a substring in a string with somethign else

s2 = sreplace(world test)

print(s2)

Hello test

s[0]

H

Base de repreacutesentation des donneacutees

32

Chaines de caractegraveres les liste et les dictionnaires s = Hello worldldquo

replace a substring in a string with somethign else

s2 = sreplace(world test)

Hello test

print(s2)

s[05]

Hellolsquo

s[05]

Hellolsquo

s[]

Hello worldlsquo

print(value = f 10) Formatage C des variables

value = 1000000

s2 = value1 = 2f value2 = d (31415 15)

print(s2)

value1 = 314 value2 = 1

Listes l = [1234]

print(type(l))

print(l)

ltclass listgt

[1 2 3 4]

l = [1 a 10 1-1j] peuvent ecirctre heacuteteacuterogegravene

print(l)

[1 a 10 (1-1j)]

Base de repreacutesentation des donneacutees

33

Listes start = 10

stop = 30

step = 2

range(start stop step)

range(10 30 2)

list(range(start stop step))

[10 12 14 16 18 20 22 24 26 28]

s2 = list(s)

S2

[H e l l o w o r l d]

Tri de la liste

s2sort()

print(s2)

[ H d e l l l o o r w]

l = []

lappend(A)

lappend(d)

lappend(d)

print(l)

[A d d]

Tuples Ce sont des variables comme les listes mais pas alteacuterables

point = (10 20)

print(point type(point))

(10 20) ltclass tuplegt

Base de repreacutesentation des donneacutees

34

Tuples x y = point

print(x = x)

print(y = y)

x = 10

y = 20

Dictionaries params = parameter1 10 parameter2 20 parameter3 30

print(type(params))

print(params)

ltclass dictgt

fparameter2 20 parameter3 30 parameter1 10

params[parameter1] = A

params[parameter2] = B

Ajouter une nouvelle entreacutee

params[parameter4] = D

print(paramegravetre = + str(params[parameter1]))

print(paramegravetre = + str(params[parameter2]))

print(paramegravetre = + str(params[parameter3]))

print(paramegravetre = + str(params[parameter4]))

paramegravetre = A

paramegravetre = B

paramegravetre = 30

paramegravetre = D

Base de repreacutesentation des donneacutees

35

36

Affectation amp Controcircle conditionnel de flue statement1 = False Crsquoest une affectation

statement2 = False

if statement1 Test valideacute condition (statement1) est VRAIE

print(statement1 is True)

elif statement2 Exeacutecuteacutee condition (statement2) est VRAIE

print(statement2 is True)

else Exeacutecuteacutee sinon

print(statement1 and statement2 are False)

Boucles for x in [123] [123] peut ecirctre deacutesigneacute par range(3) avec print(x+1)

print(x)

1

2

3

for word in [scientific computing with python]

print(word) condition de reacutepeacutetition deacutependante du contenu de la liste

scientific

computing

with

python

l1 = [x2 for x in range(05)] agrave remarquer la compaciteacute du Python

print(l1)

[0 1 4 9 16]

Base de repreacutesentation des donneacutees

37

Boucles var = 0

while var = 1

print jlsquoeacutecris mon programme ici

choix = raw_input(voulez vous recommencer ( on ) )

if choix == n

var = 1

else

lsquovous allez ecirctre renvoyeacute au deacutebut du programmersquo

X = y 2

while x gt 1

If y x == 0

print y lsquo est facteur de rsquo x

break

x -= 1

else

print y lsquo est premierlsquo

Lrsquoutilisation de zip et map peut srsquoaveacutereacutee encore plus efficace

l1 = [1 2 3]

l2 = [4 5 6]

for (x y) in zip(l1 l2)

print x y -- x + y

1 4 -- 5

2 5 -- 7

3 6 -- 9

Base de repreacutesentation des donneacutees

38

s=0123456789

print map(int s)

[0 1 2 3 4 5 6 7 8 9]

Utilisation et

puissance de MAP

Utilisation de ZIP

Intervales range(start stop step)

range(5 10)

5 jusqursquoagrave 10 (exclue) avec un pas de 1

range(0 10 3)

0 3 6 9

range(-10 -100 -30)

-10 -40 -70

Test conditionnel binaire x = 5

y = 10

if x gt y

print(x est grand que y)

else

print(ldquox nrsquoest pas grand que yrdquo)

Dans Python on peut compliquer les chose

x = 5

y = 10

Z = 12

if z gt x gt y

print(lsquoy est petit que x et x est petit que z)

Base de repreacutesentation des donneacutees

39

Boucle avec test conditionnel binaire break continue et else dans une boucle for

for n in range(2 10)

for x in range(2 n)

if n x == 0

print(n lsquoest eacutegal agrave x nx)

break

else

print(n lsquoest premier)

Utilisation de lrsquoinstruction continue

for num in range(2 10)

if num 2 == 0 le symbole deacutesigne lrsquoopeacuteration RESTE de la division

print(ldquoNombre paire trouveacute num)

continue

print(ldquoNombre non premier num)

Base de repreacutesentation des donneacutees

40

Deacutefinition de fonction (proceacutedure avec retour) def fib(n) Ecrire la suite de Fibonacci jusqursquoagrave n

a b = 0 1

while a lt n

print(a end= )

a b = b a+b

print()

fib(2000)

0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597

f = fib deacutesignation par reacutefeacuterence f agrave la fonction fib

f(100)

0 1 1 2 3 5 8 13 21 34 55 89

autre type de deacutefinition de fonction

def ask_ok(prompt retries=4 complaint=Oui or Non srsquoil vou plait )

while True

ok = input(prompt)

if ok in (lsquoo lsquooui lsquoOui)

return True

if ok in (lsquon no non lsquoNon)

return False

retries = retries - 1

if retries lt 0

raise OSError(lsquoUtilisateur non coopeacuteratif)

print(complaint)

Base de repreacutesentation des donneacutees

41

Lrsquoinstruction lambda def make_incrementeur(n)

return lambda x x + n

f = make_incrementeur(42)

f(0)

42

f(1)

43

un autre cas drsquoutilisation

pairs = [(1 one) (2 two) (3 three) (4 four)]

pairssort(key=lambda pair pair[1])

pairs

[(4 four) (1 one) (3 three) (2 two)]

Les annotations dans une fonction Les annotations deacutefinissent des messages de preacutesentation

def f(chiken str eggs str = eggs) -gt str remarquer que la fonction est de type STR

print(Annotations f__annotations__)

print(Arguments chiken eggs)

return chiken + and + eggs

f(spam)

Annotations chiken ltclass strgt return ltclass strgt eggs ltclass strgt

Arguments spam eggs

spam and eggslsquo

Base de repreacutesentation des donneacutees

42

Les deacutecorateurs python Notre deacutecorateur

def decorate(func)

print uJe suis dans la fonction decorate et je deacutecore s func__name__

print uExeacutecution de la fonction s func__name__

return func

Fonction cible utiliseacutee avec DECORATOR

decorate

def foobar(args)

print join(args)

Exemple drsquoappel de la fonction

foobar(A B C D)

Je suis dans la fonction decorate et je deacutecore foobar

Exeacutecution de la fonction foobar

A B C D

Il est posible drsquoattribuer plusieurs deacutecorateurs agrave une seule fonction

decorateur1

decorateur2

def ma_fonction()

instructions

Base de repreacutesentation des donneacutees

43

Manipulation des listes a = [6625 333 333 1 12345]

print(acount(333) acount(6625) acount(x))

2 1 0

ainsert(2 -1)

aappend(333)

a

[6625 333 -1 333 1 12345 333]

aindex(333)

1

aremove(333)

a

[6625 -1 333 1 12345 333]

areverse()

a

[333 12345 1 333 -1 6625]

asort()

a

[-1 1 6625 333 333 12345]

apop()

12345

a

[-1 1 6625 333 333]

Base de repreacutesentation des donneacutees

44

Puissance du langage Python Lrsquoensemble des lignes suiantes peut ecirctre compacteacute par ce qui suit

combs = []

for x in [123]

for y in [314]

if x = y

combsappend((x y))

Combs

Ou bien

[(x y) for x in [123] for y in [314] if x = y]

Donne le mecircme reacutesultat

[(1 3) (1 4) (2 3) (2 1) (2 4) (3 1) (3 4)]

Calcul de la valeur de PI arrondie

from math import pi

[str(round(pi i)) for i in range(1 6)]

[31 314 3142 31416 314159]

Geacuteneacuterateur avec utilisation de YIELD

def generateur()

yield a

yield b

yield cldquo

i=generateur()

for v in i

print v

a

b

c

Base de repreacutesentation des donneacutees

45

Les expressions reacuteguliegraveres en python Les expressions reacuteguliegravere sont utiliseacutees pour veacuterifier la conformiteacute des expressions de

chaines de caractegraveres par rapport agrave un motif Les symboles suivants sont utiliseacutes

^ $ + [ ] | ( )

Le point correspond agrave nimporte quel caractegravere

^ Indique un commencement de segment mais signifie aussi contraire de

$ Fin de segment

[xy] Une liste de segment possible Exemple [abc] eacutequivaut agrave a b ou c

(x|y) Indique un choix multiple type (ps|ump) eacutequivaut agrave ps OU UMP

d le segment est composeacute uniquement de chiffre ce qui eacutequivaut agrave [0-9]

D le segment nest pas composeacute de chiffre ce qui eacutequivaut agrave [^0-9]

s Un espace ce qui eacutequivaut agrave [ tnrfv]

S Pas despace ce qui eacutequivaut agrave [^ tnrfv]

w Preacutesence alphanumeacuterique ce qui eacutequivaut agrave [a-zA-Z0-9_]

W Pas de preacutesence alphanumeacuterique [^a-zA-Z0-9_]

Est un caractegravere deacutechappement T2 Le T soit reacutepeacuteteacute 2 fois

TA19 La seacutequence TA doit ecirctre preacutesente de 1 agrave 9 fois

TAM10 La seacutequence TAM nrsquoexiste pas ou reacutepeacuteteacutee 10 fois

LI1 La seacutequence LI doit ecirctre reacutepeacuteteacutee au moins une fois

Base de repreacutesentation des donneacutees

46

Les expressions reacuteguliegraveres en python Utilisation des expressions reacuteguliegravere

import re

print rematch(rGR()S GRIS)

lt_sreSRE_Match object at 0x02019DE0gt

Une utilisation freacutequente consiste en la validation des valeurs des emails saisis

Utilisation des expressions reacuteguliegravere

import re

mails = [lsquomtamaligmailcomrsquorsquoutmbuniv-bechardzrsquo lsquo8freefrrsquo lsquouniv-bechardzrsquo lsquotamalicdtarsquo]

regex = recompile(rrsquo^[a-z0-9_-]+[a-z0-9_-]+[(com|fr|dz)]+rsquo

for mail in mails

if regexmatch(mail) is not None

print Ce mail s est valide mail

else

print Erreur ce mail s est non valide mail

Ce mail mtamaligmailcom est valide

Ce mail utmbuniv-bechardz est valide

Ce mail 8freefr est valide

Erreur ce mail univ-bechardz est non valide

Erreur ce mail tamalicdta est non valide

Base de repreacutesentation des donneacutees

47

Les fichiers Creacuteer lire et eacutecrire dans un fichier en python Utilisation des expressions reacuteguliegravere

fichier = open(donneestxt r)

print fichier

ltopen file lsquodonneestxt mode r at 0x7ff6cf3fe4b0gt

Le descripteur permet de renseigner la machine sur la maniegravere avec laquelle le fichier est utiliseacute

r pour ouverture en mode READ

w pour ouverture en mode WRITE chaque fois le contenu du fichier est eacutecraseacute sinon python le creacutee

a pour ajout lsquoAPPENDrsquo Si le fichier nexiste pas python le creacutee

b Ouverture en mode Binaire

t Ouverture en mode Texte

x creacutee un nouveau fichier et louvrir pour eacutecriture

proceacutedure geacuteneacuterale pour lrsquoutilisation drsquoun fichier

fichier = open(lsquodonneestxtrsquo r)

print fichierread()

fichierclose()

Lrsquoinstruction WITH peut ecirctre utiliseacutee sans besoin de la fonction CLOSE

with open(datatxt r) as fichier

print fichierread()

Base de repreacutesentation des donneacutees

48

49

Le langage Python est un langage script interpreacuteteacute Le programme portant lrsquoune des extension py pyw ou pwc est

structureacute selon le canevas suivant

Les codifications

usrbinpython27

--codingencodage -

Les imports des librairies

Les instructions

Le langage Python passe pour ecirctre exeacutecuteacute sur deux eacutetapes la premiegravere UNE PRECOMPILATION geacuteneacuteration du code

machine et finalement un eacutecriture en code machine exeacutecutable (selon la machine)

Lrsquoenvironnement drsquoexeacutecution des scripts eacutecrits en Python regroupe les avantages des TRADUCTEURS (travaille en ligne par

ligne) et les COMPILATEURS (puissance de la structure algorithmique)

La bibliothegraveque cx_Freeze sert agrave transformer les fichiers scripts Pyhon py en exeacutecutable exe

Structures algorithmique du python

50

51

Matrices amp Systegravemes lineacuteaires

52

53

54

55

56

57

Le calcul scientifique

Reacutefeacuterences L-V Bertallanfy lsquoGeneral System Theoryrsquo Edition MASSON 1972

58

Page 7: Chap XIII : calcul scientifique avec python

Elaboration drsquoun environnement logiciel Python

Installation Beaucoup de meacutethodologies sont valable pour deacutevelopper un environnement compatible pour une programmation avec le

langage Python (Celui-ci est teacuteleacutechargeable sous deux version 2X ou 3X version de base qui ne sont pas forcement

totalement compatible) Le langage Python est utilisable sous diffeacuterent systegraveme drsquoexploitation (Win LinuxUNIX ou Mac OS)

Une autre alternative encore plus interessante que la premiegravere

est drsquoinstaller le logiciel ANACONDA

Avec lrsquoun des eacutediteurs de scripts

7

Notre choix

Environnement

Notre choix

IDE

Elaboration drsquoun environnement logiciel Python Installation La plateforme ANACONDA installe tout le neacutecessaire (lrsquoenvironnement PYTHON 3X2X) et donnera accegraves aux possibiliteacutes

drsquoeacutetendre lrsquoinstallation aux modules PYTHON neacutecessaires pour le deacuteveloppement de calcul scientifique de lrsquoingeacutenieur ou du

chercheur

Les diffeacuterents modules (librairies) neacutecessaire sont

NUMPY Analyse numeacuterique amp Matrices

SCIPY Extension pour calcul scientifique

MATPLOTLIB Dessin de courbe

SYMPY calcul symbolique

NETWORKX manipulation et gestion des graphes

PLOTLY Librairie en ligne pour dessin de courbes

EVENTLET

TKINTER Librairie pour manipulation drsquointerface graphique

IPYTHON Bibliothegraveque pour calcul scientifique

CYTHON Interface pour environnement CC++

JPYTHON Interface pour environnement JAVA

JUPYTER Editeur orienteacute navigateur

DJANGO-CMS System de gestion de contenus

WIDGY CMS utilisant le Framework Django

hellipencore des milliers de modules

8

Notre choix

Environnement

Notre choix

IDE

Elaboration drsquoun environnement logiciel Python Installation Assistant de lrsquoinstallation de ANACONDA et de PYCHARM

La plateforme ANACONDA = Python Modules LrsquoIDE de programmation PYTHON PyCharm 9

Notre choix

Environnement

Notre choix

De lrsquoIDE

Elaboration drsquoun environnement logiciel Python Personnalisation Sous PyCharm en mode TEREMINAL nous ajoutons

les modules neacutecessaires agrave la plateforme ANACONDA Dans la fenecirctre TERMINAL nous utiliserons CONDA

HPycharmProjectsessaigtconda install mpi4py

Using Anaconda Cloud api site

httpsapianacondaorg

Fetching package metadata

Solving package specifications

Package plan for installation in environment

hAnaconda325

The following packages will be downloaded

package | build

mpi4py-200 | py35_0 264 KB

The following NEW packages will be INSTALLED

mpi4py 200-py35_0 (copy)

Proceed ([y]n) Y

Fetching packages

mpi4py-200-p 100 || Time 00001 16926 kBs

Extracting packages hellip

[COMPLETE]|| 100

Linking packages

[mpi4py]| | 0

[COMPLETE]|| 100

10 Fenecirctre ABOUT

de PyCharm

Ideacutee du jour

Commande

installation modules

Elaboration drsquoun environnement logiciel Python Utilisation Sous PyCharm en mode TEREMINAL nous ajoutons les

modules neacutecessaires agrave la plateforme ANACONDA Caracteacuteristiques du langage script Python

Avantages

bull Tregraves riches librairies pour le calcul scientifique

bull Langage bien structureacute permettant drsquoeacutecrire des

programmes lisibles lsquowe code what we thinkrsquo

bull Drsquoautres librairies hors le cadre du calcul scientifique

(Gestion des services Web Accegraves aux ports seacuterie etc)

bull Graticiel lsquoOpen Sourcersquo derriegravere une large communauteacute

bull Compaciteacute du programme deacuteveloppeacute

bull Beaucoup drsquoalternatives pour lrsquoeacutedition (IDE)

Inconveacutenients

bull Environnement de deacuteveloppement moins

bull Pas tous les algorithmes qui peuvent ecirctre trouveacutes dans le

logiciel

Python peut ecirctre utiliser sous deux modes selon

lrsquointeractiviteacute escompteacutee

1 Commande en ligne

2 Exeacutecution de fichier script py 11 Fenecirctre ABOUT

de PyCharm

Elaboration drsquoun environnement logiciel Python Utilisation Sous PyCharm

Caracteacuteristiques du langage script Python

Python est un langage script informatique geacuteneacuterique et

moderne

bull Langage Python integravegre tous les types de donneacutees

(chaicircne reacuteel int) les controcircles des collections de

donneacutees (listes dictionnaires) et des modegraveles de flux

etc

bull La bibliothegraveque standard integravegre plusieurs Modules

bull Un grand nombre de modules speacutecialiseacutes ou des

applications sont eacutecrites en Python protocoles web

framework web etc Ainsi que le calcul scientifique

- Outils de deacuteveloppement (test automatique geacuteneacuteration de

documentation)

- et encore plushellip

Python peut ecirctre utiliser sous deux modes selon

lrsquointeractiviteacute escompteacutee

1 Commande en ligne

2 Exeacutecution de fichier script py 12

Mode console

Python

Mode

programme (py)

Elaboration drsquoun environnement logiciel Python Utilisation Sous Jupyter Interface WEB pour Python

Cette interface Web est facilement mise en œuvre par son

installation

conda install jupyter (si Anaconda est installeacute)

Ou

pip install jupyter

Le lancement de lrsquointerface est fait en invoquant

Jupiter notebook

Ouvrir le navigateur et entrer lrsquoadresse http1270018888

Pour utiliser un autre PORT autre que 8888

On note http127001Nouveau_Port

Lrsquointerface JUPITER est intuitive et facile agrave utiliser ses

fonctionnaliteacutes sont bull Deacuteploiement sous protocole Internet drsquoaptitude de calcul

Python

bull Toute les possibiliteacutes de gestion des documents lsquoNotebookrsquo

sont offertes

bull Possibiliteacutes drsquoeacutedition non limiteacutees (LaTeX HTML Code hellip)

bull Exeacutecution immeacutediate

bull Compatibiliteacute avec la plupart des langages et scripts de

programmation (CC++ Java JavaScript Julia Python R

Octave hellip)

bull Offre accessibiliteacute agrave Jupyter Drive via Google Drive

bull Options de Reporting avanceacutees (HTML LaTeX PDF)

13

Exemple de

code avec son

exeacutecution

Menu et barre

drsquooutils

Elaboration drsquoun environnement logiciel Python Utilisation Sous Jupyter Interface WEB pour Python

Les notebooks sont accessibles agrave partir de PyCharm Les notebooks sont des solutions de collaboration de preacutefeacuterences

ils integravegrent toute les fonctionnaliteacutes exigeacutees par un chercheur

dans le domaine des sciences humaines ou technologiques

Organisation des documents leur ouverture eacutedition ou mise agrave

jours se fait dans le mecircme endroit sans aucune deacutependance par

rapport agrave la machine puisque les notebooks sont accessible en

ligne (Serveur Ordinateur de bureau ou Peacuteripheacuterique mobile)

Les possibiliteacutes sont eacutetendues ainsi qursquoune documentation

abondante

14

Graphique

3D

Exemple de Code

Python

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse des donneacutees (Panda)

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

15

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse des donneacutees (Panda)

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

import numpy as np

systeme = nparray([[12][3-4]])

valeur=nparray([[3][1]])

sol=nplinalgsolve(systemevaleur)

print(x=sol[00] et y=sol[10])

x= 14 et y= 08

Reacutesolution de systegraveme lineacuteaire AX=b gtgtgt import numpy as np

gtgtgt from scipy import linalg

gtgtgt A = nparray([[1 2] [3 4]])

gtgtgt A

array([[1 2][3 4]])

gtgtgt b = nparray([[5] [6]])

gtgtgt b

array([[5][6]])

gtgtgt linalginv(A)dot(b) slow

array([[-4 ][ 45]])

gtgtgt Adot(linalginv(A)dot(b)) - b Veacuterification array([[888178420e-16][266453526e-15]])

gtgtgt nplinalgsolve(A b) fast

array([[-4 ][ 45]])

gtgtgt Adot(nplinalgsolve(A b)) - b Veacuterification array([[ 0][ 0]])

Importation de la

librairie Numpy

16

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse des donneacutees (Panda)

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

17

import numpy as np

from scipy import signal misc

import matplotlibpyplot as plt

image = miscface(gray=True)astype(npfloat32)

derfilt = nparray([10 -2 10] dtype=npfloat32)

ck = signalcspline2d(image 80)

deriv = (signalsepfir2d(ck derfilt [1]) +signalsepfir2d(ck [1] derfilt))

laplacian = nparray([[010] [1-41] [010]] dtype=npfloat32)

deriv2 = signalconvolve2d(cklaplacianmode=lsquosameboundary=symm)

pltfigure()

pltimshow(image)

pltgray()

plttitle(lsquoImage original)

pltshow()

pltfigure()

pltimshow(deriv)

pltgray()

plttitle(lsquosortie avec filtre spline)

pltshow()

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse des donneacutees (Panda)

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

from matplotlibpyplot import figure hold plot legend draw

from numpy import linspace

import scipystats as stats

from numpyrandom import randn

x = randn(100)

fig = figure()

ax = figadd_subplot(111)

axhist(x bins=30 label=rsquoEmpiricalrsquo)

xlim = axget_xlim()

ylim = axget_ylim()

pdfx = linspace(xlim[0] xlim[1] 200)

pdfy = statsnormpdf(pdfx)

pdfy = pdfy pdfymax() ylim[1]

hold(True)

plot(pdfx pdfy rsquor-rsquo label=rsquoPDFrsquo)

axset_ylim((ylim[0] 12 ylim[1]))

legend()

hold(False)

draw()

18

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse des donneacutees (Panda QtGraph)

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation 19

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Domaines drsquoutilisation

matplotlib inline

from pylab import plot show title xlabel ylabel subplot savefig

from scipy import fft arange ifft

from numpy import sin linspace pi

from scipyiowavfile import readwrite

def plotSpectru(yFs)

n = len(y) lungime semnal

k = arange(n)

T = nFs

frq = kT two sides frequency range

frq = frq[range(n2)] one side frequency range

Y = fft(y)n fft computing and normalization

Y = Y[range(n2)]

plot(frqabs(Y)r) plotting the spectrum

xlabel(Freq (Hz))

ylabel(|Y(freq)|)

Fs = 44100 sampling rate

ratedata=read(fatihawav)

y=data

lungime=len(y)

timp=len(y)44100

t=linspace(0timplen(y))

subplot(211)

plot(ty)

xlabel(Time)

ylabel(Amplitude)

subplot(212)

plotSpectru(yFs)

show()

20

Lecture de la

sourah

Code du traitement

audio

Spectre Amp|Freacuteq

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele (MPI Python)

Theacuteorie des graphes (Networkx)

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

21 Exemple

de graphe

Fenecirctre Aperccedilu

du bloc-note

Importation de la

librairie NetworkX

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

import RPiGPIO as GPIO

GPIOsetmode(GPIOBCM) set board mode to Broadcom

GPIOsetup(17 GPIOOUT) set up pin 17

GPIOsetup(18 GPIOOUT) set up pin 18

GPIOoutput(17 1) turn on pin 17

GPIOoutput(18 1) turn on pin 18

Importation

librairie GPIO

Module

Galileo Gen 2

Module

RaspBerry PI 3

22

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D (Python CAD FreeCAD)

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

23

from OCCSTEPControl import STEPControl_Reader

from OCCIFSelect import IFSelect_RetDone IFSelect_ItemsByEntity

from OCCDisplaySimpleGui import init_display

step_reader = STEPControl_Reader()

status = step_readerReadFile(modelswind_turbinestp)

if status == IFSelect_RetDone check status

failsonly = False

step_readerPrintCheckLoad(failsonly IFSelect_ItemsByEntity)

step_readerPrintCheckTransfer(failsonly IFSelect_ItemsByEntity)

ok = step_readerTransferRoot(1)

_nbs = step_readerNbShapes()

aResShape = step_readerShape(1)

else

print(Error cant read file)

sysexit(0)

display start_display add_menu add_function_to_menu = init_display()

displayDisplayShape(aResShape update=True)

start_display()

Importation

librairie OCC

Maillage Dauphin

Rendu du macirct drsquoun

aeacuterogeacuteneacuterateur

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D (Python CAD FreeCAD)

Bioinformatique et manipulation du geacutenome

POO avec Python (Programmation

Orienteacutee Objet) Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

class Rocket()

Rocket simule une roquette pour un jeu

ou une simulation de physique

def __init__(self)

Each rocket has an (xy) position

selfx = 0

selfy = 0

def move_up(self)

Increacutementation de la position y de la roquette

selfy += 1

Deacutefinir une ensemble de 5 roquettes les stocker dans une liste

my_rockets = []

for x in range(05)

new_rocket = Rocket()

my_rocketsappend(new_rocket)

A remarquer que chaque roquette est un objet agrave part entiegravere

for rocket in my_rockets

print(rocket)

Deacutefinition drsquoune

nouvelle Classe

Instantiation

Meacutethode Constructeur

__init__

24

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D (Python CAD FreeCAD)

Bioinformatique et manipulation

du geacutenome Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

25

from Bio import SeqIO

for seq_record in SeqIOparse(ls_orchidgbk genbank)

print(seq_recordid)

print(repr(seq_recordseq))

print(len(seq_record))

Z785331

Seq(CGTAACAAGGTTTCCGTAGGTGAACCTGCGGAAGGATCATTGATGAGACCGTGGCGC

IUPACAmbiguousDNA())

740

Z784391

Seq(CATTGTTGAGATCACATAATAATTGATCGAGTTAATCTGGAGGATCTGTTTACTGCC

IUPACAmbiguousDNA())

592

Sinon dans une Terminal Python

gtgtgt from BioSeq import Seq

gtgtgt from BioAlphabet import generic_dna

gtgtgt gene = Seq(GTGAAAAAGATGCAATCTATCGTACTCGCACTTTCCCTGGTTCTGGTCGCTCCCATGGCA +

GCACAGGCTGCGGAAATTACGTTAGTCCCGTCAGTAAAATTACAGATAGGCGATCGTGAT +

AATCGTGGCTATTACTGGGATGGAGGTCACTGGCGCGACCACGGCTGGTGGAAACAACAT +

TATGAATGGCGAGGCAATCGCTGGCACCTACACGGACCGCCGCCACCGCCGCGCCACCAT +

AAGAAAGCTCCTCATGATCATCACGGCGGTCATGGTCCAGGCAAACATCACCGCTAA

generic_dna)

gtgtgt genetranslate(table=Bacterial)

Seq(VKKMQSIVLALSLVLVAPMAAQAAEITLVPSVKLQIGDRDNRGYYWDGGHWRDHHR

HasStopCodon(ExtendedIUPACProtein() )

gtgtgt genetranslate(table=Bacterial to_stop=True)

Seq(VKKMQSIVLALSLVLVAPMAAQAAEITLVPSVKLQIGDRDNRGYYWDGGHWRDHHHR

ExtendedIUPACProtein())

Logo de

BioPython Seacutequence drsquoADN

Importation

librairie BIO

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D (Python CAD FreeCAD)

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

26

Installer agrave partir de PyPI

$ pip install mezzanine

Instantier un projet

$ mezzanine-project monproject

$ cd monproject

Instantier une Base de donneacutees

$ python managepy createdb

Lancer le serveur Web

$ python managepy runserver

Installation en mode

commande

URL du site instantieacute

Version Mobile Menu

Version Administration

Sites Web fait avec

Mezzanine

Version Normal

Les environnements de deacuteveloppement inteacutegreacutes de code Python sont nombreux des solutions proprieacutetaires agrave celles portant le

label GPL

Ils sont de trois grandes cateacutegories

Les applications bureaux (Desktop)

Les consoles de commande en ligne Les interfaces orienteacutees Web

Outils drsquoeacutelaboration de code Python (IDE)

27

Les environnements de deacuteveloppement inteacutegreacutes de code Python sont nombreux des solutions proprieacutetaires agrave celles portant le

label GPL Ils sont de trois grandes cateacutegories

Les applications bureaux (Desktop)

Les consoles de commande en ligne

Les interfaces orienteacutees Web

Outils drsquoeacutelaboration de code Python (IDE)

28

Les environnements de deacuteveloppement inteacutegreacutes de code Python sont nombreux des solutions proprieacutetaires agrave celles portant le

label GPL Ils sont de trois grandes cateacutegories

Les applications bureaux (Desktop)

Les consoles de commande en ligne

Les interfaces orienteacutees Web

Outils drsquoeacutelaboration de code Python (IDE)

29

30

Nom de Symbole Les noms de variables en Python peuvent contenir des caractegraveres alphanumeacuteriques a-z A-Z 0-

9 et certains caractegraveres speacuteciaux tel que _ Les noms de variables normales doivent commencer par une lettre

Par convention les noms de variables commencent par une lettre minuscule et les noms de classe commencent par

une lettre majuscule En outre il y a un certain nombre de mots-cleacutes Python qui ne peuvent pas ecirctre utiliseacutes comme

noms de variables Ces mots-cleacutes sont les suivants

and as assert break class continue def del elif else except exec finally for from global if import in

is lambda not or pass print raise return try while with yield

Affectation assignment de variable

x = 10

my_variable = 122

type(x) fonction TYPE retourne le type de la variable entre parenthegravese

builtinsfloat

Verification de type x = 10

veacuterifier si la variable est reacuteelle

type(x) is float

isinstance(x float)

True

z = complex(x)

print(z type(z))

(1+0j) ltclass complexlsquogt

Base de repreacutesentation des donneacutees

31

Operateurs et comparaisons Opeacuterateurs arithmeacutetiques + - (division entiegravere) puissance

30 20

10

NB operators puissance en python nrsquoest pas ^ mais

2 2

4

Les opeacuterateurs de comparaison sont gtltgt=lt===

objects identiques

x1 = x2 = [12]

x1 is x2

True

2 gt= 2 2 lt= 2

(True True)

Chaines de caractegraveres les liste et les dictionnaires s = Hello world

type(s)

builtinsstr

length of the string the number of characters

len(s)

11

replace a substring in a string with somethign else

s2 = sreplace(world test)

print(s2)

Hello test

s[0]

H

Base de repreacutesentation des donneacutees

32

Chaines de caractegraveres les liste et les dictionnaires s = Hello worldldquo

replace a substring in a string with somethign else

s2 = sreplace(world test)

Hello test

print(s2)

s[05]

Hellolsquo

s[05]

Hellolsquo

s[]

Hello worldlsquo

print(value = f 10) Formatage C des variables

value = 1000000

s2 = value1 = 2f value2 = d (31415 15)

print(s2)

value1 = 314 value2 = 1

Listes l = [1234]

print(type(l))

print(l)

ltclass listgt

[1 2 3 4]

l = [1 a 10 1-1j] peuvent ecirctre heacuteteacuterogegravene

print(l)

[1 a 10 (1-1j)]

Base de repreacutesentation des donneacutees

33

Listes start = 10

stop = 30

step = 2

range(start stop step)

range(10 30 2)

list(range(start stop step))

[10 12 14 16 18 20 22 24 26 28]

s2 = list(s)

S2

[H e l l o w o r l d]

Tri de la liste

s2sort()

print(s2)

[ H d e l l l o o r w]

l = []

lappend(A)

lappend(d)

lappend(d)

print(l)

[A d d]

Tuples Ce sont des variables comme les listes mais pas alteacuterables

point = (10 20)

print(point type(point))

(10 20) ltclass tuplegt

Base de repreacutesentation des donneacutees

34

Tuples x y = point

print(x = x)

print(y = y)

x = 10

y = 20

Dictionaries params = parameter1 10 parameter2 20 parameter3 30

print(type(params))

print(params)

ltclass dictgt

fparameter2 20 parameter3 30 parameter1 10

params[parameter1] = A

params[parameter2] = B

Ajouter une nouvelle entreacutee

params[parameter4] = D

print(paramegravetre = + str(params[parameter1]))

print(paramegravetre = + str(params[parameter2]))

print(paramegravetre = + str(params[parameter3]))

print(paramegravetre = + str(params[parameter4]))

paramegravetre = A

paramegravetre = B

paramegravetre = 30

paramegravetre = D

Base de repreacutesentation des donneacutees

35

36

Affectation amp Controcircle conditionnel de flue statement1 = False Crsquoest une affectation

statement2 = False

if statement1 Test valideacute condition (statement1) est VRAIE

print(statement1 is True)

elif statement2 Exeacutecuteacutee condition (statement2) est VRAIE

print(statement2 is True)

else Exeacutecuteacutee sinon

print(statement1 and statement2 are False)

Boucles for x in [123] [123] peut ecirctre deacutesigneacute par range(3) avec print(x+1)

print(x)

1

2

3

for word in [scientific computing with python]

print(word) condition de reacutepeacutetition deacutependante du contenu de la liste

scientific

computing

with

python

l1 = [x2 for x in range(05)] agrave remarquer la compaciteacute du Python

print(l1)

[0 1 4 9 16]

Base de repreacutesentation des donneacutees

37

Boucles var = 0

while var = 1

print jlsquoeacutecris mon programme ici

choix = raw_input(voulez vous recommencer ( on ) )

if choix == n

var = 1

else

lsquovous allez ecirctre renvoyeacute au deacutebut du programmersquo

X = y 2

while x gt 1

If y x == 0

print y lsquo est facteur de rsquo x

break

x -= 1

else

print y lsquo est premierlsquo

Lrsquoutilisation de zip et map peut srsquoaveacutereacutee encore plus efficace

l1 = [1 2 3]

l2 = [4 5 6]

for (x y) in zip(l1 l2)

print x y -- x + y

1 4 -- 5

2 5 -- 7

3 6 -- 9

Base de repreacutesentation des donneacutees

38

s=0123456789

print map(int s)

[0 1 2 3 4 5 6 7 8 9]

Utilisation et

puissance de MAP

Utilisation de ZIP

Intervales range(start stop step)

range(5 10)

5 jusqursquoagrave 10 (exclue) avec un pas de 1

range(0 10 3)

0 3 6 9

range(-10 -100 -30)

-10 -40 -70

Test conditionnel binaire x = 5

y = 10

if x gt y

print(x est grand que y)

else

print(ldquox nrsquoest pas grand que yrdquo)

Dans Python on peut compliquer les chose

x = 5

y = 10

Z = 12

if z gt x gt y

print(lsquoy est petit que x et x est petit que z)

Base de repreacutesentation des donneacutees

39

Boucle avec test conditionnel binaire break continue et else dans une boucle for

for n in range(2 10)

for x in range(2 n)

if n x == 0

print(n lsquoest eacutegal agrave x nx)

break

else

print(n lsquoest premier)

Utilisation de lrsquoinstruction continue

for num in range(2 10)

if num 2 == 0 le symbole deacutesigne lrsquoopeacuteration RESTE de la division

print(ldquoNombre paire trouveacute num)

continue

print(ldquoNombre non premier num)

Base de repreacutesentation des donneacutees

40

Deacutefinition de fonction (proceacutedure avec retour) def fib(n) Ecrire la suite de Fibonacci jusqursquoagrave n

a b = 0 1

while a lt n

print(a end= )

a b = b a+b

print()

fib(2000)

0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597

f = fib deacutesignation par reacutefeacuterence f agrave la fonction fib

f(100)

0 1 1 2 3 5 8 13 21 34 55 89

autre type de deacutefinition de fonction

def ask_ok(prompt retries=4 complaint=Oui or Non srsquoil vou plait )

while True

ok = input(prompt)

if ok in (lsquoo lsquooui lsquoOui)

return True

if ok in (lsquon no non lsquoNon)

return False

retries = retries - 1

if retries lt 0

raise OSError(lsquoUtilisateur non coopeacuteratif)

print(complaint)

Base de repreacutesentation des donneacutees

41

Lrsquoinstruction lambda def make_incrementeur(n)

return lambda x x + n

f = make_incrementeur(42)

f(0)

42

f(1)

43

un autre cas drsquoutilisation

pairs = [(1 one) (2 two) (3 three) (4 four)]

pairssort(key=lambda pair pair[1])

pairs

[(4 four) (1 one) (3 three) (2 two)]

Les annotations dans une fonction Les annotations deacutefinissent des messages de preacutesentation

def f(chiken str eggs str = eggs) -gt str remarquer que la fonction est de type STR

print(Annotations f__annotations__)

print(Arguments chiken eggs)

return chiken + and + eggs

f(spam)

Annotations chiken ltclass strgt return ltclass strgt eggs ltclass strgt

Arguments spam eggs

spam and eggslsquo

Base de repreacutesentation des donneacutees

42

Les deacutecorateurs python Notre deacutecorateur

def decorate(func)

print uJe suis dans la fonction decorate et je deacutecore s func__name__

print uExeacutecution de la fonction s func__name__

return func

Fonction cible utiliseacutee avec DECORATOR

decorate

def foobar(args)

print join(args)

Exemple drsquoappel de la fonction

foobar(A B C D)

Je suis dans la fonction decorate et je deacutecore foobar

Exeacutecution de la fonction foobar

A B C D

Il est posible drsquoattribuer plusieurs deacutecorateurs agrave une seule fonction

decorateur1

decorateur2

def ma_fonction()

instructions

Base de repreacutesentation des donneacutees

43

Manipulation des listes a = [6625 333 333 1 12345]

print(acount(333) acount(6625) acount(x))

2 1 0

ainsert(2 -1)

aappend(333)

a

[6625 333 -1 333 1 12345 333]

aindex(333)

1

aremove(333)

a

[6625 -1 333 1 12345 333]

areverse()

a

[333 12345 1 333 -1 6625]

asort()

a

[-1 1 6625 333 333 12345]

apop()

12345

a

[-1 1 6625 333 333]

Base de repreacutesentation des donneacutees

44

Puissance du langage Python Lrsquoensemble des lignes suiantes peut ecirctre compacteacute par ce qui suit

combs = []

for x in [123]

for y in [314]

if x = y

combsappend((x y))

Combs

Ou bien

[(x y) for x in [123] for y in [314] if x = y]

Donne le mecircme reacutesultat

[(1 3) (1 4) (2 3) (2 1) (2 4) (3 1) (3 4)]

Calcul de la valeur de PI arrondie

from math import pi

[str(round(pi i)) for i in range(1 6)]

[31 314 3142 31416 314159]

Geacuteneacuterateur avec utilisation de YIELD

def generateur()

yield a

yield b

yield cldquo

i=generateur()

for v in i

print v

a

b

c

Base de repreacutesentation des donneacutees

45

Les expressions reacuteguliegraveres en python Les expressions reacuteguliegravere sont utiliseacutees pour veacuterifier la conformiteacute des expressions de

chaines de caractegraveres par rapport agrave un motif Les symboles suivants sont utiliseacutes

^ $ + [ ] | ( )

Le point correspond agrave nimporte quel caractegravere

^ Indique un commencement de segment mais signifie aussi contraire de

$ Fin de segment

[xy] Une liste de segment possible Exemple [abc] eacutequivaut agrave a b ou c

(x|y) Indique un choix multiple type (ps|ump) eacutequivaut agrave ps OU UMP

d le segment est composeacute uniquement de chiffre ce qui eacutequivaut agrave [0-9]

D le segment nest pas composeacute de chiffre ce qui eacutequivaut agrave [^0-9]

s Un espace ce qui eacutequivaut agrave [ tnrfv]

S Pas despace ce qui eacutequivaut agrave [^ tnrfv]

w Preacutesence alphanumeacuterique ce qui eacutequivaut agrave [a-zA-Z0-9_]

W Pas de preacutesence alphanumeacuterique [^a-zA-Z0-9_]

Est un caractegravere deacutechappement T2 Le T soit reacutepeacuteteacute 2 fois

TA19 La seacutequence TA doit ecirctre preacutesente de 1 agrave 9 fois

TAM10 La seacutequence TAM nrsquoexiste pas ou reacutepeacuteteacutee 10 fois

LI1 La seacutequence LI doit ecirctre reacutepeacuteteacutee au moins une fois

Base de repreacutesentation des donneacutees

46

Les expressions reacuteguliegraveres en python Utilisation des expressions reacuteguliegravere

import re

print rematch(rGR()S GRIS)

lt_sreSRE_Match object at 0x02019DE0gt

Une utilisation freacutequente consiste en la validation des valeurs des emails saisis

Utilisation des expressions reacuteguliegravere

import re

mails = [lsquomtamaligmailcomrsquorsquoutmbuniv-bechardzrsquo lsquo8freefrrsquo lsquouniv-bechardzrsquo lsquotamalicdtarsquo]

regex = recompile(rrsquo^[a-z0-9_-]+[a-z0-9_-]+[(com|fr|dz)]+rsquo

for mail in mails

if regexmatch(mail) is not None

print Ce mail s est valide mail

else

print Erreur ce mail s est non valide mail

Ce mail mtamaligmailcom est valide

Ce mail utmbuniv-bechardz est valide

Ce mail 8freefr est valide

Erreur ce mail univ-bechardz est non valide

Erreur ce mail tamalicdta est non valide

Base de repreacutesentation des donneacutees

47

Les fichiers Creacuteer lire et eacutecrire dans un fichier en python Utilisation des expressions reacuteguliegravere

fichier = open(donneestxt r)

print fichier

ltopen file lsquodonneestxt mode r at 0x7ff6cf3fe4b0gt

Le descripteur permet de renseigner la machine sur la maniegravere avec laquelle le fichier est utiliseacute

r pour ouverture en mode READ

w pour ouverture en mode WRITE chaque fois le contenu du fichier est eacutecraseacute sinon python le creacutee

a pour ajout lsquoAPPENDrsquo Si le fichier nexiste pas python le creacutee

b Ouverture en mode Binaire

t Ouverture en mode Texte

x creacutee un nouveau fichier et louvrir pour eacutecriture

proceacutedure geacuteneacuterale pour lrsquoutilisation drsquoun fichier

fichier = open(lsquodonneestxtrsquo r)

print fichierread()

fichierclose()

Lrsquoinstruction WITH peut ecirctre utiliseacutee sans besoin de la fonction CLOSE

with open(datatxt r) as fichier

print fichierread()

Base de repreacutesentation des donneacutees

48

49

Le langage Python est un langage script interpreacuteteacute Le programme portant lrsquoune des extension py pyw ou pwc est

structureacute selon le canevas suivant

Les codifications

usrbinpython27

--codingencodage -

Les imports des librairies

Les instructions

Le langage Python passe pour ecirctre exeacutecuteacute sur deux eacutetapes la premiegravere UNE PRECOMPILATION geacuteneacuteration du code

machine et finalement un eacutecriture en code machine exeacutecutable (selon la machine)

Lrsquoenvironnement drsquoexeacutecution des scripts eacutecrits en Python regroupe les avantages des TRADUCTEURS (travaille en ligne par

ligne) et les COMPILATEURS (puissance de la structure algorithmique)

La bibliothegraveque cx_Freeze sert agrave transformer les fichiers scripts Pyhon py en exeacutecutable exe

Structures algorithmique du python

50

51

Matrices amp Systegravemes lineacuteaires

52

53

54

55

56

57

Le calcul scientifique

Reacutefeacuterences L-V Bertallanfy lsquoGeneral System Theoryrsquo Edition MASSON 1972

58

Page 8: Chap XIII : calcul scientifique avec python

Elaboration drsquoun environnement logiciel Python Installation La plateforme ANACONDA installe tout le neacutecessaire (lrsquoenvironnement PYTHON 3X2X) et donnera accegraves aux possibiliteacutes

drsquoeacutetendre lrsquoinstallation aux modules PYTHON neacutecessaires pour le deacuteveloppement de calcul scientifique de lrsquoingeacutenieur ou du

chercheur

Les diffeacuterents modules (librairies) neacutecessaire sont

NUMPY Analyse numeacuterique amp Matrices

SCIPY Extension pour calcul scientifique

MATPLOTLIB Dessin de courbe

SYMPY calcul symbolique

NETWORKX manipulation et gestion des graphes

PLOTLY Librairie en ligne pour dessin de courbes

EVENTLET

TKINTER Librairie pour manipulation drsquointerface graphique

IPYTHON Bibliothegraveque pour calcul scientifique

CYTHON Interface pour environnement CC++

JPYTHON Interface pour environnement JAVA

JUPYTER Editeur orienteacute navigateur

DJANGO-CMS System de gestion de contenus

WIDGY CMS utilisant le Framework Django

hellipencore des milliers de modules

8

Notre choix

Environnement

Notre choix

IDE

Elaboration drsquoun environnement logiciel Python Installation Assistant de lrsquoinstallation de ANACONDA et de PYCHARM

La plateforme ANACONDA = Python Modules LrsquoIDE de programmation PYTHON PyCharm 9

Notre choix

Environnement

Notre choix

De lrsquoIDE

Elaboration drsquoun environnement logiciel Python Personnalisation Sous PyCharm en mode TEREMINAL nous ajoutons

les modules neacutecessaires agrave la plateforme ANACONDA Dans la fenecirctre TERMINAL nous utiliserons CONDA

HPycharmProjectsessaigtconda install mpi4py

Using Anaconda Cloud api site

httpsapianacondaorg

Fetching package metadata

Solving package specifications

Package plan for installation in environment

hAnaconda325

The following packages will be downloaded

package | build

mpi4py-200 | py35_0 264 KB

The following NEW packages will be INSTALLED

mpi4py 200-py35_0 (copy)

Proceed ([y]n) Y

Fetching packages

mpi4py-200-p 100 || Time 00001 16926 kBs

Extracting packages hellip

[COMPLETE]|| 100

Linking packages

[mpi4py]| | 0

[COMPLETE]|| 100

10 Fenecirctre ABOUT

de PyCharm

Ideacutee du jour

Commande

installation modules

Elaboration drsquoun environnement logiciel Python Utilisation Sous PyCharm en mode TEREMINAL nous ajoutons les

modules neacutecessaires agrave la plateforme ANACONDA Caracteacuteristiques du langage script Python

Avantages

bull Tregraves riches librairies pour le calcul scientifique

bull Langage bien structureacute permettant drsquoeacutecrire des

programmes lisibles lsquowe code what we thinkrsquo

bull Drsquoautres librairies hors le cadre du calcul scientifique

(Gestion des services Web Accegraves aux ports seacuterie etc)

bull Graticiel lsquoOpen Sourcersquo derriegravere une large communauteacute

bull Compaciteacute du programme deacuteveloppeacute

bull Beaucoup drsquoalternatives pour lrsquoeacutedition (IDE)

Inconveacutenients

bull Environnement de deacuteveloppement moins

bull Pas tous les algorithmes qui peuvent ecirctre trouveacutes dans le

logiciel

Python peut ecirctre utiliser sous deux modes selon

lrsquointeractiviteacute escompteacutee

1 Commande en ligne

2 Exeacutecution de fichier script py 11 Fenecirctre ABOUT

de PyCharm

Elaboration drsquoun environnement logiciel Python Utilisation Sous PyCharm

Caracteacuteristiques du langage script Python

Python est un langage script informatique geacuteneacuterique et

moderne

bull Langage Python integravegre tous les types de donneacutees

(chaicircne reacuteel int) les controcircles des collections de

donneacutees (listes dictionnaires) et des modegraveles de flux

etc

bull La bibliothegraveque standard integravegre plusieurs Modules

bull Un grand nombre de modules speacutecialiseacutes ou des

applications sont eacutecrites en Python protocoles web

framework web etc Ainsi que le calcul scientifique

- Outils de deacuteveloppement (test automatique geacuteneacuteration de

documentation)

- et encore plushellip

Python peut ecirctre utiliser sous deux modes selon

lrsquointeractiviteacute escompteacutee

1 Commande en ligne

2 Exeacutecution de fichier script py 12

Mode console

Python

Mode

programme (py)

Elaboration drsquoun environnement logiciel Python Utilisation Sous Jupyter Interface WEB pour Python

Cette interface Web est facilement mise en œuvre par son

installation

conda install jupyter (si Anaconda est installeacute)

Ou

pip install jupyter

Le lancement de lrsquointerface est fait en invoquant

Jupiter notebook

Ouvrir le navigateur et entrer lrsquoadresse http1270018888

Pour utiliser un autre PORT autre que 8888

On note http127001Nouveau_Port

Lrsquointerface JUPITER est intuitive et facile agrave utiliser ses

fonctionnaliteacutes sont bull Deacuteploiement sous protocole Internet drsquoaptitude de calcul

Python

bull Toute les possibiliteacutes de gestion des documents lsquoNotebookrsquo

sont offertes

bull Possibiliteacutes drsquoeacutedition non limiteacutees (LaTeX HTML Code hellip)

bull Exeacutecution immeacutediate

bull Compatibiliteacute avec la plupart des langages et scripts de

programmation (CC++ Java JavaScript Julia Python R

Octave hellip)

bull Offre accessibiliteacute agrave Jupyter Drive via Google Drive

bull Options de Reporting avanceacutees (HTML LaTeX PDF)

13

Exemple de

code avec son

exeacutecution

Menu et barre

drsquooutils

Elaboration drsquoun environnement logiciel Python Utilisation Sous Jupyter Interface WEB pour Python

Les notebooks sont accessibles agrave partir de PyCharm Les notebooks sont des solutions de collaboration de preacutefeacuterences

ils integravegrent toute les fonctionnaliteacutes exigeacutees par un chercheur

dans le domaine des sciences humaines ou technologiques

Organisation des documents leur ouverture eacutedition ou mise agrave

jours se fait dans le mecircme endroit sans aucune deacutependance par

rapport agrave la machine puisque les notebooks sont accessible en

ligne (Serveur Ordinateur de bureau ou Peacuteripheacuterique mobile)

Les possibiliteacutes sont eacutetendues ainsi qursquoune documentation

abondante

14

Graphique

3D

Exemple de Code

Python

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse des donneacutees (Panda)

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

15

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse des donneacutees (Panda)

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

import numpy as np

systeme = nparray([[12][3-4]])

valeur=nparray([[3][1]])

sol=nplinalgsolve(systemevaleur)

print(x=sol[00] et y=sol[10])

x= 14 et y= 08

Reacutesolution de systegraveme lineacuteaire AX=b gtgtgt import numpy as np

gtgtgt from scipy import linalg

gtgtgt A = nparray([[1 2] [3 4]])

gtgtgt A

array([[1 2][3 4]])

gtgtgt b = nparray([[5] [6]])

gtgtgt b

array([[5][6]])

gtgtgt linalginv(A)dot(b) slow

array([[-4 ][ 45]])

gtgtgt Adot(linalginv(A)dot(b)) - b Veacuterification array([[888178420e-16][266453526e-15]])

gtgtgt nplinalgsolve(A b) fast

array([[-4 ][ 45]])

gtgtgt Adot(nplinalgsolve(A b)) - b Veacuterification array([[ 0][ 0]])

Importation de la

librairie Numpy

16

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse des donneacutees (Panda)

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

17

import numpy as np

from scipy import signal misc

import matplotlibpyplot as plt

image = miscface(gray=True)astype(npfloat32)

derfilt = nparray([10 -2 10] dtype=npfloat32)

ck = signalcspline2d(image 80)

deriv = (signalsepfir2d(ck derfilt [1]) +signalsepfir2d(ck [1] derfilt))

laplacian = nparray([[010] [1-41] [010]] dtype=npfloat32)

deriv2 = signalconvolve2d(cklaplacianmode=lsquosameboundary=symm)

pltfigure()

pltimshow(image)

pltgray()

plttitle(lsquoImage original)

pltshow()

pltfigure()

pltimshow(deriv)

pltgray()

plttitle(lsquosortie avec filtre spline)

pltshow()

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse des donneacutees (Panda)

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

from matplotlibpyplot import figure hold plot legend draw

from numpy import linspace

import scipystats as stats

from numpyrandom import randn

x = randn(100)

fig = figure()

ax = figadd_subplot(111)

axhist(x bins=30 label=rsquoEmpiricalrsquo)

xlim = axget_xlim()

ylim = axget_ylim()

pdfx = linspace(xlim[0] xlim[1] 200)

pdfy = statsnormpdf(pdfx)

pdfy = pdfy pdfymax() ylim[1]

hold(True)

plot(pdfx pdfy rsquor-rsquo label=rsquoPDFrsquo)

axset_ylim((ylim[0] 12 ylim[1]))

legend()

hold(False)

draw()

18

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse des donneacutees (Panda QtGraph)

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation 19

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Domaines drsquoutilisation

matplotlib inline

from pylab import plot show title xlabel ylabel subplot savefig

from scipy import fft arange ifft

from numpy import sin linspace pi

from scipyiowavfile import readwrite

def plotSpectru(yFs)

n = len(y) lungime semnal

k = arange(n)

T = nFs

frq = kT two sides frequency range

frq = frq[range(n2)] one side frequency range

Y = fft(y)n fft computing and normalization

Y = Y[range(n2)]

plot(frqabs(Y)r) plotting the spectrum

xlabel(Freq (Hz))

ylabel(|Y(freq)|)

Fs = 44100 sampling rate

ratedata=read(fatihawav)

y=data

lungime=len(y)

timp=len(y)44100

t=linspace(0timplen(y))

subplot(211)

plot(ty)

xlabel(Time)

ylabel(Amplitude)

subplot(212)

plotSpectru(yFs)

show()

20

Lecture de la

sourah

Code du traitement

audio

Spectre Amp|Freacuteq

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele (MPI Python)

Theacuteorie des graphes (Networkx)

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

21 Exemple

de graphe

Fenecirctre Aperccedilu

du bloc-note

Importation de la

librairie NetworkX

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

import RPiGPIO as GPIO

GPIOsetmode(GPIOBCM) set board mode to Broadcom

GPIOsetup(17 GPIOOUT) set up pin 17

GPIOsetup(18 GPIOOUT) set up pin 18

GPIOoutput(17 1) turn on pin 17

GPIOoutput(18 1) turn on pin 18

Importation

librairie GPIO

Module

Galileo Gen 2

Module

RaspBerry PI 3

22

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D (Python CAD FreeCAD)

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

23

from OCCSTEPControl import STEPControl_Reader

from OCCIFSelect import IFSelect_RetDone IFSelect_ItemsByEntity

from OCCDisplaySimpleGui import init_display

step_reader = STEPControl_Reader()

status = step_readerReadFile(modelswind_turbinestp)

if status == IFSelect_RetDone check status

failsonly = False

step_readerPrintCheckLoad(failsonly IFSelect_ItemsByEntity)

step_readerPrintCheckTransfer(failsonly IFSelect_ItemsByEntity)

ok = step_readerTransferRoot(1)

_nbs = step_readerNbShapes()

aResShape = step_readerShape(1)

else

print(Error cant read file)

sysexit(0)

display start_display add_menu add_function_to_menu = init_display()

displayDisplayShape(aResShape update=True)

start_display()

Importation

librairie OCC

Maillage Dauphin

Rendu du macirct drsquoun

aeacuterogeacuteneacuterateur

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D (Python CAD FreeCAD)

Bioinformatique et manipulation du geacutenome

POO avec Python (Programmation

Orienteacutee Objet) Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

class Rocket()

Rocket simule une roquette pour un jeu

ou une simulation de physique

def __init__(self)

Each rocket has an (xy) position

selfx = 0

selfy = 0

def move_up(self)

Increacutementation de la position y de la roquette

selfy += 1

Deacutefinir une ensemble de 5 roquettes les stocker dans une liste

my_rockets = []

for x in range(05)

new_rocket = Rocket()

my_rocketsappend(new_rocket)

A remarquer que chaque roquette est un objet agrave part entiegravere

for rocket in my_rockets

print(rocket)

Deacutefinition drsquoune

nouvelle Classe

Instantiation

Meacutethode Constructeur

__init__

24

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D (Python CAD FreeCAD)

Bioinformatique et manipulation

du geacutenome Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

25

from Bio import SeqIO

for seq_record in SeqIOparse(ls_orchidgbk genbank)

print(seq_recordid)

print(repr(seq_recordseq))

print(len(seq_record))

Z785331

Seq(CGTAACAAGGTTTCCGTAGGTGAACCTGCGGAAGGATCATTGATGAGACCGTGGCGC

IUPACAmbiguousDNA())

740

Z784391

Seq(CATTGTTGAGATCACATAATAATTGATCGAGTTAATCTGGAGGATCTGTTTACTGCC

IUPACAmbiguousDNA())

592

Sinon dans une Terminal Python

gtgtgt from BioSeq import Seq

gtgtgt from BioAlphabet import generic_dna

gtgtgt gene = Seq(GTGAAAAAGATGCAATCTATCGTACTCGCACTTTCCCTGGTTCTGGTCGCTCCCATGGCA +

GCACAGGCTGCGGAAATTACGTTAGTCCCGTCAGTAAAATTACAGATAGGCGATCGTGAT +

AATCGTGGCTATTACTGGGATGGAGGTCACTGGCGCGACCACGGCTGGTGGAAACAACAT +

TATGAATGGCGAGGCAATCGCTGGCACCTACACGGACCGCCGCCACCGCCGCGCCACCAT +

AAGAAAGCTCCTCATGATCATCACGGCGGTCATGGTCCAGGCAAACATCACCGCTAA

generic_dna)

gtgtgt genetranslate(table=Bacterial)

Seq(VKKMQSIVLALSLVLVAPMAAQAAEITLVPSVKLQIGDRDNRGYYWDGGHWRDHHR

HasStopCodon(ExtendedIUPACProtein() )

gtgtgt genetranslate(table=Bacterial to_stop=True)

Seq(VKKMQSIVLALSLVLVAPMAAQAAEITLVPSVKLQIGDRDNRGYYWDGGHWRDHHHR

ExtendedIUPACProtein())

Logo de

BioPython Seacutequence drsquoADN

Importation

librairie BIO

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D (Python CAD FreeCAD)

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

26

Installer agrave partir de PyPI

$ pip install mezzanine

Instantier un projet

$ mezzanine-project monproject

$ cd monproject

Instantier une Base de donneacutees

$ python managepy createdb

Lancer le serveur Web

$ python managepy runserver

Installation en mode

commande

URL du site instantieacute

Version Mobile Menu

Version Administration

Sites Web fait avec

Mezzanine

Version Normal

Les environnements de deacuteveloppement inteacutegreacutes de code Python sont nombreux des solutions proprieacutetaires agrave celles portant le

label GPL

Ils sont de trois grandes cateacutegories

Les applications bureaux (Desktop)

Les consoles de commande en ligne Les interfaces orienteacutees Web

Outils drsquoeacutelaboration de code Python (IDE)

27

Les environnements de deacuteveloppement inteacutegreacutes de code Python sont nombreux des solutions proprieacutetaires agrave celles portant le

label GPL Ils sont de trois grandes cateacutegories

Les applications bureaux (Desktop)

Les consoles de commande en ligne

Les interfaces orienteacutees Web

Outils drsquoeacutelaboration de code Python (IDE)

28

Les environnements de deacuteveloppement inteacutegreacutes de code Python sont nombreux des solutions proprieacutetaires agrave celles portant le

label GPL Ils sont de trois grandes cateacutegories

Les applications bureaux (Desktop)

Les consoles de commande en ligne

Les interfaces orienteacutees Web

Outils drsquoeacutelaboration de code Python (IDE)

29

30

Nom de Symbole Les noms de variables en Python peuvent contenir des caractegraveres alphanumeacuteriques a-z A-Z 0-

9 et certains caractegraveres speacuteciaux tel que _ Les noms de variables normales doivent commencer par une lettre

Par convention les noms de variables commencent par une lettre minuscule et les noms de classe commencent par

une lettre majuscule En outre il y a un certain nombre de mots-cleacutes Python qui ne peuvent pas ecirctre utiliseacutes comme

noms de variables Ces mots-cleacutes sont les suivants

and as assert break class continue def del elif else except exec finally for from global if import in

is lambda not or pass print raise return try while with yield

Affectation assignment de variable

x = 10

my_variable = 122

type(x) fonction TYPE retourne le type de la variable entre parenthegravese

builtinsfloat

Verification de type x = 10

veacuterifier si la variable est reacuteelle

type(x) is float

isinstance(x float)

True

z = complex(x)

print(z type(z))

(1+0j) ltclass complexlsquogt

Base de repreacutesentation des donneacutees

31

Operateurs et comparaisons Opeacuterateurs arithmeacutetiques + - (division entiegravere) puissance

30 20

10

NB operators puissance en python nrsquoest pas ^ mais

2 2

4

Les opeacuterateurs de comparaison sont gtltgt=lt===

objects identiques

x1 = x2 = [12]

x1 is x2

True

2 gt= 2 2 lt= 2

(True True)

Chaines de caractegraveres les liste et les dictionnaires s = Hello world

type(s)

builtinsstr

length of the string the number of characters

len(s)

11

replace a substring in a string with somethign else

s2 = sreplace(world test)

print(s2)

Hello test

s[0]

H

Base de repreacutesentation des donneacutees

32

Chaines de caractegraveres les liste et les dictionnaires s = Hello worldldquo

replace a substring in a string with somethign else

s2 = sreplace(world test)

Hello test

print(s2)

s[05]

Hellolsquo

s[05]

Hellolsquo

s[]

Hello worldlsquo

print(value = f 10) Formatage C des variables

value = 1000000

s2 = value1 = 2f value2 = d (31415 15)

print(s2)

value1 = 314 value2 = 1

Listes l = [1234]

print(type(l))

print(l)

ltclass listgt

[1 2 3 4]

l = [1 a 10 1-1j] peuvent ecirctre heacuteteacuterogegravene

print(l)

[1 a 10 (1-1j)]

Base de repreacutesentation des donneacutees

33

Listes start = 10

stop = 30

step = 2

range(start stop step)

range(10 30 2)

list(range(start stop step))

[10 12 14 16 18 20 22 24 26 28]

s2 = list(s)

S2

[H e l l o w o r l d]

Tri de la liste

s2sort()

print(s2)

[ H d e l l l o o r w]

l = []

lappend(A)

lappend(d)

lappend(d)

print(l)

[A d d]

Tuples Ce sont des variables comme les listes mais pas alteacuterables

point = (10 20)

print(point type(point))

(10 20) ltclass tuplegt

Base de repreacutesentation des donneacutees

34

Tuples x y = point

print(x = x)

print(y = y)

x = 10

y = 20

Dictionaries params = parameter1 10 parameter2 20 parameter3 30

print(type(params))

print(params)

ltclass dictgt

fparameter2 20 parameter3 30 parameter1 10

params[parameter1] = A

params[parameter2] = B

Ajouter une nouvelle entreacutee

params[parameter4] = D

print(paramegravetre = + str(params[parameter1]))

print(paramegravetre = + str(params[parameter2]))

print(paramegravetre = + str(params[parameter3]))

print(paramegravetre = + str(params[parameter4]))

paramegravetre = A

paramegravetre = B

paramegravetre = 30

paramegravetre = D

Base de repreacutesentation des donneacutees

35

36

Affectation amp Controcircle conditionnel de flue statement1 = False Crsquoest une affectation

statement2 = False

if statement1 Test valideacute condition (statement1) est VRAIE

print(statement1 is True)

elif statement2 Exeacutecuteacutee condition (statement2) est VRAIE

print(statement2 is True)

else Exeacutecuteacutee sinon

print(statement1 and statement2 are False)

Boucles for x in [123] [123] peut ecirctre deacutesigneacute par range(3) avec print(x+1)

print(x)

1

2

3

for word in [scientific computing with python]

print(word) condition de reacutepeacutetition deacutependante du contenu de la liste

scientific

computing

with

python

l1 = [x2 for x in range(05)] agrave remarquer la compaciteacute du Python

print(l1)

[0 1 4 9 16]

Base de repreacutesentation des donneacutees

37

Boucles var = 0

while var = 1

print jlsquoeacutecris mon programme ici

choix = raw_input(voulez vous recommencer ( on ) )

if choix == n

var = 1

else

lsquovous allez ecirctre renvoyeacute au deacutebut du programmersquo

X = y 2

while x gt 1

If y x == 0

print y lsquo est facteur de rsquo x

break

x -= 1

else

print y lsquo est premierlsquo

Lrsquoutilisation de zip et map peut srsquoaveacutereacutee encore plus efficace

l1 = [1 2 3]

l2 = [4 5 6]

for (x y) in zip(l1 l2)

print x y -- x + y

1 4 -- 5

2 5 -- 7

3 6 -- 9

Base de repreacutesentation des donneacutees

38

s=0123456789

print map(int s)

[0 1 2 3 4 5 6 7 8 9]

Utilisation et

puissance de MAP

Utilisation de ZIP

Intervales range(start stop step)

range(5 10)

5 jusqursquoagrave 10 (exclue) avec un pas de 1

range(0 10 3)

0 3 6 9

range(-10 -100 -30)

-10 -40 -70

Test conditionnel binaire x = 5

y = 10

if x gt y

print(x est grand que y)

else

print(ldquox nrsquoest pas grand que yrdquo)

Dans Python on peut compliquer les chose

x = 5

y = 10

Z = 12

if z gt x gt y

print(lsquoy est petit que x et x est petit que z)

Base de repreacutesentation des donneacutees

39

Boucle avec test conditionnel binaire break continue et else dans une boucle for

for n in range(2 10)

for x in range(2 n)

if n x == 0

print(n lsquoest eacutegal agrave x nx)

break

else

print(n lsquoest premier)

Utilisation de lrsquoinstruction continue

for num in range(2 10)

if num 2 == 0 le symbole deacutesigne lrsquoopeacuteration RESTE de la division

print(ldquoNombre paire trouveacute num)

continue

print(ldquoNombre non premier num)

Base de repreacutesentation des donneacutees

40

Deacutefinition de fonction (proceacutedure avec retour) def fib(n) Ecrire la suite de Fibonacci jusqursquoagrave n

a b = 0 1

while a lt n

print(a end= )

a b = b a+b

print()

fib(2000)

0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597

f = fib deacutesignation par reacutefeacuterence f agrave la fonction fib

f(100)

0 1 1 2 3 5 8 13 21 34 55 89

autre type de deacutefinition de fonction

def ask_ok(prompt retries=4 complaint=Oui or Non srsquoil vou plait )

while True

ok = input(prompt)

if ok in (lsquoo lsquooui lsquoOui)

return True

if ok in (lsquon no non lsquoNon)

return False

retries = retries - 1

if retries lt 0

raise OSError(lsquoUtilisateur non coopeacuteratif)

print(complaint)

Base de repreacutesentation des donneacutees

41

Lrsquoinstruction lambda def make_incrementeur(n)

return lambda x x + n

f = make_incrementeur(42)

f(0)

42

f(1)

43

un autre cas drsquoutilisation

pairs = [(1 one) (2 two) (3 three) (4 four)]

pairssort(key=lambda pair pair[1])

pairs

[(4 four) (1 one) (3 three) (2 two)]

Les annotations dans une fonction Les annotations deacutefinissent des messages de preacutesentation

def f(chiken str eggs str = eggs) -gt str remarquer que la fonction est de type STR

print(Annotations f__annotations__)

print(Arguments chiken eggs)

return chiken + and + eggs

f(spam)

Annotations chiken ltclass strgt return ltclass strgt eggs ltclass strgt

Arguments spam eggs

spam and eggslsquo

Base de repreacutesentation des donneacutees

42

Les deacutecorateurs python Notre deacutecorateur

def decorate(func)

print uJe suis dans la fonction decorate et je deacutecore s func__name__

print uExeacutecution de la fonction s func__name__

return func

Fonction cible utiliseacutee avec DECORATOR

decorate

def foobar(args)

print join(args)

Exemple drsquoappel de la fonction

foobar(A B C D)

Je suis dans la fonction decorate et je deacutecore foobar

Exeacutecution de la fonction foobar

A B C D

Il est posible drsquoattribuer plusieurs deacutecorateurs agrave une seule fonction

decorateur1

decorateur2

def ma_fonction()

instructions

Base de repreacutesentation des donneacutees

43

Manipulation des listes a = [6625 333 333 1 12345]

print(acount(333) acount(6625) acount(x))

2 1 0

ainsert(2 -1)

aappend(333)

a

[6625 333 -1 333 1 12345 333]

aindex(333)

1

aremove(333)

a

[6625 -1 333 1 12345 333]

areverse()

a

[333 12345 1 333 -1 6625]

asort()

a

[-1 1 6625 333 333 12345]

apop()

12345

a

[-1 1 6625 333 333]

Base de repreacutesentation des donneacutees

44

Puissance du langage Python Lrsquoensemble des lignes suiantes peut ecirctre compacteacute par ce qui suit

combs = []

for x in [123]

for y in [314]

if x = y

combsappend((x y))

Combs

Ou bien

[(x y) for x in [123] for y in [314] if x = y]

Donne le mecircme reacutesultat

[(1 3) (1 4) (2 3) (2 1) (2 4) (3 1) (3 4)]

Calcul de la valeur de PI arrondie

from math import pi

[str(round(pi i)) for i in range(1 6)]

[31 314 3142 31416 314159]

Geacuteneacuterateur avec utilisation de YIELD

def generateur()

yield a

yield b

yield cldquo

i=generateur()

for v in i

print v

a

b

c

Base de repreacutesentation des donneacutees

45

Les expressions reacuteguliegraveres en python Les expressions reacuteguliegravere sont utiliseacutees pour veacuterifier la conformiteacute des expressions de

chaines de caractegraveres par rapport agrave un motif Les symboles suivants sont utiliseacutes

^ $ + [ ] | ( )

Le point correspond agrave nimporte quel caractegravere

^ Indique un commencement de segment mais signifie aussi contraire de

$ Fin de segment

[xy] Une liste de segment possible Exemple [abc] eacutequivaut agrave a b ou c

(x|y) Indique un choix multiple type (ps|ump) eacutequivaut agrave ps OU UMP

d le segment est composeacute uniquement de chiffre ce qui eacutequivaut agrave [0-9]

D le segment nest pas composeacute de chiffre ce qui eacutequivaut agrave [^0-9]

s Un espace ce qui eacutequivaut agrave [ tnrfv]

S Pas despace ce qui eacutequivaut agrave [^ tnrfv]

w Preacutesence alphanumeacuterique ce qui eacutequivaut agrave [a-zA-Z0-9_]

W Pas de preacutesence alphanumeacuterique [^a-zA-Z0-9_]

Est un caractegravere deacutechappement T2 Le T soit reacutepeacuteteacute 2 fois

TA19 La seacutequence TA doit ecirctre preacutesente de 1 agrave 9 fois

TAM10 La seacutequence TAM nrsquoexiste pas ou reacutepeacuteteacutee 10 fois

LI1 La seacutequence LI doit ecirctre reacutepeacuteteacutee au moins une fois

Base de repreacutesentation des donneacutees

46

Les expressions reacuteguliegraveres en python Utilisation des expressions reacuteguliegravere

import re

print rematch(rGR()S GRIS)

lt_sreSRE_Match object at 0x02019DE0gt

Une utilisation freacutequente consiste en la validation des valeurs des emails saisis

Utilisation des expressions reacuteguliegravere

import re

mails = [lsquomtamaligmailcomrsquorsquoutmbuniv-bechardzrsquo lsquo8freefrrsquo lsquouniv-bechardzrsquo lsquotamalicdtarsquo]

regex = recompile(rrsquo^[a-z0-9_-]+[a-z0-9_-]+[(com|fr|dz)]+rsquo

for mail in mails

if regexmatch(mail) is not None

print Ce mail s est valide mail

else

print Erreur ce mail s est non valide mail

Ce mail mtamaligmailcom est valide

Ce mail utmbuniv-bechardz est valide

Ce mail 8freefr est valide

Erreur ce mail univ-bechardz est non valide

Erreur ce mail tamalicdta est non valide

Base de repreacutesentation des donneacutees

47

Les fichiers Creacuteer lire et eacutecrire dans un fichier en python Utilisation des expressions reacuteguliegravere

fichier = open(donneestxt r)

print fichier

ltopen file lsquodonneestxt mode r at 0x7ff6cf3fe4b0gt

Le descripteur permet de renseigner la machine sur la maniegravere avec laquelle le fichier est utiliseacute

r pour ouverture en mode READ

w pour ouverture en mode WRITE chaque fois le contenu du fichier est eacutecraseacute sinon python le creacutee

a pour ajout lsquoAPPENDrsquo Si le fichier nexiste pas python le creacutee

b Ouverture en mode Binaire

t Ouverture en mode Texte

x creacutee un nouveau fichier et louvrir pour eacutecriture

proceacutedure geacuteneacuterale pour lrsquoutilisation drsquoun fichier

fichier = open(lsquodonneestxtrsquo r)

print fichierread()

fichierclose()

Lrsquoinstruction WITH peut ecirctre utiliseacutee sans besoin de la fonction CLOSE

with open(datatxt r) as fichier

print fichierread()

Base de repreacutesentation des donneacutees

48

49

Le langage Python est un langage script interpreacuteteacute Le programme portant lrsquoune des extension py pyw ou pwc est

structureacute selon le canevas suivant

Les codifications

usrbinpython27

--codingencodage -

Les imports des librairies

Les instructions

Le langage Python passe pour ecirctre exeacutecuteacute sur deux eacutetapes la premiegravere UNE PRECOMPILATION geacuteneacuteration du code

machine et finalement un eacutecriture en code machine exeacutecutable (selon la machine)

Lrsquoenvironnement drsquoexeacutecution des scripts eacutecrits en Python regroupe les avantages des TRADUCTEURS (travaille en ligne par

ligne) et les COMPILATEURS (puissance de la structure algorithmique)

La bibliothegraveque cx_Freeze sert agrave transformer les fichiers scripts Pyhon py en exeacutecutable exe

Structures algorithmique du python

50

51

Matrices amp Systegravemes lineacuteaires

52

53

54

55

56

57

Le calcul scientifique

Reacutefeacuterences L-V Bertallanfy lsquoGeneral System Theoryrsquo Edition MASSON 1972

58

Page 9: Chap XIII : calcul scientifique avec python

Elaboration drsquoun environnement logiciel Python Installation Assistant de lrsquoinstallation de ANACONDA et de PYCHARM

La plateforme ANACONDA = Python Modules LrsquoIDE de programmation PYTHON PyCharm 9

Notre choix

Environnement

Notre choix

De lrsquoIDE

Elaboration drsquoun environnement logiciel Python Personnalisation Sous PyCharm en mode TEREMINAL nous ajoutons

les modules neacutecessaires agrave la plateforme ANACONDA Dans la fenecirctre TERMINAL nous utiliserons CONDA

HPycharmProjectsessaigtconda install mpi4py

Using Anaconda Cloud api site

httpsapianacondaorg

Fetching package metadata

Solving package specifications

Package plan for installation in environment

hAnaconda325

The following packages will be downloaded

package | build

mpi4py-200 | py35_0 264 KB

The following NEW packages will be INSTALLED

mpi4py 200-py35_0 (copy)

Proceed ([y]n) Y

Fetching packages

mpi4py-200-p 100 || Time 00001 16926 kBs

Extracting packages hellip

[COMPLETE]|| 100

Linking packages

[mpi4py]| | 0

[COMPLETE]|| 100

10 Fenecirctre ABOUT

de PyCharm

Ideacutee du jour

Commande

installation modules

Elaboration drsquoun environnement logiciel Python Utilisation Sous PyCharm en mode TEREMINAL nous ajoutons les

modules neacutecessaires agrave la plateforme ANACONDA Caracteacuteristiques du langage script Python

Avantages

bull Tregraves riches librairies pour le calcul scientifique

bull Langage bien structureacute permettant drsquoeacutecrire des

programmes lisibles lsquowe code what we thinkrsquo

bull Drsquoautres librairies hors le cadre du calcul scientifique

(Gestion des services Web Accegraves aux ports seacuterie etc)

bull Graticiel lsquoOpen Sourcersquo derriegravere une large communauteacute

bull Compaciteacute du programme deacuteveloppeacute

bull Beaucoup drsquoalternatives pour lrsquoeacutedition (IDE)

Inconveacutenients

bull Environnement de deacuteveloppement moins

bull Pas tous les algorithmes qui peuvent ecirctre trouveacutes dans le

logiciel

Python peut ecirctre utiliser sous deux modes selon

lrsquointeractiviteacute escompteacutee

1 Commande en ligne

2 Exeacutecution de fichier script py 11 Fenecirctre ABOUT

de PyCharm

Elaboration drsquoun environnement logiciel Python Utilisation Sous PyCharm

Caracteacuteristiques du langage script Python

Python est un langage script informatique geacuteneacuterique et

moderne

bull Langage Python integravegre tous les types de donneacutees

(chaicircne reacuteel int) les controcircles des collections de

donneacutees (listes dictionnaires) et des modegraveles de flux

etc

bull La bibliothegraveque standard integravegre plusieurs Modules

bull Un grand nombre de modules speacutecialiseacutes ou des

applications sont eacutecrites en Python protocoles web

framework web etc Ainsi que le calcul scientifique

- Outils de deacuteveloppement (test automatique geacuteneacuteration de

documentation)

- et encore plushellip

Python peut ecirctre utiliser sous deux modes selon

lrsquointeractiviteacute escompteacutee

1 Commande en ligne

2 Exeacutecution de fichier script py 12

Mode console

Python

Mode

programme (py)

Elaboration drsquoun environnement logiciel Python Utilisation Sous Jupyter Interface WEB pour Python

Cette interface Web est facilement mise en œuvre par son

installation

conda install jupyter (si Anaconda est installeacute)

Ou

pip install jupyter

Le lancement de lrsquointerface est fait en invoquant

Jupiter notebook

Ouvrir le navigateur et entrer lrsquoadresse http1270018888

Pour utiliser un autre PORT autre que 8888

On note http127001Nouveau_Port

Lrsquointerface JUPITER est intuitive et facile agrave utiliser ses

fonctionnaliteacutes sont bull Deacuteploiement sous protocole Internet drsquoaptitude de calcul

Python

bull Toute les possibiliteacutes de gestion des documents lsquoNotebookrsquo

sont offertes

bull Possibiliteacutes drsquoeacutedition non limiteacutees (LaTeX HTML Code hellip)

bull Exeacutecution immeacutediate

bull Compatibiliteacute avec la plupart des langages et scripts de

programmation (CC++ Java JavaScript Julia Python R

Octave hellip)

bull Offre accessibiliteacute agrave Jupyter Drive via Google Drive

bull Options de Reporting avanceacutees (HTML LaTeX PDF)

13

Exemple de

code avec son

exeacutecution

Menu et barre

drsquooutils

Elaboration drsquoun environnement logiciel Python Utilisation Sous Jupyter Interface WEB pour Python

Les notebooks sont accessibles agrave partir de PyCharm Les notebooks sont des solutions de collaboration de preacutefeacuterences

ils integravegrent toute les fonctionnaliteacutes exigeacutees par un chercheur

dans le domaine des sciences humaines ou technologiques

Organisation des documents leur ouverture eacutedition ou mise agrave

jours se fait dans le mecircme endroit sans aucune deacutependance par

rapport agrave la machine puisque les notebooks sont accessible en

ligne (Serveur Ordinateur de bureau ou Peacuteripheacuterique mobile)

Les possibiliteacutes sont eacutetendues ainsi qursquoune documentation

abondante

14

Graphique

3D

Exemple de Code

Python

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse des donneacutees (Panda)

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

15

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse des donneacutees (Panda)

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

import numpy as np

systeme = nparray([[12][3-4]])

valeur=nparray([[3][1]])

sol=nplinalgsolve(systemevaleur)

print(x=sol[00] et y=sol[10])

x= 14 et y= 08

Reacutesolution de systegraveme lineacuteaire AX=b gtgtgt import numpy as np

gtgtgt from scipy import linalg

gtgtgt A = nparray([[1 2] [3 4]])

gtgtgt A

array([[1 2][3 4]])

gtgtgt b = nparray([[5] [6]])

gtgtgt b

array([[5][6]])

gtgtgt linalginv(A)dot(b) slow

array([[-4 ][ 45]])

gtgtgt Adot(linalginv(A)dot(b)) - b Veacuterification array([[888178420e-16][266453526e-15]])

gtgtgt nplinalgsolve(A b) fast

array([[-4 ][ 45]])

gtgtgt Adot(nplinalgsolve(A b)) - b Veacuterification array([[ 0][ 0]])

Importation de la

librairie Numpy

16

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse des donneacutees (Panda)

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

17

import numpy as np

from scipy import signal misc

import matplotlibpyplot as plt

image = miscface(gray=True)astype(npfloat32)

derfilt = nparray([10 -2 10] dtype=npfloat32)

ck = signalcspline2d(image 80)

deriv = (signalsepfir2d(ck derfilt [1]) +signalsepfir2d(ck [1] derfilt))

laplacian = nparray([[010] [1-41] [010]] dtype=npfloat32)

deriv2 = signalconvolve2d(cklaplacianmode=lsquosameboundary=symm)

pltfigure()

pltimshow(image)

pltgray()

plttitle(lsquoImage original)

pltshow()

pltfigure()

pltimshow(deriv)

pltgray()

plttitle(lsquosortie avec filtre spline)

pltshow()

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse des donneacutees (Panda)

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

from matplotlibpyplot import figure hold plot legend draw

from numpy import linspace

import scipystats as stats

from numpyrandom import randn

x = randn(100)

fig = figure()

ax = figadd_subplot(111)

axhist(x bins=30 label=rsquoEmpiricalrsquo)

xlim = axget_xlim()

ylim = axget_ylim()

pdfx = linspace(xlim[0] xlim[1] 200)

pdfy = statsnormpdf(pdfx)

pdfy = pdfy pdfymax() ylim[1]

hold(True)

plot(pdfx pdfy rsquor-rsquo label=rsquoPDFrsquo)

axset_ylim((ylim[0] 12 ylim[1]))

legend()

hold(False)

draw()

18

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse des donneacutees (Panda QtGraph)

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation 19

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Domaines drsquoutilisation

matplotlib inline

from pylab import plot show title xlabel ylabel subplot savefig

from scipy import fft arange ifft

from numpy import sin linspace pi

from scipyiowavfile import readwrite

def plotSpectru(yFs)

n = len(y) lungime semnal

k = arange(n)

T = nFs

frq = kT two sides frequency range

frq = frq[range(n2)] one side frequency range

Y = fft(y)n fft computing and normalization

Y = Y[range(n2)]

plot(frqabs(Y)r) plotting the spectrum

xlabel(Freq (Hz))

ylabel(|Y(freq)|)

Fs = 44100 sampling rate

ratedata=read(fatihawav)

y=data

lungime=len(y)

timp=len(y)44100

t=linspace(0timplen(y))

subplot(211)

plot(ty)

xlabel(Time)

ylabel(Amplitude)

subplot(212)

plotSpectru(yFs)

show()

20

Lecture de la

sourah

Code du traitement

audio

Spectre Amp|Freacuteq

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele (MPI Python)

Theacuteorie des graphes (Networkx)

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

21 Exemple

de graphe

Fenecirctre Aperccedilu

du bloc-note

Importation de la

librairie NetworkX

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

import RPiGPIO as GPIO

GPIOsetmode(GPIOBCM) set board mode to Broadcom

GPIOsetup(17 GPIOOUT) set up pin 17

GPIOsetup(18 GPIOOUT) set up pin 18

GPIOoutput(17 1) turn on pin 17

GPIOoutput(18 1) turn on pin 18

Importation

librairie GPIO

Module

Galileo Gen 2

Module

RaspBerry PI 3

22

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D (Python CAD FreeCAD)

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

23

from OCCSTEPControl import STEPControl_Reader

from OCCIFSelect import IFSelect_RetDone IFSelect_ItemsByEntity

from OCCDisplaySimpleGui import init_display

step_reader = STEPControl_Reader()

status = step_readerReadFile(modelswind_turbinestp)

if status == IFSelect_RetDone check status

failsonly = False

step_readerPrintCheckLoad(failsonly IFSelect_ItemsByEntity)

step_readerPrintCheckTransfer(failsonly IFSelect_ItemsByEntity)

ok = step_readerTransferRoot(1)

_nbs = step_readerNbShapes()

aResShape = step_readerShape(1)

else

print(Error cant read file)

sysexit(0)

display start_display add_menu add_function_to_menu = init_display()

displayDisplayShape(aResShape update=True)

start_display()

Importation

librairie OCC

Maillage Dauphin

Rendu du macirct drsquoun

aeacuterogeacuteneacuterateur

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D (Python CAD FreeCAD)

Bioinformatique et manipulation du geacutenome

POO avec Python (Programmation

Orienteacutee Objet) Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

class Rocket()

Rocket simule une roquette pour un jeu

ou une simulation de physique

def __init__(self)

Each rocket has an (xy) position

selfx = 0

selfy = 0

def move_up(self)

Increacutementation de la position y de la roquette

selfy += 1

Deacutefinir une ensemble de 5 roquettes les stocker dans une liste

my_rockets = []

for x in range(05)

new_rocket = Rocket()

my_rocketsappend(new_rocket)

A remarquer que chaque roquette est un objet agrave part entiegravere

for rocket in my_rockets

print(rocket)

Deacutefinition drsquoune

nouvelle Classe

Instantiation

Meacutethode Constructeur

__init__

24

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D (Python CAD FreeCAD)

Bioinformatique et manipulation

du geacutenome Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

25

from Bio import SeqIO

for seq_record in SeqIOparse(ls_orchidgbk genbank)

print(seq_recordid)

print(repr(seq_recordseq))

print(len(seq_record))

Z785331

Seq(CGTAACAAGGTTTCCGTAGGTGAACCTGCGGAAGGATCATTGATGAGACCGTGGCGC

IUPACAmbiguousDNA())

740

Z784391

Seq(CATTGTTGAGATCACATAATAATTGATCGAGTTAATCTGGAGGATCTGTTTACTGCC

IUPACAmbiguousDNA())

592

Sinon dans une Terminal Python

gtgtgt from BioSeq import Seq

gtgtgt from BioAlphabet import generic_dna

gtgtgt gene = Seq(GTGAAAAAGATGCAATCTATCGTACTCGCACTTTCCCTGGTTCTGGTCGCTCCCATGGCA +

GCACAGGCTGCGGAAATTACGTTAGTCCCGTCAGTAAAATTACAGATAGGCGATCGTGAT +

AATCGTGGCTATTACTGGGATGGAGGTCACTGGCGCGACCACGGCTGGTGGAAACAACAT +

TATGAATGGCGAGGCAATCGCTGGCACCTACACGGACCGCCGCCACCGCCGCGCCACCAT +

AAGAAAGCTCCTCATGATCATCACGGCGGTCATGGTCCAGGCAAACATCACCGCTAA

generic_dna)

gtgtgt genetranslate(table=Bacterial)

Seq(VKKMQSIVLALSLVLVAPMAAQAAEITLVPSVKLQIGDRDNRGYYWDGGHWRDHHR

HasStopCodon(ExtendedIUPACProtein() )

gtgtgt genetranslate(table=Bacterial to_stop=True)

Seq(VKKMQSIVLALSLVLVAPMAAQAAEITLVPSVKLQIGDRDNRGYYWDGGHWRDHHHR

ExtendedIUPACProtein())

Logo de

BioPython Seacutequence drsquoADN

Importation

librairie BIO

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D (Python CAD FreeCAD)

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

26

Installer agrave partir de PyPI

$ pip install mezzanine

Instantier un projet

$ mezzanine-project monproject

$ cd monproject

Instantier une Base de donneacutees

$ python managepy createdb

Lancer le serveur Web

$ python managepy runserver

Installation en mode

commande

URL du site instantieacute

Version Mobile Menu

Version Administration

Sites Web fait avec

Mezzanine

Version Normal

Les environnements de deacuteveloppement inteacutegreacutes de code Python sont nombreux des solutions proprieacutetaires agrave celles portant le

label GPL

Ils sont de trois grandes cateacutegories

Les applications bureaux (Desktop)

Les consoles de commande en ligne Les interfaces orienteacutees Web

Outils drsquoeacutelaboration de code Python (IDE)

27

Les environnements de deacuteveloppement inteacutegreacutes de code Python sont nombreux des solutions proprieacutetaires agrave celles portant le

label GPL Ils sont de trois grandes cateacutegories

Les applications bureaux (Desktop)

Les consoles de commande en ligne

Les interfaces orienteacutees Web

Outils drsquoeacutelaboration de code Python (IDE)

28

Les environnements de deacuteveloppement inteacutegreacutes de code Python sont nombreux des solutions proprieacutetaires agrave celles portant le

label GPL Ils sont de trois grandes cateacutegories

Les applications bureaux (Desktop)

Les consoles de commande en ligne

Les interfaces orienteacutees Web

Outils drsquoeacutelaboration de code Python (IDE)

29

30

Nom de Symbole Les noms de variables en Python peuvent contenir des caractegraveres alphanumeacuteriques a-z A-Z 0-

9 et certains caractegraveres speacuteciaux tel que _ Les noms de variables normales doivent commencer par une lettre

Par convention les noms de variables commencent par une lettre minuscule et les noms de classe commencent par

une lettre majuscule En outre il y a un certain nombre de mots-cleacutes Python qui ne peuvent pas ecirctre utiliseacutes comme

noms de variables Ces mots-cleacutes sont les suivants

and as assert break class continue def del elif else except exec finally for from global if import in

is lambda not or pass print raise return try while with yield

Affectation assignment de variable

x = 10

my_variable = 122

type(x) fonction TYPE retourne le type de la variable entre parenthegravese

builtinsfloat

Verification de type x = 10

veacuterifier si la variable est reacuteelle

type(x) is float

isinstance(x float)

True

z = complex(x)

print(z type(z))

(1+0j) ltclass complexlsquogt

Base de repreacutesentation des donneacutees

31

Operateurs et comparaisons Opeacuterateurs arithmeacutetiques + - (division entiegravere) puissance

30 20

10

NB operators puissance en python nrsquoest pas ^ mais

2 2

4

Les opeacuterateurs de comparaison sont gtltgt=lt===

objects identiques

x1 = x2 = [12]

x1 is x2

True

2 gt= 2 2 lt= 2

(True True)

Chaines de caractegraveres les liste et les dictionnaires s = Hello world

type(s)

builtinsstr

length of the string the number of characters

len(s)

11

replace a substring in a string with somethign else

s2 = sreplace(world test)

print(s2)

Hello test

s[0]

H

Base de repreacutesentation des donneacutees

32

Chaines de caractegraveres les liste et les dictionnaires s = Hello worldldquo

replace a substring in a string with somethign else

s2 = sreplace(world test)

Hello test

print(s2)

s[05]

Hellolsquo

s[05]

Hellolsquo

s[]

Hello worldlsquo

print(value = f 10) Formatage C des variables

value = 1000000

s2 = value1 = 2f value2 = d (31415 15)

print(s2)

value1 = 314 value2 = 1

Listes l = [1234]

print(type(l))

print(l)

ltclass listgt

[1 2 3 4]

l = [1 a 10 1-1j] peuvent ecirctre heacuteteacuterogegravene

print(l)

[1 a 10 (1-1j)]

Base de repreacutesentation des donneacutees

33

Listes start = 10

stop = 30

step = 2

range(start stop step)

range(10 30 2)

list(range(start stop step))

[10 12 14 16 18 20 22 24 26 28]

s2 = list(s)

S2

[H e l l o w o r l d]

Tri de la liste

s2sort()

print(s2)

[ H d e l l l o o r w]

l = []

lappend(A)

lappend(d)

lappend(d)

print(l)

[A d d]

Tuples Ce sont des variables comme les listes mais pas alteacuterables

point = (10 20)

print(point type(point))

(10 20) ltclass tuplegt

Base de repreacutesentation des donneacutees

34

Tuples x y = point

print(x = x)

print(y = y)

x = 10

y = 20

Dictionaries params = parameter1 10 parameter2 20 parameter3 30

print(type(params))

print(params)

ltclass dictgt

fparameter2 20 parameter3 30 parameter1 10

params[parameter1] = A

params[parameter2] = B

Ajouter une nouvelle entreacutee

params[parameter4] = D

print(paramegravetre = + str(params[parameter1]))

print(paramegravetre = + str(params[parameter2]))

print(paramegravetre = + str(params[parameter3]))

print(paramegravetre = + str(params[parameter4]))

paramegravetre = A

paramegravetre = B

paramegravetre = 30

paramegravetre = D

Base de repreacutesentation des donneacutees

35

36

Affectation amp Controcircle conditionnel de flue statement1 = False Crsquoest une affectation

statement2 = False

if statement1 Test valideacute condition (statement1) est VRAIE

print(statement1 is True)

elif statement2 Exeacutecuteacutee condition (statement2) est VRAIE

print(statement2 is True)

else Exeacutecuteacutee sinon

print(statement1 and statement2 are False)

Boucles for x in [123] [123] peut ecirctre deacutesigneacute par range(3) avec print(x+1)

print(x)

1

2

3

for word in [scientific computing with python]

print(word) condition de reacutepeacutetition deacutependante du contenu de la liste

scientific

computing

with

python

l1 = [x2 for x in range(05)] agrave remarquer la compaciteacute du Python

print(l1)

[0 1 4 9 16]

Base de repreacutesentation des donneacutees

37

Boucles var = 0

while var = 1

print jlsquoeacutecris mon programme ici

choix = raw_input(voulez vous recommencer ( on ) )

if choix == n

var = 1

else

lsquovous allez ecirctre renvoyeacute au deacutebut du programmersquo

X = y 2

while x gt 1

If y x == 0

print y lsquo est facteur de rsquo x

break

x -= 1

else

print y lsquo est premierlsquo

Lrsquoutilisation de zip et map peut srsquoaveacutereacutee encore plus efficace

l1 = [1 2 3]

l2 = [4 5 6]

for (x y) in zip(l1 l2)

print x y -- x + y

1 4 -- 5

2 5 -- 7

3 6 -- 9

Base de repreacutesentation des donneacutees

38

s=0123456789

print map(int s)

[0 1 2 3 4 5 6 7 8 9]

Utilisation et

puissance de MAP

Utilisation de ZIP

Intervales range(start stop step)

range(5 10)

5 jusqursquoagrave 10 (exclue) avec un pas de 1

range(0 10 3)

0 3 6 9

range(-10 -100 -30)

-10 -40 -70

Test conditionnel binaire x = 5

y = 10

if x gt y

print(x est grand que y)

else

print(ldquox nrsquoest pas grand que yrdquo)

Dans Python on peut compliquer les chose

x = 5

y = 10

Z = 12

if z gt x gt y

print(lsquoy est petit que x et x est petit que z)

Base de repreacutesentation des donneacutees

39

Boucle avec test conditionnel binaire break continue et else dans une boucle for

for n in range(2 10)

for x in range(2 n)

if n x == 0

print(n lsquoest eacutegal agrave x nx)

break

else

print(n lsquoest premier)

Utilisation de lrsquoinstruction continue

for num in range(2 10)

if num 2 == 0 le symbole deacutesigne lrsquoopeacuteration RESTE de la division

print(ldquoNombre paire trouveacute num)

continue

print(ldquoNombre non premier num)

Base de repreacutesentation des donneacutees

40

Deacutefinition de fonction (proceacutedure avec retour) def fib(n) Ecrire la suite de Fibonacci jusqursquoagrave n

a b = 0 1

while a lt n

print(a end= )

a b = b a+b

print()

fib(2000)

0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597

f = fib deacutesignation par reacutefeacuterence f agrave la fonction fib

f(100)

0 1 1 2 3 5 8 13 21 34 55 89

autre type de deacutefinition de fonction

def ask_ok(prompt retries=4 complaint=Oui or Non srsquoil vou plait )

while True

ok = input(prompt)

if ok in (lsquoo lsquooui lsquoOui)

return True

if ok in (lsquon no non lsquoNon)

return False

retries = retries - 1

if retries lt 0

raise OSError(lsquoUtilisateur non coopeacuteratif)

print(complaint)

Base de repreacutesentation des donneacutees

41

Lrsquoinstruction lambda def make_incrementeur(n)

return lambda x x + n

f = make_incrementeur(42)

f(0)

42

f(1)

43

un autre cas drsquoutilisation

pairs = [(1 one) (2 two) (3 three) (4 four)]

pairssort(key=lambda pair pair[1])

pairs

[(4 four) (1 one) (3 three) (2 two)]

Les annotations dans une fonction Les annotations deacutefinissent des messages de preacutesentation

def f(chiken str eggs str = eggs) -gt str remarquer que la fonction est de type STR

print(Annotations f__annotations__)

print(Arguments chiken eggs)

return chiken + and + eggs

f(spam)

Annotations chiken ltclass strgt return ltclass strgt eggs ltclass strgt

Arguments spam eggs

spam and eggslsquo

Base de repreacutesentation des donneacutees

42

Les deacutecorateurs python Notre deacutecorateur

def decorate(func)

print uJe suis dans la fonction decorate et je deacutecore s func__name__

print uExeacutecution de la fonction s func__name__

return func

Fonction cible utiliseacutee avec DECORATOR

decorate

def foobar(args)

print join(args)

Exemple drsquoappel de la fonction

foobar(A B C D)

Je suis dans la fonction decorate et je deacutecore foobar

Exeacutecution de la fonction foobar

A B C D

Il est posible drsquoattribuer plusieurs deacutecorateurs agrave une seule fonction

decorateur1

decorateur2

def ma_fonction()

instructions

Base de repreacutesentation des donneacutees

43

Manipulation des listes a = [6625 333 333 1 12345]

print(acount(333) acount(6625) acount(x))

2 1 0

ainsert(2 -1)

aappend(333)

a

[6625 333 -1 333 1 12345 333]

aindex(333)

1

aremove(333)

a

[6625 -1 333 1 12345 333]

areverse()

a

[333 12345 1 333 -1 6625]

asort()

a

[-1 1 6625 333 333 12345]

apop()

12345

a

[-1 1 6625 333 333]

Base de repreacutesentation des donneacutees

44

Puissance du langage Python Lrsquoensemble des lignes suiantes peut ecirctre compacteacute par ce qui suit

combs = []

for x in [123]

for y in [314]

if x = y

combsappend((x y))

Combs

Ou bien

[(x y) for x in [123] for y in [314] if x = y]

Donne le mecircme reacutesultat

[(1 3) (1 4) (2 3) (2 1) (2 4) (3 1) (3 4)]

Calcul de la valeur de PI arrondie

from math import pi

[str(round(pi i)) for i in range(1 6)]

[31 314 3142 31416 314159]

Geacuteneacuterateur avec utilisation de YIELD

def generateur()

yield a

yield b

yield cldquo

i=generateur()

for v in i

print v

a

b

c

Base de repreacutesentation des donneacutees

45

Les expressions reacuteguliegraveres en python Les expressions reacuteguliegravere sont utiliseacutees pour veacuterifier la conformiteacute des expressions de

chaines de caractegraveres par rapport agrave un motif Les symboles suivants sont utiliseacutes

^ $ + [ ] | ( )

Le point correspond agrave nimporte quel caractegravere

^ Indique un commencement de segment mais signifie aussi contraire de

$ Fin de segment

[xy] Une liste de segment possible Exemple [abc] eacutequivaut agrave a b ou c

(x|y) Indique un choix multiple type (ps|ump) eacutequivaut agrave ps OU UMP

d le segment est composeacute uniquement de chiffre ce qui eacutequivaut agrave [0-9]

D le segment nest pas composeacute de chiffre ce qui eacutequivaut agrave [^0-9]

s Un espace ce qui eacutequivaut agrave [ tnrfv]

S Pas despace ce qui eacutequivaut agrave [^ tnrfv]

w Preacutesence alphanumeacuterique ce qui eacutequivaut agrave [a-zA-Z0-9_]

W Pas de preacutesence alphanumeacuterique [^a-zA-Z0-9_]

Est un caractegravere deacutechappement T2 Le T soit reacutepeacuteteacute 2 fois

TA19 La seacutequence TA doit ecirctre preacutesente de 1 agrave 9 fois

TAM10 La seacutequence TAM nrsquoexiste pas ou reacutepeacuteteacutee 10 fois

LI1 La seacutequence LI doit ecirctre reacutepeacuteteacutee au moins une fois

Base de repreacutesentation des donneacutees

46

Les expressions reacuteguliegraveres en python Utilisation des expressions reacuteguliegravere

import re

print rematch(rGR()S GRIS)

lt_sreSRE_Match object at 0x02019DE0gt

Une utilisation freacutequente consiste en la validation des valeurs des emails saisis

Utilisation des expressions reacuteguliegravere

import re

mails = [lsquomtamaligmailcomrsquorsquoutmbuniv-bechardzrsquo lsquo8freefrrsquo lsquouniv-bechardzrsquo lsquotamalicdtarsquo]

regex = recompile(rrsquo^[a-z0-9_-]+[a-z0-9_-]+[(com|fr|dz)]+rsquo

for mail in mails

if regexmatch(mail) is not None

print Ce mail s est valide mail

else

print Erreur ce mail s est non valide mail

Ce mail mtamaligmailcom est valide

Ce mail utmbuniv-bechardz est valide

Ce mail 8freefr est valide

Erreur ce mail univ-bechardz est non valide

Erreur ce mail tamalicdta est non valide

Base de repreacutesentation des donneacutees

47

Les fichiers Creacuteer lire et eacutecrire dans un fichier en python Utilisation des expressions reacuteguliegravere

fichier = open(donneestxt r)

print fichier

ltopen file lsquodonneestxt mode r at 0x7ff6cf3fe4b0gt

Le descripteur permet de renseigner la machine sur la maniegravere avec laquelle le fichier est utiliseacute

r pour ouverture en mode READ

w pour ouverture en mode WRITE chaque fois le contenu du fichier est eacutecraseacute sinon python le creacutee

a pour ajout lsquoAPPENDrsquo Si le fichier nexiste pas python le creacutee

b Ouverture en mode Binaire

t Ouverture en mode Texte

x creacutee un nouveau fichier et louvrir pour eacutecriture

proceacutedure geacuteneacuterale pour lrsquoutilisation drsquoun fichier

fichier = open(lsquodonneestxtrsquo r)

print fichierread()

fichierclose()

Lrsquoinstruction WITH peut ecirctre utiliseacutee sans besoin de la fonction CLOSE

with open(datatxt r) as fichier

print fichierread()

Base de repreacutesentation des donneacutees

48

49

Le langage Python est un langage script interpreacuteteacute Le programme portant lrsquoune des extension py pyw ou pwc est

structureacute selon le canevas suivant

Les codifications

usrbinpython27

--codingencodage -

Les imports des librairies

Les instructions

Le langage Python passe pour ecirctre exeacutecuteacute sur deux eacutetapes la premiegravere UNE PRECOMPILATION geacuteneacuteration du code

machine et finalement un eacutecriture en code machine exeacutecutable (selon la machine)

Lrsquoenvironnement drsquoexeacutecution des scripts eacutecrits en Python regroupe les avantages des TRADUCTEURS (travaille en ligne par

ligne) et les COMPILATEURS (puissance de la structure algorithmique)

La bibliothegraveque cx_Freeze sert agrave transformer les fichiers scripts Pyhon py en exeacutecutable exe

Structures algorithmique du python

50

51

Matrices amp Systegravemes lineacuteaires

52

53

54

55

56

57

Le calcul scientifique

Reacutefeacuterences L-V Bertallanfy lsquoGeneral System Theoryrsquo Edition MASSON 1972

58

Page 10: Chap XIII : calcul scientifique avec python

Elaboration drsquoun environnement logiciel Python Personnalisation Sous PyCharm en mode TEREMINAL nous ajoutons

les modules neacutecessaires agrave la plateforme ANACONDA Dans la fenecirctre TERMINAL nous utiliserons CONDA

HPycharmProjectsessaigtconda install mpi4py

Using Anaconda Cloud api site

httpsapianacondaorg

Fetching package metadata

Solving package specifications

Package plan for installation in environment

hAnaconda325

The following packages will be downloaded

package | build

mpi4py-200 | py35_0 264 KB

The following NEW packages will be INSTALLED

mpi4py 200-py35_0 (copy)

Proceed ([y]n) Y

Fetching packages

mpi4py-200-p 100 || Time 00001 16926 kBs

Extracting packages hellip

[COMPLETE]|| 100

Linking packages

[mpi4py]| | 0

[COMPLETE]|| 100

10 Fenecirctre ABOUT

de PyCharm

Ideacutee du jour

Commande

installation modules

Elaboration drsquoun environnement logiciel Python Utilisation Sous PyCharm en mode TEREMINAL nous ajoutons les

modules neacutecessaires agrave la plateforme ANACONDA Caracteacuteristiques du langage script Python

Avantages

bull Tregraves riches librairies pour le calcul scientifique

bull Langage bien structureacute permettant drsquoeacutecrire des

programmes lisibles lsquowe code what we thinkrsquo

bull Drsquoautres librairies hors le cadre du calcul scientifique

(Gestion des services Web Accegraves aux ports seacuterie etc)

bull Graticiel lsquoOpen Sourcersquo derriegravere une large communauteacute

bull Compaciteacute du programme deacuteveloppeacute

bull Beaucoup drsquoalternatives pour lrsquoeacutedition (IDE)

Inconveacutenients

bull Environnement de deacuteveloppement moins

bull Pas tous les algorithmes qui peuvent ecirctre trouveacutes dans le

logiciel

Python peut ecirctre utiliser sous deux modes selon

lrsquointeractiviteacute escompteacutee

1 Commande en ligne

2 Exeacutecution de fichier script py 11 Fenecirctre ABOUT

de PyCharm

Elaboration drsquoun environnement logiciel Python Utilisation Sous PyCharm

Caracteacuteristiques du langage script Python

Python est un langage script informatique geacuteneacuterique et

moderne

bull Langage Python integravegre tous les types de donneacutees

(chaicircne reacuteel int) les controcircles des collections de

donneacutees (listes dictionnaires) et des modegraveles de flux

etc

bull La bibliothegraveque standard integravegre plusieurs Modules

bull Un grand nombre de modules speacutecialiseacutes ou des

applications sont eacutecrites en Python protocoles web

framework web etc Ainsi que le calcul scientifique

- Outils de deacuteveloppement (test automatique geacuteneacuteration de

documentation)

- et encore plushellip

Python peut ecirctre utiliser sous deux modes selon

lrsquointeractiviteacute escompteacutee

1 Commande en ligne

2 Exeacutecution de fichier script py 12

Mode console

Python

Mode

programme (py)

Elaboration drsquoun environnement logiciel Python Utilisation Sous Jupyter Interface WEB pour Python

Cette interface Web est facilement mise en œuvre par son

installation

conda install jupyter (si Anaconda est installeacute)

Ou

pip install jupyter

Le lancement de lrsquointerface est fait en invoquant

Jupiter notebook

Ouvrir le navigateur et entrer lrsquoadresse http1270018888

Pour utiliser un autre PORT autre que 8888

On note http127001Nouveau_Port

Lrsquointerface JUPITER est intuitive et facile agrave utiliser ses

fonctionnaliteacutes sont bull Deacuteploiement sous protocole Internet drsquoaptitude de calcul

Python

bull Toute les possibiliteacutes de gestion des documents lsquoNotebookrsquo

sont offertes

bull Possibiliteacutes drsquoeacutedition non limiteacutees (LaTeX HTML Code hellip)

bull Exeacutecution immeacutediate

bull Compatibiliteacute avec la plupart des langages et scripts de

programmation (CC++ Java JavaScript Julia Python R

Octave hellip)

bull Offre accessibiliteacute agrave Jupyter Drive via Google Drive

bull Options de Reporting avanceacutees (HTML LaTeX PDF)

13

Exemple de

code avec son

exeacutecution

Menu et barre

drsquooutils

Elaboration drsquoun environnement logiciel Python Utilisation Sous Jupyter Interface WEB pour Python

Les notebooks sont accessibles agrave partir de PyCharm Les notebooks sont des solutions de collaboration de preacutefeacuterences

ils integravegrent toute les fonctionnaliteacutes exigeacutees par un chercheur

dans le domaine des sciences humaines ou technologiques

Organisation des documents leur ouverture eacutedition ou mise agrave

jours se fait dans le mecircme endroit sans aucune deacutependance par

rapport agrave la machine puisque les notebooks sont accessible en

ligne (Serveur Ordinateur de bureau ou Peacuteripheacuterique mobile)

Les possibiliteacutes sont eacutetendues ainsi qursquoune documentation

abondante

14

Graphique

3D

Exemple de Code

Python

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse des donneacutees (Panda)

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

15

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse des donneacutees (Panda)

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

import numpy as np

systeme = nparray([[12][3-4]])

valeur=nparray([[3][1]])

sol=nplinalgsolve(systemevaleur)

print(x=sol[00] et y=sol[10])

x= 14 et y= 08

Reacutesolution de systegraveme lineacuteaire AX=b gtgtgt import numpy as np

gtgtgt from scipy import linalg

gtgtgt A = nparray([[1 2] [3 4]])

gtgtgt A

array([[1 2][3 4]])

gtgtgt b = nparray([[5] [6]])

gtgtgt b

array([[5][6]])

gtgtgt linalginv(A)dot(b) slow

array([[-4 ][ 45]])

gtgtgt Adot(linalginv(A)dot(b)) - b Veacuterification array([[888178420e-16][266453526e-15]])

gtgtgt nplinalgsolve(A b) fast

array([[-4 ][ 45]])

gtgtgt Adot(nplinalgsolve(A b)) - b Veacuterification array([[ 0][ 0]])

Importation de la

librairie Numpy

16

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse des donneacutees (Panda)

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

17

import numpy as np

from scipy import signal misc

import matplotlibpyplot as plt

image = miscface(gray=True)astype(npfloat32)

derfilt = nparray([10 -2 10] dtype=npfloat32)

ck = signalcspline2d(image 80)

deriv = (signalsepfir2d(ck derfilt [1]) +signalsepfir2d(ck [1] derfilt))

laplacian = nparray([[010] [1-41] [010]] dtype=npfloat32)

deriv2 = signalconvolve2d(cklaplacianmode=lsquosameboundary=symm)

pltfigure()

pltimshow(image)

pltgray()

plttitle(lsquoImage original)

pltshow()

pltfigure()

pltimshow(deriv)

pltgray()

plttitle(lsquosortie avec filtre spline)

pltshow()

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse des donneacutees (Panda)

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

from matplotlibpyplot import figure hold plot legend draw

from numpy import linspace

import scipystats as stats

from numpyrandom import randn

x = randn(100)

fig = figure()

ax = figadd_subplot(111)

axhist(x bins=30 label=rsquoEmpiricalrsquo)

xlim = axget_xlim()

ylim = axget_ylim()

pdfx = linspace(xlim[0] xlim[1] 200)

pdfy = statsnormpdf(pdfx)

pdfy = pdfy pdfymax() ylim[1]

hold(True)

plot(pdfx pdfy rsquor-rsquo label=rsquoPDFrsquo)

axset_ylim((ylim[0] 12 ylim[1]))

legend()

hold(False)

draw()

18

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse des donneacutees (Panda QtGraph)

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation 19

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Domaines drsquoutilisation

matplotlib inline

from pylab import plot show title xlabel ylabel subplot savefig

from scipy import fft arange ifft

from numpy import sin linspace pi

from scipyiowavfile import readwrite

def plotSpectru(yFs)

n = len(y) lungime semnal

k = arange(n)

T = nFs

frq = kT two sides frequency range

frq = frq[range(n2)] one side frequency range

Y = fft(y)n fft computing and normalization

Y = Y[range(n2)]

plot(frqabs(Y)r) plotting the spectrum

xlabel(Freq (Hz))

ylabel(|Y(freq)|)

Fs = 44100 sampling rate

ratedata=read(fatihawav)

y=data

lungime=len(y)

timp=len(y)44100

t=linspace(0timplen(y))

subplot(211)

plot(ty)

xlabel(Time)

ylabel(Amplitude)

subplot(212)

plotSpectru(yFs)

show()

20

Lecture de la

sourah

Code du traitement

audio

Spectre Amp|Freacuteq

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele (MPI Python)

Theacuteorie des graphes (Networkx)

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

21 Exemple

de graphe

Fenecirctre Aperccedilu

du bloc-note

Importation de la

librairie NetworkX

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

import RPiGPIO as GPIO

GPIOsetmode(GPIOBCM) set board mode to Broadcom

GPIOsetup(17 GPIOOUT) set up pin 17

GPIOsetup(18 GPIOOUT) set up pin 18

GPIOoutput(17 1) turn on pin 17

GPIOoutput(18 1) turn on pin 18

Importation

librairie GPIO

Module

Galileo Gen 2

Module

RaspBerry PI 3

22

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D (Python CAD FreeCAD)

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

23

from OCCSTEPControl import STEPControl_Reader

from OCCIFSelect import IFSelect_RetDone IFSelect_ItemsByEntity

from OCCDisplaySimpleGui import init_display

step_reader = STEPControl_Reader()

status = step_readerReadFile(modelswind_turbinestp)

if status == IFSelect_RetDone check status

failsonly = False

step_readerPrintCheckLoad(failsonly IFSelect_ItemsByEntity)

step_readerPrintCheckTransfer(failsonly IFSelect_ItemsByEntity)

ok = step_readerTransferRoot(1)

_nbs = step_readerNbShapes()

aResShape = step_readerShape(1)

else

print(Error cant read file)

sysexit(0)

display start_display add_menu add_function_to_menu = init_display()

displayDisplayShape(aResShape update=True)

start_display()

Importation

librairie OCC

Maillage Dauphin

Rendu du macirct drsquoun

aeacuterogeacuteneacuterateur

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D (Python CAD FreeCAD)

Bioinformatique et manipulation du geacutenome

POO avec Python (Programmation

Orienteacutee Objet) Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

class Rocket()

Rocket simule une roquette pour un jeu

ou une simulation de physique

def __init__(self)

Each rocket has an (xy) position

selfx = 0

selfy = 0

def move_up(self)

Increacutementation de la position y de la roquette

selfy += 1

Deacutefinir une ensemble de 5 roquettes les stocker dans une liste

my_rockets = []

for x in range(05)

new_rocket = Rocket()

my_rocketsappend(new_rocket)

A remarquer que chaque roquette est un objet agrave part entiegravere

for rocket in my_rockets

print(rocket)

Deacutefinition drsquoune

nouvelle Classe

Instantiation

Meacutethode Constructeur

__init__

24

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D (Python CAD FreeCAD)

Bioinformatique et manipulation

du geacutenome Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

25

from Bio import SeqIO

for seq_record in SeqIOparse(ls_orchidgbk genbank)

print(seq_recordid)

print(repr(seq_recordseq))

print(len(seq_record))

Z785331

Seq(CGTAACAAGGTTTCCGTAGGTGAACCTGCGGAAGGATCATTGATGAGACCGTGGCGC

IUPACAmbiguousDNA())

740

Z784391

Seq(CATTGTTGAGATCACATAATAATTGATCGAGTTAATCTGGAGGATCTGTTTACTGCC

IUPACAmbiguousDNA())

592

Sinon dans une Terminal Python

gtgtgt from BioSeq import Seq

gtgtgt from BioAlphabet import generic_dna

gtgtgt gene = Seq(GTGAAAAAGATGCAATCTATCGTACTCGCACTTTCCCTGGTTCTGGTCGCTCCCATGGCA +

GCACAGGCTGCGGAAATTACGTTAGTCCCGTCAGTAAAATTACAGATAGGCGATCGTGAT +

AATCGTGGCTATTACTGGGATGGAGGTCACTGGCGCGACCACGGCTGGTGGAAACAACAT +

TATGAATGGCGAGGCAATCGCTGGCACCTACACGGACCGCCGCCACCGCCGCGCCACCAT +

AAGAAAGCTCCTCATGATCATCACGGCGGTCATGGTCCAGGCAAACATCACCGCTAA

generic_dna)

gtgtgt genetranslate(table=Bacterial)

Seq(VKKMQSIVLALSLVLVAPMAAQAAEITLVPSVKLQIGDRDNRGYYWDGGHWRDHHR

HasStopCodon(ExtendedIUPACProtein() )

gtgtgt genetranslate(table=Bacterial to_stop=True)

Seq(VKKMQSIVLALSLVLVAPMAAQAAEITLVPSVKLQIGDRDNRGYYWDGGHWRDHHHR

ExtendedIUPACProtein())

Logo de

BioPython Seacutequence drsquoADN

Importation

librairie BIO

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D (Python CAD FreeCAD)

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

26

Installer agrave partir de PyPI

$ pip install mezzanine

Instantier un projet

$ mezzanine-project monproject

$ cd monproject

Instantier une Base de donneacutees

$ python managepy createdb

Lancer le serveur Web

$ python managepy runserver

Installation en mode

commande

URL du site instantieacute

Version Mobile Menu

Version Administration

Sites Web fait avec

Mezzanine

Version Normal

Les environnements de deacuteveloppement inteacutegreacutes de code Python sont nombreux des solutions proprieacutetaires agrave celles portant le

label GPL

Ils sont de trois grandes cateacutegories

Les applications bureaux (Desktop)

Les consoles de commande en ligne Les interfaces orienteacutees Web

Outils drsquoeacutelaboration de code Python (IDE)

27

Les environnements de deacuteveloppement inteacutegreacutes de code Python sont nombreux des solutions proprieacutetaires agrave celles portant le

label GPL Ils sont de trois grandes cateacutegories

Les applications bureaux (Desktop)

Les consoles de commande en ligne

Les interfaces orienteacutees Web

Outils drsquoeacutelaboration de code Python (IDE)

28

Les environnements de deacuteveloppement inteacutegreacutes de code Python sont nombreux des solutions proprieacutetaires agrave celles portant le

label GPL Ils sont de trois grandes cateacutegories

Les applications bureaux (Desktop)

Les consoles de commande en ligne

Les interfaces orienteacutees Web

Outils drsquoeacutelaboration de code Python (IDE)

29

30

Nom de Symbole Les noms de variables en Python peuvent contenir des caractegraveres alphanumeacuteriques a-z A-Z 0-

9 et certains caractegraveres speacuteciaux tel que _ Les noms de variables normales doivent commencer par une lettre

Par convention les noms de variables commencent par une lettre minuscule et les noms de classe commencent par

une lettre majuscule En outre il y a un certain nombre de mots-cleacutes Python qui ne peuvent pas ecirctre utiliseacutes comme

noms de variables Ces mots-cleacutes sont les suivants

and as assert break class continue def del elif else except exec finally for from global if import in

is lambda not or pass print raise return try while with yield

Affectation assignment de variable

x = 10

my_variable = 122

type(x) fonction TYPE retourne le type de la variable entre parenthegravese

builtinsfloat

Verification de type x = 10

veacuterifier si la variable est reacuteelle

type(x) is float

isinstance(x float)

True

z = complex(x)

print(z type(z))

(1+0j) ltclass complexlsquogt

Base de repreacutesentation des donneacutees

31

Operateurs et comparaisons Opeacuterateurs arithmeacutetiques + - (division entiegravere) puissance

30 20

10

NB operators puissance en python nrsquoest pas ^ mais

2 2

4

Les opeacuterateurs de comparaison sont gtltgt=lt===

objects identiques

x1 = x2 = [12]

x1 is x2

True

2 gt= 2 2 lt= 2

(True True)

Chaines de caractegraveres les liste et les dictionnaires s = Hello world

type(s)

builtinsstr

length of the string the number of characters

len(s)

11

replace a substring in a string with somethign else

s2 = sreplace(world test)

print(s2)

Hello test

s[0]

H

Base de repreacutesentation des donneacutees

32

Chaines de caractegraveres les liste et les dictionnaires s = Hello worldldquo

replace a substring in a string with somethign else

s2 = sreplace(world test)

Hello test

print(s2)

s[05]

Hellolsquo

s[05]

Hellolsquo

s[]

Hello worldlsquo

print(value = f 10) Formatage C des variables

value = 1000000

s2 = value1 = 2f value2 = d (31415 15)

print(s2)

value1 = 314 value2 = 1

Listes l = [1234]

print(type(l))

print(l)

ltclass listgt

[1 2 3 4]

l = [1 a 10 1-1j] peuvent ecirctre heacuteteacuterogegravene

print(l)

[1 a 10 (1-1j)]

Base de repreacutesentation des donneacutees

33

Listes start = 10

stop = 30

step = 2

range(start stop step)

range(10 30 2)

list(range(start stop step))

[10 12 14 16 18 20 22 24 26 28]

s2 = list(s)

S2

[H e l l o w o r l d]

Tri de la liste

s2sort()

print(s2)

[ H d e l l l o o r w]

l = []

lappend(A)

lappend(d)

lappend(d)

print(l)

[A d d]

Tuples Ce sont des variables comme les listes mais pas alteacuterables

point = (10 20)

print(point type(point))

(10 20) ltclass tuplegt

Base de repreacutesentation des donneacutees

34

Tuples x y = point

print(x = x)

print(y = y)

x = 10

y = 20

Dictionaries params = parameter1 10 parameter2 20 parameter3 30

print(type(params))

print(params)

ltclass dictgt

fparameter2 20 parameter3 30 parameter1 10

params[parameter1] = A

params[parameter2] = B

Ajouter une nouvelle entreacutee

params[parameter4] = D

print(paramegravetre = + str(params[parameter1]))

print(paramegravetre = + str(params[parameter2]))

print(paramegravetre = + str(params[parameter3]))

print(paramegravetre = + str(params[parameter4]))

paramegravetre = A

paramegravetre = B

paramegravetre = 30

paramegravetre = D

Base de repreacutesentation des donneacutees

35

36

Affectation amp Controcircle conditionnel de flue statement1 = False Crsquoest une affectation

statement2 = False

if statement1 Test valideacute condition (statement1) est VRAIE

print(statement1 is True)

elif statement2 Exeacutecuteacutee condition (statement2) est VRAIE

print(statement2 is True)

else Exeacutecuteacutee sinon

print(statement1 and statement2 are False)

Boucles for x in [123] [123] peut ecirctre deacutesigneacute par range(3) avec print(x+1)

print(x)

1

2

3

for word in [scientific computing with python]

print(word) condition de reacutepeacutetition deacutependante du contenu de la liste

scientific

computing

with

python

l1 = [x2 for x in range(05)] agrave remarquer la compaciteacute du Python

print(l1)

[0 1 4 9 16]

Base de repreacutesentation des donneacutees

37

Boucles var = 0

while var = 1

print jlsquoeacutecris mon programme ici

choix = raw_input(voulez vous recommencer ( on ) )

if choix == n

var = 1

else

lsquovous allez ecirctre renvoyeacute au deacutebut du programmersquo

X = y 2

while x gt 1

If y x == 0

print y lsquo est facteur de rsquo x

break

x -= 1

else

print y lsquo est premierlsquo

Lrsquoutilisation de zip et map peut srsquoaveacutereacutee encore plus efficace

l1 = [1 2 3]

l2 = [4 5 6]

for (x y) in zip(l1 l2)

print x y -- x + y

1 4 -- 5

2 5 -- 7

3 6 -- 9

Base de repreacutesentation des donneacutees

38

s=0123456789

print map(int s)

[0 1 2 3 4 5 6 7 8 9]

Utilisation et

puissance de MAP

Utilisation de ZIP

Intervales range(start stop step)

range(5 10)

5 jusqursquoagrave 10 (exclue) avec un pas de 1

range(0 10 3)

0 3 6 9

range(-10 -100 -30)

-10 -40 -70

Test conditionnel binaire x = 5

y = 10

if x gt y

print(x est grand que y)

else

print(ldquox nrsquoest pas grand que yrdquo)

Dans Python on peut compliquer les chose

x = 5

y = 10

Z = 12

if z gt x gt y

print(lsquoy est petit que x et x est petit que z)

Base de repreacutesentation des donneacutees

39

Boucle avec test conditionnel binaire break continue et else dans une boucle for

for n in range(2 10)

for x in range(2 n)

if n x == 0

print(n lsquoest eacutegal agrave x nx)

break

else

print(n lsquoest premier)

Utilisation de lrsquoinstruction continue

for num in range(2 10)

if num 2 == 0 le symbole deacutesigne lrsquoopeacuteration RESTE de la division

print(ldquoNombre paire trouveacute num)

continue

print(ldquoNombre non premier num)

Base de repreacutesentation des donneacutees

40

Deacutefinition de fonction (proceacutedure avec retour) def fib(n) Ecrire la suite de Fibonacci jusqursquoagrave n

a b = 0 1

while a lt n

print(a end= )

a b = b a+b

print()

fib(2000)

0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597

f = fib deacutesignation par reacutefeacuterence f agrave la fonction fib

f(100)

0 1 1 2 3 5 8 13 21 34 55 89

autre type de deacutefinition de fonction

def ask_ok(prompt retries=4 complaint=Oui or Non srsquoil vou plait )

while True

ok = input(prompt)

if ok in (lsquoo lsquooui lsquoOui)

return True

if ok in (lsquon no non lsquoNon)

return False

retries = retries - 1

if retries lt 0

raise OSError(lsquoUtilisateur non coopeacuteratif)

print(complaint)

Base de repreacutesentation des donneacutees

41

Lrsquoinstruction lambda def make_incrementeur(n)

return lambda x x + n

f = make_incrementeur(42)

f(0)

42

f(1)

43

un autre cas drsquoutilisation

pairs = [(1 one) (2 two) (3 three) (4 four)]

pairssort(key=lambda pair pair[1])

pairs

[(4 four) (1 one) (3 three) (2 two)]

Les annotations dans une fonction Les annotations deacutefinissent des messages de preacutesentation

def f(chiken str eggs str = eggs) -gt str remarquer que la fonction est de type STR

print(Annotations f__annotations__)

print(Arguments chiken eggs)

return chiken + and + eggs

f(spam)

Annotations chiken ltclass strgt return ltclass strgt eggs ltclass strgt

Arguments spam eggs

spam and eggslsquo

Base de repreacutesentation des donneacutees

42

Les deacutecorateurs python Notre deacutecorateur

def decorate(func)

print uJe suis dans la fonction decorate et je deacutecore s func__name__

print uExeacutecution de la fonction s func__name__

return func

Fonction cible utiliseacutee avec DECORATOR

decorate

def foobar(args)

print join(args)

Exemple drsquoappel de la fonction

foobar(A B C D)

Je suis dans la fonction decorate et je deacutecore foobar

Exeacutecution de la fonction foobar

A B C D

Il est posible drsquoattribuer plusieurs deacutecorateurs agrave une seule fonction

decorateur1

decorateur2

def ma_fonction()

instructions

Base de repreacutesentation des donneacutees

43

Manipulation des listes a = [6625 333 333 1 12345]

print(acount(333) acount(6625) acount(x))

2 1 0

ainsert(2 -1)

aappend(333)

a

[6625 333 -1 333 1 12345 333]

aindex(333)

1

aremove(333)

a

[6625 -1 333 1 12345 333]

areverse()

a

[333 12345 1 333 -1 6625]

asort()

a

[-1 1 6625 333 333 12345]

apop()

12345

a

[-1 1 6625 333 333]

Base de repreacutesentation des donneacutees

44

Puissance du langage Python Lrsquoensemble des lignes suiantes peut ecirctre compacteacute par ce qui suit

combs = []

for x in [123]

for y in [314]

if x = y

combsappend((x y))

Combs

Ou bien

[(x y) for x in [123] for y in [314] if x = y]

Donne le mecircme reacutesultat

[(1 3) (1 4) (2 3) (2 1) (2 4) (3 1) (3 4)]

Calcul de la valeur de PI arrondie

from math import pi

[str(round(pi i)) for i in range(1 6)]

[31 314 3142 31416 314159]

Geacuteneacuterateur avec utilisation de YIELD

def generateur()

yield a

yield b

yield cldquo

i=generateur()

for v in i

print v

a

b

c

Base de repreacutesentation des donneacutees

45

Les expressions reacuteguliegraveres en python Les expressions reacuteguliegravere sont utiliseacutees pour veacuterifier la conformiteacute des expressions de

chaines de caractegraveres par rapport agrave un motif Les symboles suivants sont utiliseacutes

^ $ + [ ] | ( )

Le point correspond agrave nimporte quel caractegravere

^ Indique un commencement de segment mais signifie aussi contraire de

$ Fin de segment

[xy] Une liste de segment possible Exemple [abc] eacutequivaut agrave a b ou c

(x|y) Indique un choix multiple type (ps|ump) eacutequivaut agrave ps OU UMP

d le segment est composeacute uniquement de chiffre ce qui eacutequivaut agrave [0-9]

D le segment nest pas composeacute de chiffre ce qui eacutequivaut agrave [^0-9]

s Un espace ce qui eacutequivaut agrave [ tnrfv]

S Pas despace ce qui eacutequivaut agrave [^ tnrfv]

w Preacutesence alphanumeacuterique ce qui eacutequivaut agrave [a-zA-Z0-9_]

W Pas de preacutesence alphanumeacuterique [^a-zA-Z0-9_]

Est un caractegravere deacutechappement T2 Le T soit reacutepeacuteteacute 2 fois

TA19 La seacutequence TA doit ecirctre preacutesente de 1 agrave 9 fois

TAM10 La seacutequence TAM nrsquoexiste pas ou reacutepeacuteteacutee 10 fois

LI1 La seacutequence LI doit ecirctre reacutepeacuteteacutee au moins une fois

Base de repreacutesentation des donneacutees

46

Les expressions reacuteguliegraveres en python Utilisation des expressions reacuteguliegravere

import re

print rematch(rGR()S GRIS)

lt_sreSRE_Match object at 0x02019DE0gt

Une utilisation freacutequente consiste en la validation des valeurs des emails saisis

Utilisation des expressions reacuteguliegravere

import re

mails = [lsquomtamaligmailcomrsquorsquoutmbuniv-bechardzrsquo lsquo8freefrrsquo lsquouniv-bechardzrsquo lsquotamalicdtarsquo]

regex = recompile(rrsquo^[a-z0-9_-]+[a-z0-9_-]+[(com|fr|dz)]+rsquo

for mail in mails

if regexmatch(mail) is not None

print Ce mail s est valide mail

else

print Erreur ce mail s est non valide mail

Ce mail mtamaligmailcom est valide

Ce mail utmbuniv-bechardz est valide

Ce mail 8freefr est valide

Erreur ce mail univ-bechardz est non valide

Erreur ce mail tamalicdta est non valide

Base de repreacutesentation des donneacutees

47

Les fichiers Creacuteer lire et eacutecrire dans un fichier en python Utilisation des expressions reacuteguliegravere

fichier = open(donneestxt r)

print fichier

ltopen file lsquodonneestxt mode r at 0x7ff6cf3fe4b0gt

Le descripteur permet de renseigner la machine sur la maniegravere avec laquelle le fichier est utiliseacute

r pour ouverture en mode READ

w pour ouverture en mode WRITE chaque fois le contenu du fichier est eacutecraseacute sinon python le creacutee

a pour ajout lsquoAPPENDrsquo Si le fichier nexiste pas python le creacutee

b Ouverture en mode Binaire

t Ouverture en mode Texte

x creacutee un nouveau fichier et louvrir pour eacutecriture

proceacutedure geacuteneacuterale pour lrsquoutilisation drsquoun fichier

fichier = open(lsquodonneestxtrsquo r)

print fichierread()

fichierclose()

Lrsquoinstruction WITH peut ecirctre utiliseacutee sans besoin de la fonction CLOSE

with open(datatxt r) as fichier

print fichierread()

Base de repreacutesentation des donneacutees

48

49

Le langage Python est un langage script interpreacuteteacute Le programme portant lrsquoune des extension py pyw ou pwc est

structureacute selon le canevas suivant

Les codifications

usrbinpython27

--codingencodage -

Les imports des librairies

Les instructions

Le langage Python passe pour ecirctre exeacutecuteacute sur deux eacutetapes la premiegravere UNE PRECOMPILATION geacuteneacuteration du code

machine et finalement un eacutecriture en code machine exeacutecutable (selon la machine)

Lrsquoenvironnement drsquoexeacutecution des scripts eacutecrits en Python regroupe les avantages des TRADUCTEURS (travaille en ligne par

ligne) et les COMPILATEURS (puissance de la structure algorithmique)

La bibliothegraveque cx_Freeze sert agrave transformer les fichiers scripts Pyhon py en exeacutecutable exe

Structures algorithmique du python

50

51

Matrices amp Systegravemes lineacuteaires

52

53

54

55

56

57

Le calcul scientifique

Reacutefeacuterences L-V Bertallanfy lsquoGeneral System Theoryrsquo Edition MASSON 1972

58

Page 11: Chap XIII : calcul scientifique avec python

Elaboration drsquoun environnement logiciel Python Utilisation Sous PyCharm en mode TEREMINAL nous ajoutons les

modules neacutecessaires agrave la plateforme ANACONDA Caracteacuteristiques du langage script Python

Avantages

bull Tregraves riches librairies pour le calcul scientifique

bull Langage bien structureacute permettant drsquoeacutecrire des

programmes lisibles lsquowe code what we thinkrsquo

bull Drsquoautres librairies hors le cadre du calcul scientifique

(Gestion des services Web Accegraves aux ports seacuterie etc)

bull Graticiel lsquoOpen Sourcersquo derriegravere une large communauteacute

bull Compaciteacute du programme deacuteveloppeacute

bull Beaucoup drsquoalternatives pour lrsquoeacutedition (IDE)

Inconveacutenients

bull Environnement de deacuteveloppement moins

bull Pas tous les algorithmes qui peuvent ecirctre trouveacutes dans le

logiciel

Python peut ecirctre utiliser sous deux modes selon

lrsquointeractiviteacute escompteacutee

1 Commande en ligne

2 Exeacutecution de fichier script py 11 Fenecirctre ABOUT

de PyCharm

Elaboration drsquoun environnement logiciel Python Utilisation Sous PyCharm

Caracteacuteristiques du langage script Python

Python est un langage script informatique geacuteneacuterique et

moderne

bull Langage Python integravegre tous les types de donneacutees

(chaicircne reacuteel int) les controcircles des collections de

donneacutees (listes dictionnaires) et des modegraveles de flux

etc

bull La bibliothegraveque standard integravegre plusieurs Modules

bull Un grand nombre de modules speacutecialiseacutes ou des

applications sont eacutecrites en Python protocoles web

framework web etc Ainsi que le calcul scientifique

- Outils de deacuteveloppement (test automatique geacuteneacuteration de

documentation)

- et encore plushellip

Python peut ecirctre utiliser sous deux modes selon

lrsquointeractiviteacute escompteacutee

1 Commande en ligne

2 Exeacutecution de fichier script py 12

Mode console

Python

Mode

programme (py)

Elaboration drsquoun environnement logiciel Python Utilisation Sous Jupyter Interface WEB pour Python

Cette interface Web est facilement mise en œuvre par son

installation

conda install jupyter (si Anaconda est installeacute)

Ou

pip install jupyter

Le lancement de lrsquointerface est fait en invoquant

Jupiter notebook

Ouvrir le navigateur et entrer lrsquoadresse http1270018888

Pour utiliser un autre PORT autre que 8888

On note http127001Nouveau_Port

Lrsquointerface JUPITER est intuitive et facile agrave utiliser ses

fonctionnaliteacutes sont bull Deacuteploiement sous protocole Internet drsquoaptitude de calcul

Python

bull Toute les possibiliteacutes de gestion des documents lsquoNotebookrsquo

sont offertes

bull Possibiliteacutes drsquoeacutedition non limiteacutees (LaTeX HTML Code hellip)

bull Exeacutecution immeacutediate

bull Compatibiliteacute avec la plupart des langages et scripts de

programmation (CC++ Java JavaScript Julia Python R

Octave hellip)

bull Offre accessibiliteacute agrave Jupyter Drive via Google Drive

bull Options de Reporting avanceacutees (HTML LaTeX PDF)

13

Exemple de

code avec son

exeacutecution

Menu et barre

drsquooutils

Elaboration drsquoun environnement logiciel Python Utilisation Sous Jupyter Interface WEB pour Python

Les notebooks sont accessibles agrave partir de PyCharm Les notebooks sont des solutions de collaboration de preacutefeacuterences

ils integravegrent toute les fonctionnaliteacutes exigeacutees par un chercheur

dans le domaine des sciences humaines ou technologiques

Organisation des documents leur ouverture eacutedition ou mise agrave

jours se fait dans le mecircme endroit sans aucune deacutependance par

rapport agrave la machine puisque les notebooks sont accessible en

ligne (Serveur Ordinateur de bureau ou Peacuteripheacuterique mobile)

Les possibiliteacutes sont eacutetendues ainsi qursquoune documentation

abondante

14

Graphique

3D

Exemple de Code

Python

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse des donneacutees (Panda)

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

15

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse des donneacutees (Panda)

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

import numpy as np

systeme = nparray([[12][3-4]])

valeur=nparray([[3][1]])

sol=nplinalgsolve(systemevaleur)

print(x=sol[00] et y=sol[10])

x= 14 et y= 08

Reacutesolution de systegraveme lineacuteaire AX=b gtgtgt import numpy as np

gtgtgt from scipy import linalg

gtgtgt A = nparray([[1 2] [3 4]])

gtgtgt A

array([[1 2][3 4]])

gtgtgt b = nparray([[5] [6]])

gtgtgt b

array([[5][6]])

gtgtgt linalginv(A)dot(b) slow

array([[-4 ][ 45]])

gtgtgt Adot(linalginv(A)dot(b)) - b Veacuterification array([[888178420e-16][266453526e-15]])

gtgtgt nplinalgsolve(A b) fast

array([[-4 ][ 45]])

gtgtgt Adot(nplinalgsolve(A b)) - b Veacuterification array([[ 0][ 0]])

Importation de la

librairie Numpy

16

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse des donneacutees (Panda)

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

17

import numpy as np

from scipy import signal misc

import matplotlibpyplot as plt

image = miscface(gray=True)astype(npfloat32)

derfilt = nparray([10 -2 10] dtype=npfloat32)

ck = signalcspline2d(image 80)

deriv = (signalsepfir2d(ck derfilt [1]) +signalsepfir2d(ck [1] derfilt))

laplacian = nparray([[010] [1-41] [010]] dtype=npfloat32)

deriv2 = signalconvolve2d(cklaplacianmode=lsquosameboundary=symm)

pltfigure()

pltimshow(image)

pltgray()

plttitle(lsquoImage original)

pltshow()

pltfigure()

pltimshow(deriv)

pltgray()

plttitle(lsquosortie avec filtre spline)

pltshow()

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse des donneacutees (Panda)

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

from matplotlibpyplot import figure hold plot legend draw

from numpy import linspace

import scipystats as stats

from numpyrandom import randn

x = randn(100)

fig = figure()

ax = figadd_subplot(111)

axhist(x bins=30 label=rsquoEmpiricalrsquo)

xlim = axget_xlim()

ylim = axget_ylim()

pdfx = linspace(xlim[0] xlim[1] 200)

pdfy = statsnormpdf(pdfx)

pdfy = pdfy pdfymax() ylim[1]

hold(True)

plot(pdfx pdfy rsquor-rsquo label=rsquoPDFrsquo)

axset_ylim((ylim[0] 12 ylim[1]))

legend()

hold(False)

draw()

18

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse des donneacutees (Panda QtGraph)

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation 19

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Domaines drsquoutilisation

matplotlib inline

from pylab import plot show title xlabel ylabel subplot savefig

from scipy import fft arange ifft

from numpy import sin linspace pi

from scipyiowavfile import readwrite

def plotSpectru(yFs)

n = len(y) lungime semnal

k = arange(n)

T = nFs

frq = kT two sides frequency range

frq = frq[range(n2)] one side frequency range

Y = fft(y)n fft computing and normalization

Y = Y[range(n2)]

plot(frqabs(Y)r) plotting the spectrum

xlabel(Freq (Hz))

ylabel(|Y(freq)|)

Fs = 44100 sampling rate

ratedata=read(fatihawav)

y=data

lungime=len(y)

timp=len(y)44100

t=linspace(0timplen(y))

subplot(211)

plot(ty)

xlabel(Time)

ylabel(Amplitude)

subplot(212)

plotSpectru(yFs)

show()

20

Lecture de la

sourah

Code du traitement

audio

Spectre Amp|Freacuteq

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele (MPI Python)

Theacuteorie des graphes (Networkx)

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

21 Exemple

de graphe

Fenecirctre Aperccedilu

du bloc-note

Importation de la

librairie NetworkX

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

import RPiGPIO as GPIO

GPIOsetmode(GPIOBCM) set board mode to Broadcom

GPIOsetup(17 GPIOOUT) set up pin 17

GPIOsetup(18 GPIOOUT) set up pin 18

GPIOoutput(17 1) turn on pin 17

GPIOoutput(18 1) turn on pin 18

Importation

librairie GPIO

Module

Galileo Gen 2

Module

RaspBerry PI 3

22

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D (Python CAD FreeCAD)

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

23

from OCCSTEPControl import STEPControl_Reader

from OCCIFSelect import IFSelect_RetDone IFSelect_ItemsByEntity

from OCCDisplaySimpleGui import init_display

step_reader = STEPControl_Reader()

status = step_readerReadFile(modelswind_turbinestp)

if status == IFSelect_RetDone check status

failsonly = False

step_readerPrintCheckLoad(failsonly IFSelect_ItemsByEntity)

step_readerPrintCheckTransfer(failsonly IFSelect_ItemsByEntity)

ok = step_readerTransferRoot(1)

_nbs = step_readerNbShapes()

aResShape = step_readerShape(1)

else

print(Error cant read file)

sysexit(0)

display start_display add_menu add_function_to_menu = init_display()

displayDisplayShape(aResShape update=True)

start_display()

Importation

librairie OCC

Maillage Dauphin

Rendu du macirct drsquoun

aeacuterogeacuteneacuterateur

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D (Python CAD FreeCAD)

Bioinformatique et manipulation du geacutenome

POO avec Python (Programmation

Orienteacutee Objet) Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

class Rocket()

Rocket simule une roquette pour un jeu

ou une simulation de physique

def __init__(self)

Each rocket has an (xy) position

selfx = 0

selfy = 0

def move_up(self)

Increacutementation de la position y de la roquette

selfy += 1

Deacutefinir une ensemble de 5 roquettes les stocker dans une liste

my_rockets = []

for x in range(05)

new_rocket = Rocket()

my_rocketsappend(new_rocket)

A remarquer que chaque roquette est un objet agrave part entiegravere

for rocket in my_rockets

print(rocket)

Deacutefinition drsquoune

nouvelle Classe

Instantiation

Meacutethode Constructeur

__init__

24

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D (Python CAD FreeCAD)

Bioinformatique et manipulation

du geacutenome Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

25

from Bio import SeqIO

for seq_record in SeqIOparse(ls_orchidgbk genbank)

print(seq_recordid)

print(repr(seq_recordseq))

print(len(seq_record))

Z785331

Seq(CGTAACAAGGTTTCCGTAGGTGAACCTGCGGAAGGATCATTGATGAGACCGTGGCGC

IUPACAmbiguousDNA())

740

Z784391

Seq(CATTGTTGAGATCACATAATAATTGATCGAGTTAATCTGGAGGATCTGTTTACTGCC

IUPACAmbiguousDNA())

592

Sinon dans une Terminal Python

gtgtgt from BioSeq import Seq

gtgtgt from BioAlphabet import generic_dna

gtgtgt gene = Seq(GTGAAAAAGATGCAATCTATCGTACTCGCACTTTCCCTGGTTCTGGTCGCTCCCATGGCA +

GCACAGGCTGCGGAAATTACGTTAGTCCCGTCAGTAAAATTACAGATAGGCGATCGTGAT +

AATCGTGGCTATTACTGGGATGGAGGTCACTGGCGCGACCACGGCTGGTGGAAACAACAT +

TATGAATGGCGAGGCAATCGCTGGCACCTACACGGACCGCCGCCACCGCCGCGCCACCAT +

AAGAAAGCTCCTCATGATCATCACGGCGGTCATGGTCCAGGCAAACATCACCGCTAA

generic_dna)

gtgtgt genetranslate(table=Bacterial)

Seq(VKKMQSIVLALSLVLVAPMAAQAAEITLVPSVKLQIGDRDNRGYYWDGGHWRDHHR

HasStopCodon(ExtendedIUPACProtein() )

gtgtgt genetranslate(table=Bacterial to_stop=True)

Seq(VKKMQSIVLALSLVLVAPMAAQAAEITLVPSVKLQIGDRDNRGYYWDGGHWRDHHHR

ExtendedIUPACProtein())

Logo de

BioPython Seacutequence drsquoADN

Importation

librairie BIO

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D (Python CAD FreeCAD)

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

26

Installer agrave partir de PyPI

$ pip install mezzanine

Instantier un projet

$ mezzanine-project monproject

$ cd monproject

Instantier une Base de donneacutees

$ python managepy createdb

Lancer le serveur Web

$ python managepy runserver

Installation en mode

commande

URL du site instantieacute

Version Mobile Menu

Version Administration

Sites Web fait avec

Mezzanine

Version Normal

Les environnements de deacuteveloppement inteacutegreacutes de code Python sont nombreux des solutions proprieacutetaires agrave celles portant le

label GPL

Ils sont de trois grandes cateacutegories

Les applications bureaux (Desktop)

Les consoles de commande en ligne Les interfaces orienteacutees Web

Outils drsquoeacutelaboration de code Python (IDE)

27

Les environnements de deacuteveloppement inteacutegreacutes de code Python sont nombreux des solutions proprieacutetaires agrave celles portant le

label GPL Ils sont de trois grandes cateacutegories

Les applications bureaux (Desktop)

Les consoles de commande en ligne

Les interfaces orienteacutees Web

Outils drsquoeacutelaboration de code Python (IDE)

28

Les environnements de deacuteveloppement inteacutegreacutes de code Python sont nombreux des solutions proprieacutetaires agrave celles portant le

label GPL Ils sont de trois grandes cateacutegories

Les applications bureaux (Desktop)

Les consoles de commande en ligne

Les interfaces orienteacutees Web

Outils drsquoeacutelaboration de code Python (IDE)

29

30

Nom de Symbole Les noms de variables en Python peuvent contenir des caractegraveres alphanumeacuteriques a-z A-Z 0-

9 et certains caractegraveres speacuteciaux tel que _ Les noms de variables normales doivent commencer par une lettre

Par convention les noms de variables commencent par une lettre minuscule et les noms de classe commencent par

une lettre majuscule En outre il y a un certain nombre de mots-cleacutes Python qui ne peuvent pas ecirctre utiliseacutes comme

noms de variables Ces mots-cleacutes sont les suivants

and as assert break class continue def del elif else except exec finally for from global if import in

is lambda not or pass print raise return try while with yield

Affectation assignment de variable

x = 10

my_variable = 122

type(x) fonction TYPE retourne le type de la variable entre parenthegravese

builtinsfloat

Verification de type x = 10

veacuterifier si la variable est reacuteelle

type(x) is float

isinstance(x float)

True

z = complex(x)

print(z type(z))

(1+0j) ltclass complexlsquogt

Base de repreacutesentation des donneacutees

31

Operateurs et comparaisons Opeacuterateurs arithmeacutetiques + - (division entiegravere) puissance

30 20

10

NB operators puissance en python nrsquoest pas ^ mais

2 2

4

Les opeacuterateurs de comparaison sont gtltgt=lt===

objects identiques

x1 = x2 = [12]

x1 is x2

True

2 gt= 2 2 lt= 2

(True True)

Chaines de caractegraveres les liste et les dictionnaires s = Hello world

type(s)

builtinsstr

length of the string the number of characters

len(s)

11

replace a substring in a string with somethign else

s2 = sreplace(world test)

print(s2)

Hello test

s[0]

H

Base de repreacutesentation des donneacutees

32

Chaines de caractegraveres les liste et les dictionnaires s = Hello worldldquo

replace a substring in a string with somethign else

s2 = sreplace(world test)

Hello test

print(s2)

s[05]

Hellolsquo

s[05]

Hellolsquo

s[]

Hello worldlsquo

print(value = f 10) Formatage C des variables

value = 1000000

s2 = value1 = 2f value2 = d (31415 15)

print(s2)

value1 = 314 value2 = 1

Listes l = [1234]

print(type(l))

print(l)

ltclass listgt

[1 2 3 4]

l = [1 a 10 1-1j] peuvent ecirctre heacuteteacuterogegravene

print(l)

[1 a 10 (1-1j)]

Base de repreacutesentation des donneacutees

33

Listes start = 10

stop = 30

step = 2

range(start stop step)

range(10 30 2)

list(range(start stop step))

[10 12 14 16 18 20 22 24 26 28]

s2 = list(s)

S2

[H e l l o w o r l d]

Tri de la liste

s2sort()

print(s2)

[ H d e l l l o o r w]

l = []

lappend(A)

lappend(d)

lappend(d)

print(l)

[A d d]

Tuples Ce sont des variables comme les listes mais pas alteacuterables

point = (10 20)

print(point type(point))

(10 20) ltclass tuplegt

Base de repreacutesentation des donneacutees

34

Tuples x y = point

print(x = x)

print(y = y)

x = 10

y = 20

Dictionaries params = parameter1 10 parameter2 20 parameter3 30

print(type(params))

print(params)

ltclass dictgt

fparameter2 20 parameter3 30 parameter1 10

params[parameter1] = A

params[parameter2] = B

Ajouter une nouvelle entreacutee

params[parameter4] = D

print(paramegravetre = + str(params[parameter1]))

print(paramegravetre = + str(params[parameter2]))

print(paramegravetre = + str(params[parameter3]))

print(paramegravetre = + str(params[parameter4]))

paramegravetre = A

paramegravetre = B

paramegravetre = 30

paramegravetre = D

Base de repreacutesentation des donneacutees

35

36

Affectation amp Controcircle conditionnel de flue statement1 = False Crsquoest une affectation

statement2 = False

if statement1 Test valideacute condition (statement1) est VRAIE

print(statement1 is True)

elif statement2 Exeacutecuteacutee condition (statement2) est VRAIE

print(statement2 is True)

else Exeacutecuteacutee sinon

print(statement1 and statement2 are False)

Boucles for x in [123] [123] peut ecirctre deacutesigneacute par range(3) avec print(x+1)

print(x)

1

2

3

for word in [scientific computing with python]

print(word) condition de reacutepeacutetition deacutependante du contenu de la liste

scientific

computing

with

python

l1 = [x2 for x in range(05)] agrave remarquer la compaciteacute du Python

print(l1)

[0 1 4 9 16]

Base de repreacutesentation des donneacutees

37

Boucles var = 0

while var = 1

print jlsquoeacutecris mon programme ici

choix = raw_input(voulez vous recommencer ( on ) )

if choix == n

var = 1

else

lsquovous allez ecirctre renvoyeacute au deacutebut du programmersquo

X = y 2

while x gt 1

If y x == 0

print y lsquo est facteur de rsquo x

break

x -= 1

else

print y lsquo est premierlsquo

Lrsquoutilisation de zip et map peut srsquoaveacutereacutee encore plus efficace

l1 = [1 2 3]

l2 = [4 5 6]

for (x y) in zip(l1 l2)

print x y -- x + y

1 4 -- 5

2 5 -- 7

3 6 -- 9

Base de repreacutesentation des donneacutees

38

s=0123456789

print map(int s)

[0 1 2 3 4 5 6 7 8 9]

Utilisation et

puissance de MAP

Utilisation de ZIP

Intervales range(start stop step)

range(5 10)

5 jusqursquoagrave 10 (exclue) avec un pas de 1

range(0 10 3)

0 3 6 9

range(-10 -100 -30)

-10 -40 -70

Test conditionnel binaire x = 5

y = 10

if x gt y

print(x est grand que y)

else

print(ldquox nrsquoest pas grand que yrdquo)

Dans Python on peut compliquer les chose

x = 5

y = 10

Z = 12

if z gt x gt y

print(lsquoy est petit que x et x est petit que z)

Base de repreacutesentation des donneacutees

39

Boucle avec test conditionnel binaire break continue et else dans une boucle for

for n in range(2 10)

for x in range(2 n)

if n x == 0

print(n lsquoest eacutegal agrave x nx)

break

else

print(n lsquoest premier)

Utilisation de lrsquoinstruction continue

for num in range(2 10)

if num 2 == 0 le symbole deacutesigne lrsquoopeacuteration RESTE de la division

print(ldquoNombre paire trouveacute num)

continue

print(ldquoNombre non premier num)

Base de repreacutesentation des donneacutees

40

Deacutefinition de fonction (proceacutedure avec retour) def fib(n) Ecrire la suite de Fibonacci jusqursquoagrave n

a b = 0 1

while a lt n

print(a end= )

a b = b a+b

print()

fib(2000)

0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597

f = fib deacutesignation par reacutefeacuterence f agrave la fonction fib

f(100)

0 1 1 2 3 5 8 13 21 34 55 89

autre type de deacutefinition de fonction

def ask_ok(prompt retries=4 complaint=Oui or Non srsquoil vou plait )

while True

ok = input(prompt)

if ok in (lsquoo lsquooui lsquoOui)

return True

if ok in (lsquon no non lsquoNon)

return False

retries = retries - 1

if retries lt 0

raise OSError(lsquoUtilisateur non coopeacuteratif)

print(complaint)

Base de repreacutesentation des donneacutees

41

Lrsquoinstruction lambda def make_incrementeur(n)

return lambda x x + n

f = make_incrementeur(42)

f(0)

42

f(1)

43

un autre cas drsquoutilisation

pairs = [(1 one) (2 two) (3 three) (4 four)]

pairssort(key=lambda pair pair[1])

pairs

[(4 four) (1 one) (3 three) (2 two)]

Les annotations dans une fonction Les annotations deacutefinissent des messages de preacutesentation

def f(chiken str eggs str = eggs) -gt str remarquer que la fonction est de type STR

print(Annotations f__annotations__)

print(Arguments chiken eggs)

return chiken + and + eggs

f(spam)

Annotations chiken ltclass strgt return ltclass strgt eggs ltclass strgt

Arguments spam eggs

spam and eggslsquo

Base de repreacutesentation des donneacutees

42

Les deacutecorateurs python Notre deacutecorateur

def decorate(func)

print uJe suis dans la fonction decorate et je deacutecore s func__name__

print uExeacutecution de la fonction s func__name__

return func

Fonction cible utiliseacutee avec DECORATOR

decorate

def foobar(args)

print join(args)

Exemple drsquoappel de la fonction

foobar(A B C D)

Je suis dans la fonction decorate et je deacutecore foobar

Exeacutecution de la fonction foobar

A B C D

Il est posible drsquoattribuer plusieurs deacutecorateurs agrave une seule fonction

decorateur1

decorateur2

def ma_fonction()

instructions

Base de repreacutesentation des donneacutees

43

Manipulation des listes a = [6625 333 333 1 12345]

print(acount(333) acount(6625) acount(x))

2 1 0

ainsert(2 -1)

aappend(333)

a

[6625 333 -1 333 1 12345 333]

aindex(333)

1

aremove(333)

a

[6625 -1 333 1 12345 333]

areverse()

a

[333 12345 1 333 -1 6625]

asort()

a

[-1 1 6625 333 333 12345]

apop()

12345

a

[-1 1 6625 333 333]

Base de repreacutesentation des donneacutees

44

Puissance du langage Python Lrsquoensemble des lignes suiantes peut ecirctre compacteacute par ce qui suit

combs = []

for x in [123]

for y in [314]

if x = y

combsappend((x y))

Combs

Ou bien

[(x y) for x in [123] for y in [314] if x = y]

Donne le mecircme reacutesultat

[(1 3) (1 4) (2 3) (2 1) (2 4) (3 1) (3 4)]

Calcul de la valeur de PI arrondie

from math import pi

[str(round(pi i)) for i in range(1 6)]

[31 314 3142 31416 314159]

Geacuteneacuterateur avec utilisation de YIELD

def generateur()

yield a

yield b

yield cldquo

i=generateur()

for v in i

print v

a

b

c

Base de repreacutesentation des donneacutees

45

Les expressions reacuteguliegraveres en python Les expressions reacuteguliegravere sont utiliseacutees pour veacuterifier la conformiteacute des expressions de

chaines de caractegraveres par rapport agrave un motif Les symboles suivants sont utiliseacutes

^ $ + [ ] | ( )

Le point correspond agrave nimporte quel caractegravere

^ Indique un commencement de segment mais signifie aussi contraire de

$ Fin de segment

[xy] Une liste de segment possible Exemple [abc] eacutequivaut agrave a b ou c

(x|y) Indique un choix multiple type (ps|ump) eacutequivaut agrave ps OU UMP

d le segment est composeacute uniquement de chiffre ce qui eacutequivaut agrave [0-9]

D le segment nest pas composeacute de chiffre ce qui eacutequivaut agrave [^0-9]

s Un espace ce qui eacutequivaut agrave [ tnrfv]

S Pas despace ce qui eacutequivaut agrave [^ tnrfv]

w Preacutesence alphanumeacuterique ce qui eacutequivaut agrave [a-zA-Z0-9_]

W Pas de preacutesence alphanumeacuterique [^a-zA-Z0-9_]

Est un caractegravere deacutechappement T2 Le T soit reacutepeacuteteacute 2 fois

TA19 La seacutequence TA doit ecirctre preacutesente de 1 agrave 9 fois

TAM10 La seacutequence TAM nrsquoexiste pas ou reacutepeacuteteacutee 10 fois

LI1 La seacutequence LI doit ecirctre reacutepeacuteteacutee au moins une fois

Base de repreacutesentation des donneacutees

46

Les expressions reacuteguliegraveres en python Utilisation des expressions reacuteguliegravere

import re

print rematch(rGR()S GRIS)

lt_sreSRE_Match object at 0x02019DE0gt

Une utilisation freacutequente consiste en la validation des valeurs des emails saisis

Utilisation des expressions reacuteguliegravere

import re

mails = [lsquomtamaligmailcomrsquorsquoutmbuniv-bechardzrsquo lsquo8freefrrsquo lsquouniv-bechardzrsquo lsquotamalicdtarsquo]

regex = recompile(rrsquo^[a-z0-9_-]+[a-z0-9_-]+[(com|fr|dz)]+rsquo

for mail in mails

if regexmatch(mail) is not None

print Ce mail s est valide mail

else

print Erreur ce mail s est non valide mail

Ce mail mtamaligmailcom est valide

Ce mail utmbuniv-bechardz est valide

Ce mail 8freefr est valide

Erreur ce mail univ-bechardz est non valide

Erreur ce mail tamalicdta est non valide

Base de repreacutesentation des donneacutees

47

Les fichiers Creacuteer lire et eacutecrire dans un fichier en python Utilisation des expressions reacuteguliegravere

fichier = open(donneestxt r)

print fichier

ltopen file lsquodonneestxt mode r at 0x7ff6cf3fe4b0gt

Le descripteur permet de renseigner la machine sur la maniegravere avec laquelle le fichier est utiliseacute

r pour ouverture en mode READ

w pour ouverture en mode WRITE chaque fois le contenu du fichier est eacutecraseacute sinon python le creacutee

a pour ajout lsquoAPPENDrsquo Si le fichier nexiste pas python le creacutee

b Ouverture en mode Binaire

t Ouverture en mode Texte

x creacutee un nouveau fichier et louvrir pour eacutecriture

proceacutedure geacuteneacuterale pour lrsquoutilisation drsquoun fichier

fichier = open(lsquodonneestxtrsquo r)

print fichierread()

fichierclose()

Lrsquoinstruction WITH peut ecirctre utiliseacutee sans besoin de la fonction CLOSE

with open(datatxt r) as fichier

print fichierread()

Base de repreacutesentation des donneacutees

48

49

Le langage Python est un langage script interpreacuteteacute Le programme portant lrsquoune des extension py pyw ou pwc est

structureacute selon le canevas suivant

Les codifications

usrbinpython27

--codingencodage -

Les imports des librairies

Les instructions

Le langage Python passe pour ecirctre exeacutecuteacute sur deux eacutetapes la premiegravere UNE PRECOMPILATION geacuteneacuteration du code

machine et finalement un eacutecriture en code machine exeacutecutable (selon la machine)

Lrsquoenvironnement drsquoexeacutecution des scripts eacutecrits en Python regroupe les avantages des TRADUCTEURS (travaille en ligne par

ligne) et les COMPILATEURS (puissance de la structure algorithmique)

La bibliothegraveque cx_Freeze sert agrave transformer les fichiers scripts Pyhon py en exeacutecutable exe

Structures algorithmique du python

50

51

Matrices amp Systegravemes lineacuteaires

52

53

54

55

56

57

Le calcul scientifique

Reacutefeacuterences L-V Bertallanfy lsquoGeneral System Theoryrsquo Edition MASSON 1972

58

Page 12: Chap XIII : calcul scientifique avec python

Elaboration drsquoun environnement logiciel Python Utilisation Sous PyCharm

Caracteacuteristiques du langage script Python

Python est un langage script informatique geacuteneacuterique et

moderne

bull Langage Python integravegre tous les types de donneacutees

(chaicircne reacuteel int) les controcircles des collections de

donneacutees (listes dictionnaires) et des modegraveles de flux

etc

bull La bibliothegraveque standard integravegre plusieurs Modules

bull Un grand nombre de modules speacutecialiseacutes ou des

applications sont eacutecrites en Python protocoles web

framework web etc Ainsi que le calcul scientifique

- Outils de deacuteveloppement (test automatique geacuteneacuteration de

documentation)

- et encore plushellip

Python peut ecirctre utiliser sous deux modes selon

lrsquointeractiviteacute escompteacutee

1 Commande en ligne

2 Exeacutecution de fichier script py 12

Mode console

Python

Mode

programme (py)

Elaboration drsquoun environnement logiciel Python Utilisation Sous Jupyter Interface WEB pour Python

Cette interface Web est facilement mise en œuvre par son

installation

conda install jupyter (si Anaconda est installeacute)

Ou

pip install jupyter

Le lancement de lrsquointerface est fait en invoquant

Jupiter notebook

Ouvrir le navigateur et entrer lrsquoadresse http1270018888

Pour utiliser un autre PORT autre que 8888

On note http127001Nouveau_Port

Lrsquointerface JUPITER est intuitive et facile agrave utiliser ses

fonctionnaliteacutes sont bull Deacuteploiement sous protocole Internet drsquoaptitude de calcul

Python

bull Toute les possibiliteacutes de gestion des documents lsquoNotebookrsquo

sont offertes

bull Possibiliteacutes drsquoeacutedition non limiteacutees (LaTeX HTML Code hellip)

bull Exeacutecution immeacutediate

bull Compatibiliteacute avec la plupart des langages et scripts de

programmation (CC++ Java JavaScript Julia Python R

Octave hellip)

bull Offre accessibiliteacute agrave Jupyter Drive via Google Drive

bull Options de Reporting avanceacutees (HTML LaTeX PDF)

13

Exemple de

code avec son

exeacutecution

Menu et barre

drsquooutils

Elaboration drsquoun environnement logiciel Python Utilisation Sous Jupyter Interface WEB pour Python

Les notebooks sont accessibles agrave partir de PyCharm Les notebooks sont des solutions de collaboration de preacutefeacuterences

ils integravegrent toute les fonctionnaliteacutes exigeacutees par un chercheur

dans le domaine des sciences humaines ou technologiques

Organisation des documents leur ouverture eacutedition ou mise agrave

jours se fait dans le mecircme endroit sans aucune deacutependance par

rapport agrave la machine puisque les notebooks sont accessible en

ligne (Serveur Ordinateur de bureau ou Peacuteripheacuterique mobile)

Les possibiliteacutes sont eacutetendues ainsi qursquoune documentation

abondante

14

Graphique

3D

Exemple de Code

Python

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse des donneacutees (Panda)

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

15

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse des donneacutees (Panda)

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

import numpy as np

systeme = nparray([[12][3-4]])

valeur=nparray([[3][1]])

sol=nplinalgsolve(systemevaleur)

print(x=sol[00] et y=sol[10])

x= 14 et y= 08

Reacutesolution de systegraveme lineacuteaire AX=b gtgtgt import numpy as np

gtgtgt from scipy import linalg

gtgtgt A = nparray([[1 2] [3 4]])

gtgtgt A

array([[1 2][3 4]])

gtgtgt b = nparray([[5] [6]])

gtgtgt b

array([[5][6]])

gtgtgt linalginv(A)dot(b) slow

array([[-4 ][ 45]])

gtgtgt Adot(linalginv(A)dot(b)) - b Veacuterification array([[888178420e-16][266453526e-15]])

gtgtgt nplinalgsolve(A b) fast

array([[-4 ][ 45]])

gtgtgt Adot(nplinalgsolve(A b)) - b Veacuterification array([[ 0][ 0]])

Importation de la

librairie Numpy

16

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse des donneacutees (Panda)

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

17

import numpy as np

from scipy import signal misc

import matplotlibpyplot as plt

image = miscface(gray=True)astype(npfloat32)

derfilt = nparray([10 -2 10] dtype=npfloat32)

ck = signalcspline2d(image 80)

deriv = (signalsepfir2d(ck derfilt [1]) +signalsepfir2d(ck [1] derfilt))

laplacian = nparray([[010] [1-41] [010]] dtype=npfloat32)

deriv2 = signalconvolve2d(cklaplacianmode=lsquosameboundary=symm)

pltfigure()

pltimshow(image)

pltgray()

plttitle(lsquoImage original)

pltshow()

pltfigure()

pltimshow(deriv)

pltgray()

plttitle(lsquosortie avec filtre spline)

pltshow()

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse des donneacutees (Panda)

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

from matplotlibpyplot import figure hold plot legend draw

from numpy import linspace

import scipystats as stats

from numpyrandom import randn

x = randn(100)

fig = figure()

ax = figadd_subplot(111)

axhist(x bins=30 label=rsquoEmpiricalrsquo)

xlim = axget_xlim()

ylim = axget_ylim()

pdfx = linspace(xlim[0] xlim[1] 200)

pdfy = statsnormpdf(pdfx)

pdfy = pdfy pdfymax() ylim[1]

hold(True)

plot(pdfx pdfy rsquor-rsquo label=rsquoPDFrsquo)

axset_ylim((ylim[0] 12 ylim[1]))

legend()

hold(False)

draw()

18

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse des donneacutees (Panda QtGraph)

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation 19

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Domaines drsquoutilisation

matplotlib inline

from pylab import plot show title xlabel ylabel subplot savefig

from scipy import fft arange ifft

from numpy import sin linspace pi

from scipyiowavfile import readwrite

def plotSpectru(yFs)

n = len(y) lungime semnal

k = arange(n)

T = nFs

frq = kT two sides frequency range

frq = frq[range(n2)] one side frequency range

Y = fft(y)n fft computing and normalization

Y = Y[range(n2)]

plot(frqabs(Y)r) plotting the spectrum

xlabel(Freq (Hz))

ylabel(|Y(freq)|)

Fs = 44100 sampling rate

ratedata=read(fatihawav)

y=data

lungime=len(y)

timp=len(y)44100

t=linspace(0timplen(y))

subplot(211)

plot(ty)

xlabel(Time)

ylabel(Amplitude)

subplot(212)

plotSpectru(yFs)

show()

20

Lecture de la

sourah

Code du traitement

audio

Spectre Amp|Freacuteq

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele (MPI Python)

Theacuteorie des graphes (Networkx)

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

21 Exemple

de graphe

Fenecirctre Aperccedilu

du bloc-note

Importation de la

librairie NetworkX

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

import RPiGPIO as GPIO

GPIOsetmode(GPIOBCM) set board mode to Broadcom

GPIOsetup(17 GPIOOUT) set up pin 17

GPIOsetup(18 GPIOOUT) set up pin 18

GPIOoutput(17 1) turn on pin 17

GPIOoutput(18 1) turn on pin 18

Importation

librairie GPIO

Module

Galileo Gen 2

Module

RaspBerry PI 3

22

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D (Python CAD FreeCAD)

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

23

from OCCSTEPControl import STEPControl_Reader

from OCCIFSelect import IFSelect_RetDone IFSelect_ItemsByEntity

from OCCDisplaySimpleGui import init_display

step_reader = STEPControl_Reader()

status = step_readerReadFile(modelswind_turbinestp)

if status == IFSelect_RetDone check status

failsonly = False

step_readerPrintCheckLoad(failsonly IFSelect_ItemsByEntity)

step_readerPrintCheckTransfer(failsonly IFSelect_ItemsByEntity)

ok = step_readerTransferRoot(1)

_nbs = step_readerNbShapes()

aResShape = step_readerShape(1)

else

print(Error cant read file)

sysexit(0)

display start_display add_menu add_function_to_menu = init_display()

displayDisplayShape(aResShape update=True)

start_display()

Importation

librairie OCC

Maillage Dauphin

Rendu du macirct drsquoun

aeacuterogeacuteneacuterateur

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D (Python CAD FreeCAD)

Bioinformatique et manipulation du geacutenome

POO avec Python (Programmation

Orienteacutee Objet) Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

class Rocket()

Rocket simule une roquette pour un jeu

ou une simulation de physique

def __init__(self)

Each rocket has an (xy) position

selfx = 0

selfy = 0

def move_up(self)

Increacutementation de la position y de la roquette

selfy += 1

Deacutefinir une ensemble de 5 roquettes les stocker dans une liste

my_rockets = []

for x in range(05)

new_rocket = Rocket()

my_rocketsappend(new_rocket)

A remarquer que chaque roquette est un objet agrave part entiegravere

for rocket in my_rockets

print(rocket)

Deacutefinition drsquoune

nouvelle Classe

Instantiation

Meacutethode Constructeur

__init__

24

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D (Python CAD FreeCAD)

Bioinformatique et manipulation

du geacutenome Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

25

from Bio import SeqIO

for seq_record in SeqIOparse(ls_orchidgbk genbank)

print(seq_recordid)

print(repr(seq_recordseq))

print(len(seq_record))

Z785331

Seq(CGTAACAAGGTTTCCGTAGGTGAACCTGCGGAAGGATCATTGATGAGACCGTGGCGC

IUPACAmbiguousDNA())

740

Z784391

Seq(CATTGTTGAGATCACATAATAATTGATCGAGTTAATCTGGAGGATCTGTTTACTGCC

IUPACAmbiguousDNA())

592

Sinon dans une Terminal Python

gtgtgt from BioSeq import Seq

gtgtgt from BioAlphabet import generic_dna

gtgtgt gene = Seq(GTGAAAAAGATGCAATCTATCGTACTCGCACTTTCCCTGGTTCTGGTCGCTCCCATGGCA +

GCACAGGCTGCGGAAATTACGTTAGTCCCGTCAGTAAAATTACAGATAGGCGATCGTGAT +

AATCGTGGCTATTACTGGGATGGAGGTCACTGGCGCGACCACGGCTGGTGGAAACAACAT +

TATGAATGGCGAGGCAATCGCTGGCACCTACACGGACCGCCGCCACCGCCGCGCCACCAT +

AAGAAAGCTCCTCATGATCATCACGGCGGTCATGGTCCAGGCAAACATCACCGCTAA

generic_dna)

gtgtgt genetranslate(table=Bacterial)

Seq(VKKMQSIVLALSLVLVAPMAAQAAEITLVPSVKLQIGDRDNRGYYWDGGHWRDHHR

HasStopCodon(ExtendedIUPACProtein() )

gtgtgt genetranslate(table=Bacterial to_stop=True)

Seq(VKKMQSIVLALSLVLVAPMAAQAAEITLVPSVKLQIGDRDNRGYYWDGGHWRDHHHR

ExtendedIUPACProtein())

Logo de

BioPython Seacutequence drsquoADN

Importation

librairie BIO

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D (Python CAD FreeCAD)

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

26

Installer agrave partir de PyPI

$ pip install mezzanine

Instantier un projet

$ mezzanine-project monproject

$ cd monproject

Instantier une Base de donneacutees

$ python managepy createdb

Lancer le serveur Web

$ python managepy runserver

Installation en mode

commande

URL du site instantieacute

Version Mobile Menu

Version Administration

Sites Web fait avec

Mezzanine

Version Normal

Les environnements de deacuteveloppement inteacutegreacutes de code Python sont nombreux des solutions proprieacutetaires agrave celles portant le

label GPL

Ils sont de trois grandes cateacutegories

Les applications bureaux (Desktop)

Les consoles de commande en ligne Les interfaces orienteacutees Web

Outils drsquoeacutelaboration de code Python (IDE)

27

Les environnements de deacuteveloppement inteacutegreacutes de code Python sont nombreux des solutions proprieacutetaires agrave celles portant le

label GPL Ils sont de trois grandes cateacutegories

Les applications bureaux (Desktop)

Les consoles de commande en ligne

Les interfaces orienteacutees Web

Outils drsquoeacutelaboration de code Python (IDE)

28

Les environnements de deacuteveloppement inteacutegreacutes de code Python sont nombreux des solutions proprieacutetaires agrave celles portant le

label GPL Ils sont de trois grandes cateacutegories

Les applications bureaux (Desktop)

Les consoles de commande en ligne

Les interfaces orienteacutees Web

Outils drsquoeacutelaboration de code Python (IDE)

29

30

Nom de Symbole Les noms de variables en Python peuvent contenir des caractegraveres alphanumeacuteriques a-z A-Z 0-

9 et certains caractegraveres speacuteciaux tel que _ Les noms de variables normales doivent commencer par une lettre

Par convention les noms de variables commencent par une lettre minuscule et les noms de classe commencent par

une lettre majuscule En outre il y a un certain nombre de mots-cleacutes Python qui ne peuvent pas ecirctre utiliseacutes comme

noms de variables Ces mots-cleacutes sont les suivants

and as assert break class continue def del elif else except exec finally for from global if import in

is lambda not or pass print raise return try while with yield

Affectation assignment de variable

x = 10

my_variable = 122

type(x) fonction TYPE retourne le type de la variable entre parenthegravese

builtinsfloat

Verification de type x = 10

veacuterifier si la variable est reacuteelle

type(x) is float

isinstance(x float)

True

z = complex(x)

print(z type(z))

(1+0j) ltclass complexlsquogt

Base de repreacutesentation des donneacutees

31

Operateurs et comparaisons Opeacuterateurs arithmeacutetiques + - (division entiegravere) puissance

30 20

10

NB operators puissance en python nrsquoest pas ^ mais

2 2

4

Les opeacuterateurs de comparaison sont gtltgt=lt===

objects identiques

x1 = x2 = [12]

x1 is x2

True

2 gt= 2 2 lt= 2

(True True)

Chaines de caractegraveres les liste et les dictionnaires s = Hello world

type(s)

builtinsstr

length of the string the number of characters

len(s)

11

replace a substring in a string with somethign else

s2 = sreplace(world test)

print(s2)

Hello test

s[0]

H

Base de repreacutesentation des donneacutees

32

Chaines de caractegraveres les liste et les dictionnaires s = Hello worldldquo

replace a substring in a string with somethign else

s2 = sreplace(world test)

Hello test

print(s2)

s[05]

Hellolsquo

s[05]

Hellolsquo

s[]

Hello worldlsquo

print(value = f 10) Formatage C des variables

value = 1000000

s2 = value1 = 2f value2 = d (31415 15)

print(s2)

value1 = 314 value2 = 1

Listes l = [1234]

print(type(l))

print(l)

ltclass listgt

[1 2 3 4]

l = [1 a 10 1-1j] peuvent ecirctre heacuteteacuterogegravene

print(l)

[1 a 10 (1-1j)]

Base de repreacutesentation des donneacutees

33

Listes start = 10

stop = 30

step = 2

range(start stop step)

range(10 30 2)

list(range(start stop step))

[10 12 14 16 18 20 22 24 26 28]

s2 = list(s)

S2

[H e l l o w o r l d]

Tri de la liste

s2sort()

print(s2)

[ H d e l l l o o r w]

l = []

lappend(A)

lappend(d)

lappend(d)

print(l)

[A d d]

Tuples Ce sont des variables comme les listes mais pas alteacuterables

point = (10 20)

print(point type(point))

(10 20) ltclass tuplegt

Base de repreacutesentation des donneacutees

34

Tuples x y = point

print(x = x)

print(y = y)

x = 10

y = 20

Dictionaries params = parameter1 10 parameter2 20 parameter3 30

print(type(params))

print(params)

ltclass dictgt

fparameter2 20 parameter3 30 parameter1 10

params[parameter1] = A

params[parameter2] = B

Ajouter une nouvelle entreacutee

params[parameter4] = D

print(paramegravetre = + str(params[parameter1]))

print(paramegravetre = + str(params[parameter2]))

print(paramegravetre = + str(params[parameter3]))

print(paramegravetre = + str(params[parameter4]))

paramegravetre = A

paramegravetre = B

paramegravetre = 30

paramegravetre = D

Base de repreacutesentation des donneacutees

35

36

Affectation amp Controcircle conditionnel de flue statement1 = False Crsquoest une affectation

statement2 = False

if statement1 Test valideacute condition (statement1) est VRAIE

print(statement1 is True)

elif statement2 Exeacutecuteacutee condition (statement2) est VRAIE

print(statement2 is True)

else Exeacutecuteacutee sinon

print(statement1 and statement2 are False)

Boucles for x in [123] [123] peut ecirctre deacutesigneacute par range(3) avec print(x+1)

print(x)

1

2

3

for word in [scientific computing with python]

print(word) condition de reacutepeacutetition deacutependante du contenu de la liste

scientific

computing

with

python

l1 = [x2 for x in range(05)] agrave remarquer la compaciteacute du Python

print(l1)

[0 1 4 9 16]

Base de repreacutesentation des donneacutees

37

Boucles var = 0

while var = 1

print jlsquoeacutecris mon programme ici

choix = raw_input(voulez vous recommencer ( on ) )

if choix == n

var = 1

else

lsquovous allez ecirctre renvoyeacute au deacutebut du programmersquo

X = y 2

while x gt 1

If y x == 0

print y lsquo est facteur de rsquo x

break

x -= 1

else

print y lsquo est premierlsquo

Lrsquoutilisation de zip et map peut srsquoaveacutereacutee encore plus efficace

l1 = [1 2 3]

l2 = [4 5 6]

for (x y) in zip(l1 l2)

print x y -- x + y

1 4 -- 5

2 5 -- 7

3 6 -- 9

Base de repreacutesentation des donneacutees

38

s=0123456789

print map(int s)

[0 1 2 3 4 5 6 7 8 9]

Utilisation et

puissance de MAP

Utilisation de ZIP

Intervales range(start stop step)

range(5 10)

5 jusqursquoagrave 10 (exclue) avec un pas de 1

range(0 10 3)

0 3 6 9

range(-10 -100 -30)

-10 -40 -70

Test conditionnel binaire x = 5

y = 10

if x gt y

print(x est grand que y)

else

print(ldquox nrsquoest pas grand que yrdquo)

Dans Python on peut compliquer les chose

x = 5

y = 10

Z = 12

if z gt x gt y

print(lsquoy est petit que x et x est petit que z)

Base de repreacutesentation des donneacutees

39

Boucle avec test conditionnel binaire break continue et else dans une boucle for

for n in range(2 10)

for x in range(2 n)

if n x == 0

print(n lsquoest eacutegal agrave x nx)

break

else

print(n lsquoest premier)

Utilisation de lrsquoinstruction continue

for num in range(2 10)

if num 2 == 0 le symbole deacutesigne lrsquoopeacuteration RESTE de la division

print(ldquoNombre paire trouveacute num)

continue

print(ldquoNombre non premier num)

Base de repreacutesentation des donneacutees

40

Deacutefinition de fonction (proceacutedure avec retour) def fib(n) Ecrire la suite de Fibonacci jusqursquoagrave n

a b = 0 1

while a lt n

print(a end= )

a b = b a+b

print()

fib(2000)

0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597

f = fib deacutesignation par reacutefeacuterence f agrave la fonction fib

f(100)

0 1 1 2 3 5 8 13 21 34 55 89

autre type de deacutefinition de fonction

def ask_ok(prompt retries=4 complaint=Oui or Non srsquoil vou plait )

while True

ok = input(prompt)

if ok in (lsquoo lsquooui lsquoOui)

return True

if ok in (lsquon no non lsquoNon)

return False

retries = retries - 1

if retries lt 0

raise OSError(lsquoUtilisateur non coopeacuteratif)

print(complaint)

Base de repreacutesentation des donneacutees

41

Lrsquoinstruction lambda def make_incrementeur(n)

return lambda x x + n

f = make_incrementeur(42)

f(0)

42

f(1)

43

un autre cas drsquoutilisation

pairs = [(1 one) (2 two) (3 three) (4 four)]

pairssort(key=lambda pair pair[1])

pairs

[(4 four) (1 one) (3 three) (2 two)]

Les annotations dans une fonction Les annotations deacutefinissent des messages de preacutesentation

def f(chiken str eggs str = eggs) -gt str remarquer que la fonction est de type STR

print(Annotations f__annotations__)

print(Arguments chiken eggs)

return chiken + and + eggs

f(spam)

Annotations chiken ltclass strgt return ltclass strgt eggs ltclass strgt

Arguments spam eggs

spam and eggslsquo

Base de repreacutesentation des donneacutees

42

Les deacutecorateurs python Notre deacutecorateur

def decorate(func)

print uJe suis dans la fonction decorate et je deacutecore s func__name__

print uExeacutecution de la fonction s func__name__

return func

Fonction cible utiliseacutee avec DECORATOR

decorate

def foobar(args)

print join(args)

Exemple drsquoappel de la fonction

foobar(A B C D)

Je suis dans la fonction decorate et je deacutecore foobar

Exeacutecution de la fonction foobar

A B C D

Il est posible drsquoattribuer plusieurs deacutecorateurs agrave une seule fonction

decorateur1

decorateur2

def ma_fonction()

instructions

Base de repreacutesentation des donneacutees

43

Manipulation des listes a = [6625 333 333 1 12345]

print(acount(333) acount(6625) acount(x))

2 1 0

ainsert(2 -1)

aappend(333)

a

[6625 333 -1 333 1 12345 333]

aindex(333)

1

aremove(333)

a

[6625 -1 333 1 12345 333]

areverse()

a

[333 12345 1 333 -1 6625]

asort()

a

[-1 1 6625 333 333 12345]

apop()

12345

a

[-1 1 6625 333 333]

Base de repreacutesentation des donneacutees

44

Puissance du langage Python Lrsquoensemble des lignes suiantes peut ecirctre compacteacute par ce qui suit

combs = []

for x in [123]

for y in [314]

if x = y

combsappend((x y))

Combs

Ou bien

[(x y) for x in [123] for y in [314] if x = y]

Donne le mecircme reacutesultat

[(1 3) (1 4) (2 3) (2 1) (2 4) (3 1) (3 4)]

Calcul de la valeur de PI arrondie

from math import pi

[str(round(pi i)) for i in range(1 6)]

[31 314 3142 31416 314159]

Geacuteneacuterateur avec utilisation de YIELD

def generateur()

yield a

yield b

yield cldquo

i=generateur()

for v in i

print v

a

b

c

Base de repreacutesentation des donneacutees

45

Les expressions reacuteguliegraveres en python Les expressions reacuteguliegravere sont utiliseacutees pour veacuterifier la conformiteacute des expressions de

chaines de caractegraveres par rapport agrave un motif Les symboles suivants sont utiliseacutes

^ $ + [ ] | ( )

Le point correspond agrave nimporte quel caractegravere

^ Indique un commencement de segment mais signifie aussi contraire de

$ Fin de segment

[xy] Une liste de segment possible Exemple [abc] eacutequivaut agrave a b ou c

(x|y) Indique un choix multiple type (ps|ump) eacutequivaut agrave ps OU UMP

d le segment est composeacute uniquement de chiffre ce qui eacutequivaut agrave [0-9]

D le segment nest pas composeacute de chiffre ce qui eacutequivaut agrave [^0-9]

s Un espace ce qui eacutequivaut agrave [ tnrfv]

S Pas despace ce qui eacutequivaut agrave [^ tnrfv]

w Preacutesence alphanumeacuterique ce qui eacutequivaut agrave [a-zA-Z0-9_]

W Pas de preacutesence alphanumeacuterique [^a-zA-Z0-9_]

Est un caractegravere deacutechappement T2 Le T soit reacutepeacuteteacute 2 fois

TA19 La seacutequence TA doit ecirctre preacutesente de 1 agrave 9 fois

TAM10 La seacutequence TAM nrsquoexiste pas ou reacutepeacuteteacutee 10 fois

LI1 La seacutequence LI doit ecirctre reacutepeacuteteacutee au moins une fois

Base de repreacutesentation des donneacutees

46

Les expressions reacuteguliegraveres en python Utilisation des expressions reacuteguliegravere

import re

print rematch(rGR()S GRIS)

lt_sreSRE_Match object at 0x02019DE0gt

Une utilisation freacutequente consiste en la validation des valeurs des emails saisis

Utilisation des expressions reacuteguliegravere

import re

mails = [lsquomtamaligmailcomrsquorsquoutmbuniv-bechardzrsquo lsquo8freefrrsquo lsquouniv-bechardzrsquo lsquotamalicdtarsquo]

regex = recompile(rrsquo^[a-z0-9_-]+[a-z0-9_-]+[(com|fr|dz)]+rsquo

for mail in mails

if regexmatch(mail) is not None

print Ce mail s est valide mail

else

print Erreur ce mail s est non valide mail

Ce mail mtamaligmailcom est valide

Ce mail utmbuniv-bechardz est valide

Ce mail 8freefr est valide

Erreur ce mail univ-bechardz est non valide

Erreur ce mail tamalicdta est non valide

Base de repreacutesentation des donneacutees

47

Les fichiers Creacuteer lire et eacutecrire dans un fichier en python Utilisation des expressions reacuteguliegravere

fichier = open(donneestxt r)

print fichier

ltopen file lsquodonneestxt mode r at 0x7ff6cf3fe4b0gt

Le descripteur permet de renseigner la machine sur la maniegravere avec laquelle le fichier est utiliseacute

r pour ouverture en mode READ

w pour ouverture en mode WRITE chaque fois le contenu du fichier est eacutecraseacute sinon python le creacutee

a pour ajout lsquoAPPENDrsquo Si le fichier nexiste pas python le creacutee

b Ouverture en mode Binaire

t Ouverture en mode Texte

x creacutee un nouveau fichier et louvrir pour eacutecriture

proceacutedure geacuteneacuterale pour lrsquoutilisation drsquoun fichier

fichier = open(lsquodonneestxtrsquo r)

print fichierread()

fichierclose()

Lrsquoinstruction WITH peut ecirctre utiliseacutee sans besoin de la fonction CLOSE

with open(datatxt r) as fichier

print fichierread()

Base de repreacutesentation des donneacutees

48

49

Le langage Python est un langage script interpreacuteteacute Le programme portant lrsquoune des extension py pyw ou pwc est

structureacute selon le canevas suivant

Les codifications

usrbinpython27

--codingencodage -

Les imports des librairies

Les instructions

Le langage Python passe pour ecirctre exeacutecuteacute sur deux eacutetapes la premiegravere UNE PRECOMPILATION geacuteneacuteration du code

machine et finalement un eacutecriture en code machine exeacutecutable (selon la machine)

Lrsquoenvironnement drsquoexeacutecution des scripts eacutecrits en Python regroupe les avantages des TRADUCTEURS (travaille en ligne par

ligne) et les COMPILATEURS (puissance de la structure algorithmique)

La bibliothegraveque cx_Freeze sert agrave transformer les fichiers scripts Pyhon py en exeacutecutable exe

Structures algorithmique du python

50

51

Matrices amp Systegravemes lineacuteaires

52

53

54

55

56

57

Le calcul scientifique

Reacutefeacuterences L-V Bertallanfy lsquoGeneral System Theoryrsquo Edition MASSON 1972

58

Page 13: Chap XIII : calcul scientifique avec python

Elaboration drsquoun environnement logiciel Python Utilisation Sous Jupyter Interface WEB pour Python

Cette interface Web est facilement mise en œuvre par son

installation

conda install jupyter (si Anaconda est installeacute)

Ou

pip install jupyter

Le lancement de lrsquointerface est fait en invoquant

Jupiter notebook

Ouvrir le navigateur et entrer lrsquoadresse http1270018888

Pour utiliser un autre PORT autre que 8888

On note http127001Nouveau_Port

Lrsquointerface JUPITER est intuitive et facile agrave utiliser ses

fonctionnaliteacutes sont bull Deacuteploiement sous protocole Internet drsquoaptitude de calcul

Python

bull Toute les possibiliteacutes de gestion des documents lsquoNotebookrsquo

sont offertes

bull Possibiliteacutes drsquoeacutedition non limiteacutees (LaTeX HTML Code hellip)

bull Exeacutecution immeacutediate

bull Compatibiliteacute avec la plupart des langages et scripts de

programmation (CC++ Java JavaScript Julia Python R

Octave hellip)

bull Offre accessibiliteacute agrave Jupyter Drive via Google Drive

bull Options de Reporting avanceacutees (HTML LaTeX PDF)

13

Exemple de

code avec son

exeacutecution

Menu et barre

drsquooutils

Elaboration drsquoun environnement logiciel Python Utilisation Sous Jupyter Interface WEB pour Python

Les notebooks sont accessibles agrave partir de PyCharm Les notebooks sont des solutions de collaboration de preacutefeacuterences

ils integravegrent toute les fonctionnaliteacutes exigeacutees par un chercheur

dans le domaine des sciences humaines ou technologiques

Organisation des documents leur ouverture eacutedition ou mise agrave

jours se fait dans le mecircme endroit sans aucune deacutependance par

rapport agrave la machine puisque les notebooks sont accessible en

ligne (Serveur Ordinateur de bureau ou Peacuteripheacuterique mobile)

Les possibiliteacutes sont eacutetendues ainsi qursquoune documentation

abondante

14

Graphique

3D

Exemple de Code

Python

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse des donneacutees (Panda)

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

15

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse des donneacutees (Panda)

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

import numpy as np

systeme = nparray([[12][3-4]])

valeur=nparray([[3][1]])

sol=nplinalgsolve(systemevaleur)

print(x=sol[00] et y=sol[10])

x= 14 et y= 08

Reacutesolution de systegraveme lineacuteaire AX=b gtgtgt import numpy as np

gtgtgt from scipy import linalg

gtgtgt A = nparray([[1 2] [3 4]])

gtgtgt A

array([[1 2][3 4]])

gtgtgt b = nparray([[5] [6]])

gtgtgt b

array([[5][6]])

gtgtgt linalginv(A)dot(b) slow

array([[-4 ][ 45]])

gtgtgt Adot(linalginv(A)dot(b)) - b Veacuterification array([[888178420e-16][266453526e-15]])

gtgtgt nplinalgsolve(A b) fast

array([[-4 ][ 45]])

gtgtgt Adot(nplinalgsolve(A b)) - b Veacuterification array([[ 0][ 0]])

Importation de la

librairie Numpy

16

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse des donneacutees (Panda)

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

17

import numpy as np

from scipy import signal misc

import matplotlibpyplot as plt

image = miscface(gray=True)astype(npfloat32)

derfilt = nparray([10 -2 10] dtype=npfloat32)

ck = signalcspline2d(image 80)

deriv = (signalsepfir2d(ck derfilt [1]) +signalsepfir2d(ck [1] derfilt))

laplacian = nparray([[010] [1-41] [010]] dtype=npfloat32)

deriv2 = signalconvolve2d(cklaplacianmode=lsquosameboundary=symm)

pltfigure()

pltimshow(image)

pltgray()

plttitle(lsquoImage original)

pltshow()

pltfigure()

pltimshow(deriv)

pltgray()

plttitle(lsquosortie avec filtre spline)

pltshow()

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse des donneacutees (Panda)

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

from matplotlibpyplot import figure hold plot legend draw

from numpy import linspace

import scipystats as stats

from numpyrandom import randn

x = randn(100)

fig = figure()

ax = figadd_subplot(111)

axhist(x bins=30 label=rsquoEmpiricalrsquo)

xlim = axget_xlim()

ylim = axget_ylim()

pdfx = linspace(xlim[0] xlim[1] 200)

pdfy = statsnormpdf(pdfx)

pdfy = pdfy pdfymax() ylim[1]

hold(True)

plot(pdfx pdfy rsquor-rsquo label=rsquoPDFrsquo)

axset_ylim((ylim[0] 12 ylim[1]))

legend()

hold(False)

draw()

18

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse des donneacutees (Panda QtGraph)

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation 19

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Domaines drsquoutilisation

matplotlib inline

from pylab import plot show title xlabel ylabel subplot savefig

from scipy import fft arange ifft

from numpy import sin linspace pi

from scipyiowavfile import readwrite

def plotSpectru(yFs)

n = len(y) lungime semnal

k = arange(n)

T = nFs

frq = kT two sides frequency range

frq = frq[range(n2)] one side frequency range

Y = fft(y)n fft computing and normalization

Y = Y[range(n2)]

plot(frqabs(Y)r) plotting the spectrum

xlabel(Freq (Hz))

ylabel(|Y(freq)|)

Fs = 44100 sampling rate

ratedata=read(fatihawav)

y=data

lungime=len(y)

timp=len(y)44100

t=linspace(0timplen(y))

subplot(211)

plot(ty)

xlabel(Time)

ylabel(Amplitude)

subplot(212)

plotSpectru(yFs)

show()

20

Lecture de la

sourah

Code du traitement

audio

Spectre Amp|Freacuteq

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele (MPI Python)

Theacuteorie des graphes (Networkx)

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

21 Exemple

de graphe

Fenecirctre Aperccedilu

du bloc-note

Importation de la

librairie NetworkX

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

import RPiGPIO as GPIO

GPIOsetmode(GPIOBCM) set board mode to Broadcom

GPIOsetup(17 GPIOOUT) set up pin 17

GPIOsetup(18 GPIOOUT) set up pin 18

GPIOoutput(17 1) turn on pin 17

GPIOoutput(18 1) turn on pin 18

Importation

librairie GPIO

Module

Galileo Gen 2

Module

RaspBerry PI 3

22

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D (Python CAD FreeCAD)

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

23

from OCCSTEPControl import STEPControl_Reader

from OCCIFSelect import IFSelect_RetDone IFSelect_ItemsByEntity

from OCCDisplaySimpleGui import init_display

step_reader = STEPControl_Reader()

status = step_readerReadFile(modelswind_turbinestp)

if status == IFSelect_RetDone check status

failsonly = False

step_readerPrintCheckLoad(failsonly IFSelect_ItemsByEntity)

step_readerPrintCheckTransfer(failsonly IFSelect_ItemsByEntity)

ok = step_readerTransferRoot(1)

_nbs = step_readerNbShapes()

aResShape = step_readerShape(1)

else

print(Error cant read file)

sysexit(0)

display start_display add_menu add_function_to_menu = init_display()

displayDisplayShape(aResShape update=True)

start_display()

Importation

librairie OCC

Maillage Dauphin

Rendu du macirct drsquoun

aeacuterogeacuteneacuterateur

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D (Python CAD FreeCAD)

Bioinformatique et manipulation du geacutenome

POO avec Python (Programmation

Orienteacutee Objet) Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

class Rocket()

Rocket simule une roquette pour un jeu

ou une simulation de physique

def __init__(self)

Each rocket has an (xy) position

selfx = 0

selfy = 0

def move_up(self)

Increacutementation de la position y de la roquette

selfy += 1

Deacutefinir une ensemble de 5 roquettes les stocker dans une liste

my_rockets = []

for x in range(05)

new_rocket = Rocket()

my_rocketsappend(new_rocket)

A remarquer que chaque roquette est un objet agrave part entiegravere

for rocket in my_rockets

print(rocket)

Deacutefinition drsquoune

nouvelle Classe

Instantiation

Meacutethode Constructeur

__init__

24

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D (Python CAD FreeCAD)

Bioinformatique et manipulation

du geacutenome Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

25

from Bio import SeqIO

for seq_record in SeqIOparse(ls_orchidgbk genbank)

print(seq_recordid)

print(repr(seq_recordseq))

print(len(seq_record))

Z785331

Seq(CGTAACAAGGTTTCCGTAGGTGAACCTGCGGAAGGATCATTGATGAGACCGTGGCGC

IUPACAmbiguousDNA())

740

Z784391

Seq(CATTGTTGAGATCACATAATAATTGATCGAGTTAATCTGGAGGATCTGTTTACTGCC

IUPACAmbiguousDNA())

592

Sinon dans une Terminal Python

gtgtgt from BioSeq import Seq

gtgtgt from BioAlphabet import generic_dna

gtgtgt gene = Seq(GTGAAAAAGATGCAATCTATCGTACTCGCACTTTCCCTGGTTCTGGTCGCTCCCATGGCA +

GCACAGGCTGCGGAAATTACGTTAGTCCCGTCAGTAAAATTACAGATAGGCGATCGTGAT +

AATCGTGGCTATTACTGGGATGGAGGTCACTGGCGCGACCACGGCTGGTGGAAACAACAT +

TATGAATGGCGAGGCAATCGCTGGCACCTACACGGACCGCCGCCACCGCCGCGCCACCAT +

AAGAAAGCTCCTCATGATCATCACGGCGGTCATGGTCCAGGCAAACATCACCGCTAA

generic_dna)

gtgtgt genetranslate(table=Bacterial)

Seq(VKKMQSIVLALSLVLVAPMAAQAAEITLVPSVKLQIGDRDNRGYYWDGGHWRDHHR

HasStopCodon(ExtendedIUPACProtein() )

gtgtgt genetranslate(table=Bacterial to_stop=True)

Seq(VKKMQSIVLALSLVLVAPMAAQAAEITLVPSVKLQIGDRDNRGYYWDGGHWRDHHHR

ExtendedIUPACProtein())

Logo de

BioPython Seacutequence drsquoADN

Importation

librairie BIO

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D (Python CAD FreeCAD)

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

26

Installer agrave partir de PyPI

$ pip install mezzanine

Instantier un projet

$ mezzanine-project monproject

$ cd monproject

Instantier une Base de donneacutees

$ python managepy createdb

Lancer le serveur Web

$ python managepy runserver

Installation en mode

commande

URL du site instantieacute

Version Mobile Menu

Version Administration

Sites Web fait avec

Mezzanine

Version Normal

Les environnements de deacuteveloppement inteacutegreacutes de code Python sont nombreux des solutions proprieacutetaires agrave celles portant le

label GPL

Ils sont de trois grandes cateacutegories

Les applications bureaux (Desktop)

Les consoles de commande en ligne Les interfaces orienteacutees Web

Outils drsquoeacutelaboration de code Python (IDE)

27

Les environnements de deacuteveloppement inteacutegreacutes de code Python sont nombreux des solutions proprieacutetaires agrave celles portant le

label GPL Ils sont de trois grandes cateacutegories

Les applications bureaux (Desktop)

Les consoles de commande en ligne

Les interfaces orienteacutees Web

Outils drsquoeacutelaboration de code Python (IDE)

28

Les environnements de deacuteveloppement inteacutegreacutes de code Python sont nombreux des solutions proprieacutetaires agrave celles portant le

label GPL Ils sont de trois grandes cateacutegories

Les applications bureaux (Desktop)

Les consoles de commande en ligne

Les interfaces orienteacutees Web

Outils drsquoeacutelaboration de code Python (IDE)

29

30

Nom de Symbole Les noms de variables en Python peuvent contenir des caractegraveres alphanumeacuteriques a-z A-Z 0-

9 et certains caractegraveres speacuteciaux tel que _ Les noms de variables normales doivent commencer par une lettre

Par convention les noms de variables commencent par une lettre minuscule et les noms de classe commencent par

une lettre majuscule En outre il y a un certain nombre de mots-cleacutes Python qui ne peuvent pas ecirctre utiliseacutes comme

noms de variables Ces mots-cleacutes sont les suivants

and as assert break class continue def del elif else except exec finally for from global if import in

is lambda not or pass print raise return try while with yield

Affectation assignment de variable

x = 10

my_variable = 122

type(x) fonction TYPE retourne le type de la variable entre parenthegravese

builtinsfloat

Verification de type x = 10

veacuterifier si la variable est reacuteelle

type(x) is float

isinstance(x float)

True

z = complex(x)

print(z type(z))

(1+0j) ltclass complexlsquogt

Base de repreacutesentation des donneacutees

31

Operateurs et comparaisons Opeacuterateurs arithmeacutetiques + - (division entiegravere) puissance

30 20

10

NB operators puissance en python nrsquoest pas ^ mais

2 2

4

Les opeacuterateurs de comparaison sont gtltgt=lt===

objects identiques

x1 = x2 = [12]

x1 is x2

True

2 gt= 2 2 lt= 2

(True True)

Chaines de caractegraveres les liste et les dictionnaires s = Hello world

type(s)

builtinsstr

length of the string the number of characters

len(s)

11

replace a substring in a string with somethign else

s2 = sreplace(world test)

print(s2)

Hello test

s[0]

H

Base de repreacutesentation des donneacutees

32

Chaines de caractegraveres les liste et les dictionnaires s = Hello worldldquo

replace a substring in a string with somethign else

s2 = sreplace(world test)

Hello test

print(s2)

s[05]

Hellolsquo

s[05]

Hellolsquo

s[]

Hello worldlsquo

print(value = f 10) Formatage C des variables

value = 1000000

s2 = value1 = 2f value2 = d (31415 15)

print(s2)

value1 = 314 value2 = 1

Listes l = [1234]

print(type(l))

print(l)

ltclass listgt

[1 2 3 4]

l = [1 a 10 1-1j] peuvent ecirctre heacuteteacuterogegravene

print(l)

[1 a 10 (1-1j)]

Base de repreacutesentation des donneacutees

33

Listes start = 10

stop = 30

step = 2

range(start stop step)

range(10 30 2)

list(range(start stop step))

[10 12 14 16 18 20 22 24 26 28]

s2 = list(s)

S2

[H e l l o w o r l d]

Tri de la liste

s2sort()

print(s2)

[ H d e l l l o o r w]

l = []

lappend(A)

lappend(d)

lappend(d)

print(l)

[A d d]

Tuples Ce sont des variables comme les listes mais pas alteacuterables

point = (10 20)

print(point type(point))

(10 20) ltclass tuplegt

Base de repreacutesentation des donneacutees

34

Tuples x y = point

print(x = x)

print(y = y)

x = 10

y = 20

Dictionaries params = parameter1 10 parameter2 20 parameter3 30

print(type(params))

print(params)

ltclass dictgt

fparameter2 20 parameter3 30 parameter1 10

params[parameter1] = A

params[parameter2] = B

Ajouter une nouvelle entreacutee

params[parameter4] = D

print(paramegravetre = + str(params[parameter1]))

print(paramegravetre = + str(params[parameter2]))

print(paramegravetre = + str(params[parameter3]))

print(paramegravetre = + str(params[parameter4]))

paramegravetre = A

paramegravetre = B

paramegravetre = 30

paramegravetre = D

Base de repreacutesentation des donneacutees

35

36

Affectation amp Controcircle conditionnel de flue statement1 = False Crsquoest une affectation

statement2 = False

if statement1 Test valideacute condition (statement1) est VRAIE

print(statement1 is True)

elif statement2 Exeacutecuteacutee condition (statement2) est VRAIE

print(statement2 is True)

else Exeacutecuteacutee sinon

print(statement1 and statement2 are False)

Boucles for x in [123] [123] peut ecirctre deacutesigneacute par range(3) avec print(x+1)

print(x)

1

2

3

for word in [scientific computing with python]

print(word) condition de reacutepeacutetition deacutependante du contenu de la liste

scientific

computing

with

python

l1 = [x2 for x in range(05)] agrave remarquer la compaciteacute du Python

print(l1)

[0 1 4 9 16]

Base de repreacutesentation des donneacutees

37

Boucles var = 0

while var = 1

print jlsquoeacutecris mon programme ici

choix = raw_input(voulez vous recommencer ( on ) )

if choix == n

var = 1

else

lsquovous allez ecirctre renvoyeacute au deacutebut du programmersquo

X = y 2

while x gt 1

If y x == 0

print y lsquo est facteur de rsquo x

break

x -= 1

else

print y lsquo est premierlsquo

Lrsquoutilisation de zip et map peut srsquoaveacutereacutee encore plus efficace

l1 = [1 2 3]

l2 = [4 5 6]

for (x y) in zip(l1 l2)

print x y -- x + y

1 4 -- 5

2 5 -- 7

3 6 -- 9

Base de repreacutesentation des donneacutees

38

s=0123456789

print map(int s)

[0 1 2 3 4 5 6 7 8 9]

Utilisation et

puissance de MAP

Utilisation de ZIP

Intervales range(start stop step)

range(5 10)

5 jusqursquoagrave 10 (exclue) avec un pas de 1

range(0 10 3)

0 3 6 9

range(-10 -100 -30)

-10 -40 -70

Test conditionnel binaire x = 5

y = 10

if x gt y

print(x est grand que y)

else

print(ldquox nrsquoest pas grand que yrdquo)

Dans Python on peut compliquer les chose

x = 5

y = 10

Z = 12

if z gt x gt y

print(lsquoy est petit que x et x est petit que z)

Base de repreacutesentation des donneacutees

39

Boucle avec test conditionnel binaire break continue et else dans une boucle for

for n in range(2 10)

for x in range(2 n)

if n x == 0

print(n lsquoest eacutegal agrave x nx)

break

else

print(n lsquoest premier)

Utilisation de lrsquoinstruction continue

for num in range(2 10)

if num 2 == 0 le symbole deacutesigne lrsquoopeacuteration RESTE de la division

print(ldquoNombre paire trouveacute num)

continue

print(ldquoNombre non premier num)

Base de repreacutesentation des donneacutees

40

Deacutefinition de fonction (proceacutedure avec retour) def fib(n) Ecrire la suite de Fibonacci jusqursquoagrave n

a b = 0 1

while a lt n

print(a end= )

a b = b a+b

print()

fib(2000)

0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597

f = fib deacutesignation par reacutefeacuterence f agrave la fonction fib

f(100)

0 1 1 2 3 5 8 13 21 34 55 89

autre type de deacutefinition de fonction

def ask_ok(prompt retries=4 complaint=Oui or Non srsquoil vou plait )

while True

ok = input(prompt)

if ok in (lsquoo lsquooui lsquoOui)

return True

if ok in (lsquon no non lsquoNon)

return False

retries = retries - 1

if retries lt 0

raise OSError(lsquoUtilisateur non coopeacuteratif)

print(complaint)

Base de repreacutesentation des donneacutees

41

Lrsquoinstruction lambda def make_incrementeur(n)

return lambda x x + n

f = make_incrementeur(42)

f(0)

42

f(1)

43

un autre cas drsquoutilisation

pairs = [(1 one) (2 two) (3 three) (4 four)]

pairssort(key=lambda pair pair[1])

pairs

[(4 four) (1 one) (3 three) (2 two)]

Les annotations dans une fonction Les annotations deacutefinissent des messages de preacutesentation

def f(chiken str eggs str = eggs) -gt str remarquer que la fonction est de type STR

print(Annotations f__annotations__)

print(Arguments chiken eggs)

return chiken + and + eggs

f(spam)

Annotations chiken ltclass strgt return ltclass strgt eggs ltclass strgt

Arguments spam eggs

spam and eggslsquo

Base de repreacutesentation des donneacutees

42

Les deacutecorateurs python Notre deacutecorateur

def decorate(func)

print uJe suis dans la fonction decorate et je deacutecore s func__name__

print uExeacutecution de la fonction s func__name__

return func

Fonction cible utiliseacutee avec DECORATOR

decorate

def foobar(args)

print join(args)

Exemple drsquoappel de la fonction

foobar(A B C D)

Je suis dans la fonction decorate et je deacutecore foobar

Exeacutecution de la fonction foobar

A B C D

Il est posible drsquoattribuer plusieurs deacutecorateurs agrave une seule fonction

decorateur1

decorateur2

def ma_fonction()

instructions

Base de repreacutesentation des donneacutees

43

Manipulation des listes a = [6625 333 333 1 12345]

print(acount(333) acount(6625) acount(x))

2 1 0

ainsert(2 -1)

aappend(333)

a

[6625 333 -1 333 1 12345 333]

aindex(333)

1

aremove(333)

a

[6625 -1 333 1 12345 333]

areverse()

a

[333 12345 1 333 -1 6625]

asort()

a

[-1 1 6625 333 333 12345]

apop()

12345

a

[-1 1 6625 333 333]

Base de repreacutesentation des donneacutees

44

Puissance du langage Python Lrsquoensemble des lignes suiantes peut ecirctre compacteacute par ce qui suit

combs = []

for x in [123]

for y in [314]

if x = y

combsappend((x y))

Combs

Ou bien

[(x y) for x in [123] for y in [314] if x = y]

Donne le mecircme reacutesultat

[(1 3) (1 4) (2 3) (2 1) (2 4) (3 1) (3 4)]

Calcul de la valeur de PI arrondie

from math import pi

[str(round(pi i)) for i in range(1 6)]

[31 314 3142 31416 314159]

Geacuteneacuterateur avec utilisation de YIELD

def generateur()

yield a

yield b

yield cldquo

i=generateur()

for v in i

print v

a

b

c

Base de repreacutesentation des donneacutees

45

Les expressions reacuteguliegraveres en python Les expressions reacuteguliegravere sont utiliseacutees pour veacuterifier la conformiteacute des expressions de

chaines de caractegraveres par rapport agrave un motif Les symboles suivants sont utiliseacutes

^ $ + [ ] | ( )

Le point correspond agrave nimporte quel caractegravere

^ Indique un commencement de segment mais signifie aussi contraire de

$ Fin de segment

[xy] Une liste de segment possible Exemple [abc] eacutequivaut agrave a b ou c

(x|y) Indique un choix multiple type (ps|ump) eacutequivaut agrave ps OU UMP

d le segment est composeacute uniquement de chiffre ce qui eacutequivaut agrave [0-9]

D le segment nest pas composeacute de chiffre ce qui eacutequivaut agrave [^0-9]

s Un espace ce qui eacutequivaut agrave [ tnrfv]

S Pas despace ce qui eacutequivaut agrave [^ tnrfv]

w Preacutesence alphanumeacuterique ce qui eacutequivaut agrave [a-zA-Z0-9_]

W Pas de preacutesence alphanumeacuterique [^a-zA-Z0-9_]

Est un caractegravere deacutechappement T2 Le T soit reacutepeacuteteacute 2 fois

TA19 La seacutequence TA doit ecirctre preacutesente de 1 agrave 9 fois

TAM10 La seacutequence TAM nrsquoexiste pas ou reacutepeacuteteacutee 10 fois

LI1 La seacutequence LI doit ecirctre reacutepeacuteteacutee au moins une fois

Base de repreacutesentation des donneacutees

46

Les expressions reacuteguliegraveres en python Utilisation des expressions reacuteguliegravere

import re

print rematch(rGR()S GRIS)

lt_sreSRE_Match object at 0x02019DE0gt

Une utilisation freacutequente consiste en la validation des valeurs des emails saisis

Utilisation des expressions reacuteguliegravere

import re

mails = [lsquomtamaligmailcomrsquorsquoutmbuniv-bechardzrsquo lsquo8freefrrsquo lsquouniv-bechardzrsquo lsquotamalicdtarsquo]

regex = recompile(rrsquo^[a-z0-9_-]+[a-z0-9_-]+[(com|fr|dz)]+rsquo

for mail in mails

if regexmatch(mail) is not None

print Ce mail s est valide mail

else

print Erreur ce mail s est non valide mail

Ce mail mtamaligmailcom est valide

Ce mail utmbuniv-bechardz est valide

Ce mail 8freefr est valide

Erreur ce mail univ-bechardz est non valide

Erreur ce mail tamalicdta est non valide

Base de repreacutesentation des donneacutees

47

Les fichiers Creacuteer lire et eacutecrire dans un fichier en python Utilisation des expressions reacuteguliegravere

fichier = open(donneestxt r)

print fichier

ltopen file lsquodonneestxt mode r at 0x7ff6cf3fe4b0gt

Le descripteur permet de renseigner la machine sur la maniegravere avec laquelle le fichier est utiliseacute

r pour ouverture en mode READ

w pour ouverture en mode WRITE chaque fois le contenu du fichier est eacutecraseacute sinon python le creacutee

a pour ajout lsquoAPPENDrsquo Si le fichier nexiste pas python le creacutee

b Ouverture en mode Binaire

t Ouverture en mode Texte

x creacutee un nouveau fichier et louvrir pour eacutecriture

proceacutedure geacuteneacuterale pour lrsquoutilisation drsquoun fichier

fichier = open(lsquodonneestxtrsquo r)

print fichierread()

fichierclose()

Lrsquoinstruction WITH peut ecirctre utiliseacutee sans besoin de la fonction CLOSE

with open(datatxt r) as fichier

print fichierread()

Base de repreacutesentation des donneacutees

48

49

Le langage Python est un langage script interpreacuteteacute Le programme portant lrsquoune des extension py pyw ou pwc est

structureacute selon le canevas suivant

Les codifications

usrbinpython27

--codingencodage -

Les imports des librairies

Les instructions

Le langage Python passe pour ecirctre exeacutecuteacute sur deux eacutetapes la premiegravere UNE PRECOMPILATION geacuteneacuteration du code

machine et finalement un eacutecriture en code machine exeacutecutable (selon la machine)

Lrsquoenvironnement drsquoexeacutecution des scripts eacutecrits en Python regroupe les avantages des TRADUCTEURS (travaille en ligne par

ligne) et les COMPILATEURS (puissance de la structure algorithmique)

La bibliothegraveque cx_Freeze sert agrave transformer les fichiers scripts Pyhon py en exeacutecutable exe

Structures algorithmique du python

50

51

Matrices amp Systegravemes lineacuteaires

52

53

54

55

56

57

Le calcul scientifique

Reacutefeacuterences L-V Bertallanfy lsquoGeneral System Theoryrsquo Edition MASSON 1972

58

Page 14: Chap XIII : calcul scientifique avec python

Elaboration drsquoun environnement logiciel Python Utilisation Sous Jupyter Interface WEB pour Python

Les notebooks sont accessibles agrave partir de PyCharm Les notebooks sont des solutions de collaboration de preacutefeacuterences

ils integravegrent toute les fonctionnaliteacutes exigeacutees par un chercheur

dans le domaine des sciences humaines ou technologiques

Organisation des documents leur ouverture eacutedition ou mise agrave

jours se fait dans le mecircme endroit sans aucune deacutependance par

rapport agrave la machine puisque les notebooks sont accessible en

ligne (Serveur Ordinateur de bureau ou Peacuteripheacuterique mobile)

Les possibiliteacutes sont eacutetendues ainsi qursquoune documentation

abondante

14

Graphique

3D

Exemple de Code

Python

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse des donneacutees (Panda)

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

15

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse des donneacutees (Panda)

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

import numpy as np

systeme = nparray([[12][3-4]])

valeur=nparray([[3][1]])

sol=nplinalgsolve(systemevaleur)

print(x=sol[00] et y=sol[10])

x= 14 et y= 08

Reacutesolution de systegraveme lineacuteaire AX=b gtgtgt import numpy as np

gtgtgt from scipy import linalg

gtgtgt A = nparray([[1 2] [3 4]])

gtgtgt A

array([[1 2][3 4]])

gtgtgt b = nparray([[5] [6]])

gtgtgt b

array([[5][6]])

gtgtgt linalginv(A)dot(b) slow

array([[-4 ][ 45]])

gtgtgt Adot(linalginv(A)dot(b)) - b Veacuterification array([[888178420e-16][266453526e-15]])

gtgtgt nplinalgsolve(A b) fast

array([[-4 ][ 45]])

gtgtgt Adot(nplinalgsolve(A b)) - b Veacuterification array([[ 0][ 0]])

Importation de la

librairie Numpy

16

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse des donneacutees (Panda)

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

17

import numpy as np

from scipy import signal misc

import matplotlibpyplot as plt

image = miscface(gray=True)astype(npfloat32)

derfilt = nparray([10 -2 10] dtype=npfloat32)

ck = signalcspline2d(image 80)

deriv = (signalsepfir2d(ck derfilt [1]) +signalsepfir2d(ck [1] derfilt))

laplacian = nparray([[010] [1-41] [010]] dtype=npfloat32)

deriv2 = signalconvolve2d(cklaplacianmode=lsquosameboundary=symm)

pltfigure()

pltimshow(image)

pltgray()

plttitle(lsquoImage original)

pltshow()

pltfigure()

pltimshow(deriv)

pltgray()

plttitle(lsquosortie avec filtre spline)

pltshow()

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse des donneacutees (Panda)

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

from matplotlibpyplot import figure hold plot legend draw

from numpy import linspace

import scipystats as stats

from numpyrandom import randn

x = randn(100)

fig = figure()

ax = figadd_subplot(111)

axhist(x bins=30 label=rsquoEmpiricalrsquo)

xlim = axget_xlim()

ylim = axget_ylim()

pdfx = linspace(xlim[0] xlim[1] 200)

pdfy = statsnormpdf(pdfx)

pdfy = pdfy pdfymax() ylim[1]

hold(True)

plot(pdfx pdfy rsquor-rsquo label=rsquoPDFrsquo)

axset_ylim((ylim[0] 12 ylim[1]))

legend()

hold(False)

draw()

18

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse des donneacutees (Panda QtGraph)

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation 19

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Domaines drsquoutilisation

matplotlib inline

from pylab import plot show title xlabel ylabel subplot savefig

from scipy import fft arange ifft

from numpy import sin linspace pi

from scipyiowavfile import readwrite

def plotSpectru(yFs)

n = len(y) lungime semnal

k = arange(n)

T = nFs

frq = kT two sides frequency range

frq = frq[range(n2)] one side frequency range

Y = fft(y)n fft computing and normalization

Y = Y[range(n2)]

plot(frqabs(Y)r) plotting the spectrum

xlabel(Freq (Hz))

ylabel(|Y(freq)|)

Fs = 44100 sampling rate

ratedata=read(fatihawav)

y=data

lungime=len(y)

timp=len(y)44100

t=linspace(0timplen(y))

subplot(211)

plot(ty)

xlabel(Time)

ylabel(Amplitude)

subplot(212)

plotSpectru(yFs)

show()

20

Lecture de la

sourah

Code du traitement

audio

Spectre Amp|Freacuteq

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele (MPI Python)

Theacuteorie des graphes (Networkx)

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

21 Exemple

de graphe

Fenecirctre Aperccedilu

du bloc-note

Importation de la

librairie NetworkX

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

import RPiGPIO as GPIO

GPIOsetmode(GPIOBCM) set board mode to Broadcom

GPIOsetup(17 GPIOOUT) set up pin 17

GPIOsetup(18 GPIOOUT) set up pin 18

GPIOoutput(17 1) turn on pin 17

GPIOoutput(18 1) turn on pin 18

Importation

librairie GPIO

Module

Galileo Gen 2

Module

RaspBerry PI 3

22

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D (Python CAD FreeCAD)

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

23

from OCCSTEPControl import STEPControl_Reader

from OCCIFSelect import IFSelect_RetDone IFSelect_ItemsByEntity

from OCCDisplaySimpleGui import init_display

step_reader = STEPControl_Reader()

status = step_readerReadFile(modelswind_turbinestp)

if status == IFSelect_RetDone check status

failsonly = False

step_readerPrintCheckLoad(failsonly IFSelect_ItemsByEntity)

step_readerPrintCheckTransfer(failsonly IFSelect_ItemsByEntity)

ok = step_readerTransferRoot(1)

_nbs = step_readerNbShapes()

aResShape = step_readerShape(1)

else

print(Error cant read file)

sysexit(0)

display start_display add_menu add_function_to_menu = init_display()

displayDisplayShape(aResShape update=True)

start_display()

Importation

librairie OCC

Maillage Dauphin

Rendu du macirct drsquoun

aeacuterogeacuteneacuterateur

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D (Python CAD FreeCAD)

Bioinformatique et manipulation du geacutenome

POO avec Python (Programmation

Orienteacutee Objet) Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

class Rocket()

Rocket simule une roquette pour un jeu

ou une simulation de physique

def __init__(self)

Each rocket has an (xy) position

selfx = 0

selfy = 0

def move_up(self)

Increacutementation de la position y de la roquette

selfy += 1

Deacutefinir une ensemble de 5 roquettes les stocker dans une liste

my_rockets = []

for x in range(05)

new_rocket = Rocket()

my_rocketsappend(new_rocket)

A remarquer que chaque roquette est un objet agrave part entiegravere

for rocket in my_rockets

print(rocket)

Deacutefinition drsquoune

nouvelle Classe

Instantiation

Meacutethode Constructeur

__init__

24

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D (Python CAD FreeCAD)

Bioinformatique et manipulation

du geacutenome Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

25

from Bio import SeqIO

for seq_record in SeqIOparse(ls_orchidgbk genbank)

print(seq_recordid)

print(repr(seq_recordseq))

print(len(seq_record))

Z785331

Seq(CGTAACAAGGTTTCCGTAGGTGAACCTGCGGAAGGATCATTGATGAGACCGTGGCGC

IUPACAmbiguousDNA())

740

Z784391

Seq(CATTGTTGAGATCACATAATAATTGATCGAGTTAATCTGGAGGATCTGTTTACTGCC

IUPACAmbiguousDNA())

592

Sinon dans une Terminal Python

gtgtgt from BioSeq import Seq

gtgtgt from BioAlphabet import generic_dna

gtgtgt gene = Seq(GTGAAAAAGATGCAATCTATCGTACTCGCACTTTCCCTGGTTCTGGTCGCTCCCATGGCA +

GCACAGGCTGCGGAAATTACGTTAGTCCCGTCAGTAAAATTACAGATAGGCGATCGTGAT +

AATCGTGGCTATTACTGGGATGGAGGTCACTGGCGCGACCACGGCTGGTGGAAACAACAT +

TATGAATGGCGAGGCAATCGCTGGCACCTACACGGACCGCCGCCACCGCCGCGCCACCAT +

AAGAAAGCTCCTCATGATCATCACGGCGGTCATGGTCCAGGCAAACATCACCGCTAA

generic_dna)

gtgtgt genetranslate(table=Bacterial)

Seq(VKKMQSIVLALSLVLVAPMAAQAAEITLVPSVKLQIGDRDNRGYYWDGGHWRDHHR

HasStopCodon(ExtendedIUPACProtein() )

gtgtgt genetranslate(table=Bacterial to_stop=True)

Seq(VKKMQSIVLALSLVLVAPMAAQAAEITLVPSVKLQIGDRDNRGYYWDGGHWRDHHHR

ExtendedIUPACProtein())

Logo de

BioPython Seacutequence drsquoADN

Importation

librairie BIO

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D (Python CAD FreeCAD)

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

26

Installer agrave partir de PyPI

$ pip install mezzanine

Instantier un projet

$ mezzanine-project monproject

$ cd monproject

Instantier une Base de donneacutees

$ python managepy createdb

Lancer le serveur Web

$ python managepy runserver

Installation en mode

commande

URL du site instantieacute

Version Mobile Menu

Version Administration

Sites Web fait avec

Mezzanine

Version Normal

Les environnements de deacuteveloppement inteacutegreacutes de code Python sont nombreux des solutions proprieacutetaires agrave celles portant le

label GPL

Ils sont de trois grandes cateacutegories

Les applications bureaux (Desktop)

Les consoles de commande en ligne Les interfaces orienteacutees Web

Outils drsquoeacutelaboration de code Python (IDE)

27

Les environnements de deacuteveloppement inteacutegreacutes de code Python sont nombreux des solutions proprieacutetaires agrave celles portant le

label GPL Ils sont de trois grandes cateacutegories

Les applications bureaux (Desktop)

Les consoles de commande en ligne

Les interfaces orienteacutees Web

Outils drsquoeacutelaboration de code Python (IDE)

28

Les environnements de deacuteveloppement inteacutegreacutes de code Python sont nombreux des solutions proprieacutetaires agrave celles portant le

label GPL Ils sont de trois grandes cateacutegories

Les applications bureaux (Desktop)

Les consoles de commande en ligne

Les interfaces orienteacutees Web

Outils drsquoeacutelaboration de code Python (IDE)

29

30

Nom de Symbole Les noms de variables en Python peuvent contenir des caractegraveres alphanumeacuteriques a-z A-Z 0-

9 et certains caractegraveres speacuteciaux tel que _ Les noms de variables normales doivent commencer par une lettre

Par convention les noms de variables commencent par une lettre minuscule et les noms de classe commencent par

une lettre majuscule En outre il y a un certain nombre de mots-cleacutes Python qui ne peuvent pas ecirctre utiliseacutes comme

noms de variables Ces mots-cleacutes sont les suivants

and as assert break class continue def del elif else except exec finally for from global if import in

is lambda not or pass print raise return try while with yield

Affectation assignment de variable

x = 10

my_variable = 122

type(x) fonction TYPE retourne le type de la variable entre parenthegravese

builtinsfloat

Verification de type x = 10

veacuterifier si la variable est reacuteelle

type(x) is float

isinstance(x float)

True

z = complex(x)

print(z type(z))

(1+0j) ltclass complexlsquogt

Base de repreacutesentation des donneacutees

31

Operateurs et comparaisons Opeacuterateurs arithmeacutetiques + - (division entiegravere) puissance

30 20

10

NB operators puissance en python nrsquoest pas ^ mais

2 2

4

Les opeacuterateurs de comparaison sont gtltgt=lt===

objects identiques

x1 = x2 = [12]

x1 is x2

True

2 gt= 2 2 lt= 2

(True True)

Chaines de caractegraveres les liste et les dictionnaires s = Hello world

type(s)

builtinsstr

length of the string the number of characters

len(s)

11

replace a substring in a string with somethign else

s2 = sreplace(world test)

print(s2)

Hello test

s[0]

H

Base de repreacutesentation des donneacutees

32

Chaines de caractegraveres les liste et les dictionnaires s = Hello worldldquo

replace a substring in a string with somethign else

s2 = sreplace(world test)

Hello test

print(s2)

s[05]

Hellolsquo

s[05]

Hellolsquo

s[]

Hello worldlsquo

print(value = f 10) Formatage C des variables

value = 1000000

s2 = value1 = 2f value2 = d (31415 15)

print(s2)

value1 = 314 value2 = 1

Listes l = [1234]

print(type(l))

print(l)

ltclass listgt

[1 2 3 4]

l = [1 a 10 1-1j] peuvent ecirctre heacuteteacuterogegravene

print(l)

[1 a 10 (1-1j)]

Base de repreacutesentation des donneacutees

33

Listes start = 10

stop = 30

step = 2

range(start stop step)

range(10 30 2)

list(range(start stop step))

[10 12 14 16 18 20 22 24 26 28]

s2 = list(s)

S2

[H e l l o w o r l d]

Tri de la liste

s2sort()

print(s2)

[ H d e l l l o o r w]

l = []

lappend(A)

lappend(d)

lappend(d)

print(l)

[A d d]

Tuples Ce sont des variables comme les listes mais pas alteacuterables

point = (10 20)

print(point type(point))

(10 20) ltclass tuplegt

Base de repreacutesentation des donneacutees

34

Tuples x y = point

print(x = x)

print(y = y)

x = 10

y = 20

Dictionaries params = parameter1 10 parameter2 20 parameter3 30

print(type(params))

print(params)

ltclass dictgt

fparameter2 20 parameter3 30 parameter1 10

params[parameter1] = A

params[parameter2] = B

Ajouter une nouvelle entreacutee

params[parameter4] = D

print(paramegravetre = + str(params[parameter1]))

print(paramegravetre = + str(params[parameter2]))

print(paramegravetre = + str(params[parameter3]))

print(paramegravetre = + str(params[parameter4]))

paramegravetre = A

paramegravetre = B

paramegravetre = 30

paramegravetre = D

Base de repreacutesentation des donneacutees

35

36

Affectation amp Controcircle conditionnel de flue statement1 = False Crsquoest une affectation

statement2 = False

if statement1 Test valideacute condition (statement1) est VRAIE

print(statement1 is True)

elif statement2 Exeacutecuteacutee condition (statement2) est VRAIE

print(statement2 is True)

else Exeacutecuteacutee sinon

print(statement1 and statement2 are False)

Boucles for x in [123] [123] peut ecirctre deacutesigneacute par range(3) avec print(x+1)

print(x)

1

2

3

for word in [scientific computing with python]

print(word) condition de reacutepeacutetition deacutependante du contenu de la liste

scientific

computing

with

python

l1 = [x2 for x in range(05)] agrave remarquer la compaciteacute du Python

print(l1)

[0 1 4 9 16]

Base de repreacutesentation des donneacutees

37

Boucles var = 0

while var = 1

print jlsquoeacutecris mon programme ici

choix = raw_input(voulez vous recommencer ( on ) )

if choix == n

var = 1

else

lsquovous allez ecirctre renvoyeacute au deacutebut du programmersquo

X = y 2

while x gt 1

If y x == 0

print y lsquo est facteur de rsquo x

break

x -= 1

else

print y lsquo est premierlsquo

Lrsquoutilisation de zip et map peut srsquoaveacutereacutee encore plus efficace

l1 = [1 2 3]

l2 = [4 5 6]

for (x y) in zip(l1 l2)

print x y -- x + y

1 4 -- 5

2 5 -- 7

3 6 -- 9

Base de repreacutesentation des donneacutees

38

s=0123456789

print map(int s)

[0 1 2 3 4 5 6 7 8 9]

Utilisation et

puissance de MAP

Utilisation de ZIP

Intervales range(start stop step)

range(5 10)

5 jusqursquoagrave 10 (exclue) avec un pas de 1

range(0 10 3)

0 3 6 9

range(-10 -100 -30)

-10 -40 -70

Test conditionnel binaire x = 5

y = 10

if x gt y

print(x est grand que y)

else

print(ldquox nrsquoest pas grand que yrdquo)

Dans Python on peut compliquer les chose

x = 5

y = 10

Z = 12

if z gt x gt y

print(lsquoy est petit que x et x est petit que z)

Base de repreacutesentation des donneacutees

39

Boucle avec test conditionnel binaire break continue et else dans une boucle for

for n in range(2 10)

for x in range(2 n)

if n x == 0

print(n lsquoest eacutegal agrave x nx)

break

else

print(n lsquoest premier)

Utilisation de lrsquoinstruction continue

for num in range(2 10)

if num 2 == 0 le symbole deacutesigne lrsquoopeacuteration RESTE de la division

print(ldquoNombre paire trouveacute num)

continue

print(ldquoNombre non premier num)

Base de repreacutesentation des donneacutees

40

Deacutefinition de fonction (proceacutedure avec retour) def fib(n) Ecrire la suite de Fibonacci jusqursquoagrave n

a b = 0 1

while a lt n

print(a end= )

a b = b a+b

print()

fib(2000)

0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597

f = fib deacutesignation par reacutefeacuterence f agrave la fonction fib

f(100)

0 1 1 2 3 5 8 13 21 34 55 89

autre type de deacutefinition de fonction

def ask_ok(prompt retries=4 complaint=Oui or Non srsquoil vou plait )

while True

ok = input(prompt)

if ok in (lsquoo lsquooui lsquoOui)

return True

if ok in (lsquon no non lsquoNon)

return False

retries = retries - 1

if retries lt 0

raise OSError(lsquoUtilisateur non coopeacuteratif)

print(complaint)

Base de repreacutesentation des donneacutees

41

Lrsquoinstruction lambda def make_incrementeur(n)

return lambda x x + n

f = make_incrementeur(42)

f(0)

42

f(1)

43

un autre cas drsquoutilisation

pairs = [(1 one) (2 two) (3 three) (4 four)]

pairssort(key=lambda pair pair[1])

pairs

[(4 four) (1 one) (3 three) (2 two)]

Les annotations dans une fonction Les annotations deacutefinissent des messages de preacutesentation

def f(chiken str eggs str = eggs) -gt str remarquer que la fonction est de type STR

print(Annotations f__annotations__)

print(Arguments chiken eggs)

return chiken + and + eggs

f(spam)

Annotations chiken ltclass strgt return ltclass strgt eggs ltclass strgt

Arguments spam eggs

spam and eggslsquo

Base de repreacutesentation des donneacutees

42

Les deacutecorateurs python Notre deacutecorateur

def decorate(func)

print uJe suis dans la fonction decorate et je deacutecore s func__name__

print uExeacutecution de la fonction s func__name__

return func

Fonction cible utiliseacutee avec DECORATOR

decorate

def foobar(args)

print join(args)

Exemple drsquoappel de la fonction

foobar(A B C D)

Je suis dans la fonction decorate et je deacutecore foobar

Exeacutecution de la fonction foobar

A B C D

Il est posible drsquoattribuer plusieurs deacutecorateurs agrave une seule fonction

decorateur1

decorateur2

def ma_fonction()

instructions

Base de repreacutesentation des donneacutees

43

Manipulation des listes a = [6625 333 333 1 12345]

print(acount(333) acount(6625) acount(x))

2 1 0

ainsert(2 -1)

aappend(333)

a

[6625 333 -1 333 1 12345 333]

aindex(333)

1

aremove(333)

a

[6625 -1 333 1 12345 333]

areverse()

a

[333 12345 1 333 -1 6625]

asort()

a

[-1 1 6625 333 333 12345]

apop()

12345

a

[-1 1 6625 333 333]

Base de repreacutesentation des donneacutees

44

Puissance du langage Python Lrsquoensemble des lignes suiantes peut ecirctre compacteacute par ce qui suit

combs = []

for x in [123]

for y in [314]

if x = y

combsappend((x y))

Combs

Ou bien

[(x y) for x in [123] for y in [314] if x = y]

Donne le mecircme reacutesultat

[(1 3) (1 4) (2 3) (2 1) (2 4) (3 1) (3 4)]

Calcul de la valeur de PI arrondie

from math import pi

[str(round(pi i)) for i in range(1 6)]

[31 314 3142 31416 314159]

Geacuteneacuterateur avec utilisation de YIELD

def generateur()

yield a

yield b

yield cldquo

i=generateur()

for v in i

print v

a

b

c

Base de repreacutesentation des donneacutees

45

Les expressions reacuteguliegraveres en python Les expressions reacuteguliegravere sont utiliseacutees pour veacuterifier la conformiteacute des expressions de

chaines de caractegraveres par rapport agrave un motif Les symboles suivants sont utiliseacutes

^ $ + [ ] | ( )

Le point correspond agrave nimporte quel caractegravere

^ Indique un commencement de segment mais signifie aussi contraire de

$ Fin de segment

[xy] Une liste de segment possible Exemple [abc] eacutequivaut agrave a b ou c

(x|y) Indique un choix multiple type (ps|ump) eacutequivaut agrave ps OU UMP

d le segment est composeacute uniquement de chiffre ce qui eacutequivaut agrave [0-9]

D le segment nest pas composeacute de chiffre ce qui eacutequivaut agrave [^0-9]

s Un espace ce qui eacutequivaut agrave [ tnrfv]

S Pas despace ce qui eacutequivaut agrave [^ tnrfv]

w Preacutesence alphanumeacuterique ce qui eacutequivaut agrave [a-zA-Z0-9_]

W Pas de preacutesence alphanumeacuterique [^a-zA-Z0-9_]

Est un caractegravere deacutechappement T2 Le T soit reacutepeacuteteacute 2 fois

TA19 La seacutequence TA doit ecirctre preacutesente de 1 agrave 9 fois

TAM10 La seacutequence TAM nrsquoexiste pas ou reacutepeacuteteacutee 10 fois

LI1 La seacutequence LI doit ecirctre reacutepeacuteteacutee au moins une fois

Base de repreacutesentation des donneacutees

46

Les expressions reacuteguliegraveres en python Utilisation des expressions reacuteguliegravere

import re

print rematch(rGR()S GRIS)

lt_sreSRE_Match object at 0x02019DE0gt

Une utilisation freacutequente consiste en la validation des valeurs des emails saisis

Utilisation des expressions reacuteguliegravere

import re

mails = [lsquomtamaligmailcomrsquorsquoutmbuniv-bechardzrsquo lsquo8freefrrsquo lsquouniv-bechardzrsquo lsquotamalicdtarsquo]

regex = recompile(rrsquo^[a-z0-9_-]+[a-z0-9_-]+[(com|fr|dz)]+rsquo

for mail in mails

if regexmatch(mail) is not None

print Ce mail s est valide mail

else

print Erreur ce mail s est non valide mail

Ce mail mtamaligmailcom est valide

Ce mail utmbuniv-bechardz est valide

Ce mail 8freefr est valide

Erreur ce mail univ-bechardz est non valide

Erreur ce mail tamalicdta est non valide

Base de repreacutesentation des donneacutees

47

Les fichiers Creacuteer lire et eacutecrire dans un fichier en python Utilisation des expressions reacuteguliegravere

fichier = open(donneestxt r)

print fichier

ltopen file lsquodonneestxt mode r at 0x7ff6cf3fe4b0gt

Le descripteur permet de renseigner la machine sur la maniegravere avec laquelle le fichier est utiliseacute

r pour ouverture en mode READ

w pour ouverture en mode WRITE chaque fois le contenu du fichier est eacutecraseacute sinon python le creacutee

a pour ajout lsquoAPPENDrsquo Si le fichier nexiste pas python le creacutee

b Ouverture en mode Binaire

t Ouverture en mode Texte

x creacutee un nouveau fichier et louvrir pour eacutecriture

proceacutedure geacuteneacuterale pour lrsquoutilisation drsquoun fichier

fichier = open(lsquodonneestxtrsquo r)

print fichierread()

fichierclose()

Lrsquoinstruction WITH peut ecirctre utiliseacutee sans besoin de la fonction CLOSE

with open(datatxt r) as fichier

print fichierread()

Base de repreacutesentation des donneacutees

48

49

Le langage Python est un langage script interpreacuteteacute Le programme portant lrsquoune des extension py pyw ou pwc est

structureacute selon le canevas suivant

Les codifications

usrbinpython27

--codingencodage -

Les imports des librairies

Les instructions

Le langage Python passe pour ecirctre exeacutecuteacute sur deux eacutetapes la premiegravere UNE PRECOMPILATION geacuteneacuteration du code

machine et finalement un eacutecriture en code machine exeacutecutable (selon la machine)

Lrsquoenvironnement drsquoexeacutecution des scripts eacutecrits en Python regroupe les avantages des TRADUCTEURS (travaille en ligne par

ligne) et les COMPILATEURS (puissance de la structure algorithmique)

La bibliothegraveque cx_Freeze sert agrave transformer les fichiers scripts Pyhon py en exeacutecutable exe

Structures algorithmique du python

50

51

Matrices amp Systegravemes lineacuteaires

52

53

54

55

56

57

Le calcul scientifique

Reacutefeacuterences L-V Bertallanfy lsquoGeneral System Theoryrsquo Edition MASSON 1972

58

Page 15: Chap XIII : calcul scientifique avec python

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse des donneacutees (Panda)

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

15

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse des donneacutees (Panda)

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

import numpy as np

systeme = nparray([[12][3-4]])

valeur=nparray([[3][1]])

sol=nplinalgsolve(systemevaleur)

print(x=sol[00] et y=sol[10])

x= 14 et y= 08

Reacutesolution de systegraveme lineacuteaire AX=b gtgtgt import numpy as np

gtgtgt from scipy import linalg

gtgtgt A = nparray([[1 2] [3 4]])

gtgtgt A

array([[1 2][3 4]])

gtgtgt b = nparray([[5] [6]])

gtgtgt b

array([[5][6]])

gtgtgt linalginv(A)dot(b) slow

array([[-4 ][ 45]])

gtgtgt Adot(linalginv(A)dot(b)) - b Veacuterification array([[888178420e-16][266453526e-15]])

gtgtgt nplinalgsolve(A b) fast

array([[-4 ][ 45]])

gtgtgt Adot(nplinalgsolve(A b)) - b Veacuterification array([[ 0][ 0]])

Importation de la

librairie Numpy

16

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse des donneacutees (Panda)

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

17

import numpy as np

from scipy import signal misc

import matplotlibpyplot as plt

image = miscface(gray=True)astype(npfloat32)

derfilt = nparray([10 -2 10] dtype=npfloat32)

ck = signalcspline2d(image 80)

deriv = (signalsepfir2d(ck derfilt [1]) +signalsepfir2d(ck [1] derfilt))

laplacian = nparray([[010] [1-41] [010]] dtype=npfloat32)

deriv2 = signalconvolve2d(cklaplacianmode=lsquosameboundary=symm)

pltfigure()

pltimshow(image)

pltgray()

plttitle(lsquoImage original)

pltshow()

pltfigure()

pltimshow(deriv)

pltgray()

plttitle(lsquosortie avec filtre spline)

pltshow()

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse des donneacutees (Panda)

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

from matplotlibpyplot import figure hold plot legend draw

from numpy import linspace

import scipystats as stats

from numpyrandom import randn

x = randn(100)

fig = figure()

ax = figadd_subplot(111)

axhist(x bins=30 label=rsquoEmpiricalrsquo)

xlim = axget_xlim()

ylim = axget_ylim()

pdfx = linspace(xlim[0] xlim[1] 200)

pdfy = statsnormpdf(pdfx)

pdfy = pdfy pdfymax() ylim[1]

hold(True)

plot(pdfx pdfy rsquor-rsquo label=rsquoPDFrsquo)

axset_ylim((ylim[0] 12 ylim[1]))

legend()

hold(False)

draw()

18

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse des donneacutees (Panda QtGraph)

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation 19

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Domaines drsquoutilisation

matplotlib inline

from pylab import plot show title xlabel ylabel subplot savefig

from scipy import fft arange ifft

from numpy import sin linspace pi

from scipyiowavfile import readwrite

def plotSpectru(yFs)

n = len(y) lungime semnal

k = arange(n)

T = nFs

frq = kT two sides frequency range

frq = frq[range(n2)] one side frequency range

Y = fft(y)n fft computing and normalization

Y = Y[range(n2)]

plot(frqabs(Y)r) plotting the spectrum

xlabel(Freq (Hz))

ylabel(|Y(freq)|)

Fs = 44100 sampling rate

ratedata=read(fatihawav)

y=data

lungime=len(y)

timp=len(y)44100

t=linspace(0timplen(y))

subplot(211)

plot(ty)

xlabel(Time)

ylabel(Amplitude)

subplot(212)

plotSpectru(yFs)

show()

20

Lecture de la

sourah

Code du traitement

audio

Spectre Amp|Freacuteq

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele (MPI Python)

Theacuteorie des graphes (Networkx)

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

21 Exemple

de graphe

Fenecirctre Aperccedilu

du bloc-note

Importation de la

librairie NetworkX

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

import RPiGPIO as GPIO

GPIOsetmode(GPIOBCM) set board mode to Broadcom

GPIOsetup(17 GPIOOUT) set up pin 17

GPIOsetup(18 GPIOOUT) set up pin 18

GPIOoutput(17 1) turn on pin 17

GPIOoutput(18 1) turn on pin 18

Importation

librairie GPIO

Module

Galileo Gen 2

Module

RaspBerry PI 3

22

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D (Python CAD FreeCAD)

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

23

from OCCSTEPControl import STEPControl_Reader

from OCCIFSelect import IFSelect_RetDone IFSelect_ItemsByEntity

from OCCDisplaySimpleGui import init_display

step_reader = STEPControl_Reader()

status = step_readerReadFile(modelswind_turbinestp)

if status == IFSelect_RetDone check status

failsonly = False

step_readerPrintCheckLoad(failsonly IFSelect_ItemsByEntity)

step_readerPrintCheckTransfer(failsonly IFSelect_ItemsByEntity)

ok = step_readerTransferRoot(1)

_nbs = step_readerNbShapes()

aResShape = step_readerShape(1)

else

print(Error cant read file)

sysexit(0)

display start_display add_menu add_function_to_menu = init_display()

displayDisplayShape(aResShape update=True)

start_display()

Importation

librairie OCC

Maillage Dauphin

Rendu du macirct drsquoun

aeacuterogeacuteneacuterateur

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D (Python CAD FreeCAD)

Bioinformatique et manipulation du geacutenome

POO avec Python (Programmation

Orienteacutee Objet) Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

class Rocket()

Rocket simule une roquette pour un jeu

ou une simulation de physique

def __init__(self)

Each rocket has an (xy) position

selfx = 0

selfy = 0

def move_up(self)

Increacutementation de la position y de la roquette

selfy += 1

Deacutefinir une ensemble de 5 roquettes les stocker dans une liste

my_rockets = []

for x in range(05)

new_rocket = Rocket()

my_rocketsappend(new_rocket)

A remarquer que chaque roquette est un objet agrave part entiegravere

for rocket in my_rockets

print(rocket)

Deacutefinition drsquoune

nouvelle Classe

Instantiation

Meacutethode Constructeur

__init__

24

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D (Python CAD FreeCAD)

Bioinformatique et manipulation

du geacutenome Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

25

from Bio import SeqIO

for seq_record in SeqIOparse(ls_orchidgbk genbank)

print(seq_recordid)

print(repr(seq_recordseq))

print(len(seq_record))

Z785331

Seq(CGTAACAAGGTTTCCGTAGGTGAACCTGCGGAAGGATCATTGATGAGACCGTGGCGC

IUPACAmbiguousDNA())

740

Z784391

Seq(CATTGTTGAGATCACATAATAATTGATCGAGTTAATCTGGAGGATCTGTTTACTGCC

IUPACAmbiguousDNA())

592

Sinon dans une Terminal Python

gtgtgt from BioSeq import Seq

gtgtgt from BioAlphabet import generic_dna

gtgtgt gene = Seq(GTGAAAAAGATGCAATCTATCGTACTCGCACTTTCCCTGGTTCTGGTCGCTCCCATGGCA +

GCACAGGCTGCGGAAATTACGTTAGTCCCGTCAGTAAAATTACAGATAGGCGATCGTGAT +

AATCGTGGCTATTACTGGGATGGAGGTCACTGGCGCGACCACGGCTGGTGGAAACAACAT +

TATGAATGGCGAGGCAATCGCTGGCACCTACACGGACCGCCGCCACCGCCGCGCCACCAT +

AAGAAAGCTCCTCATGATCATCACGGCGGTCATGGTCCAGGCAAACATCACCGCTAA

generic_dna)

gtgtgt genetranslate(table=Bacterial)

Seq(VKKMQSIVLALSLVLVAPMAAQAAEITLVPSVKLQIGDRDNRGYYWDGGHWRDHHR

HasStopCodon(ExtendedIUPACProtein() )

gtgtgt genetranslate(table=Bacterial to_stop=True)

Seq(VKKMQSIVLALSLVLVAPMAAQAAEITLVPSVKLQIGDRDNRGYYWDGGHWRDHHHR

ExtendedIUPACProtein())

Logo de

BioPython Seacutequence drsquoADN

Importation

librairie BIO

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D (Python CAD FreeCAD)

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

26

Installer agrave partir de PyPI

$ pip install mezzanine

Instantier un projet

$ mezzanine-project monproject

$ cd monproject

Instantier une Base de donneacutees

$ python managepy createdb

Lancer le serveur Web

$ python managepy runserver

Installation en mode

commande

URL du site instantieacute

Version Mobile Menu

Version Administration

Sites Web fait avec

Mezzanine

Version Normal

Les environnements de deacuteveloppement inteacutegreacutes de code Python sont nombreux des solutions proprieacutetaires agrave celles portant le

label GPL

Ils sont de trois grandes cateacutegories

Les applications bureaux (Desktop)

Les consoles de commande en ligne Les interfaces orienteacutees Web

Outils drsquoeacutelaboration de code Python (IDE)

27

Les environnements de deacuteveloppement inteacutegreacutes de code Python sont nombreux des solutions proprieacutetaires agrave celles portant le

label GPL Ils sont de trois grandes cateacutegories

Les applications bureaux (Desktop)

Les consoles de commande en ligne

Les interfaces orienteacutees Web

Outils drsquoeacutelaboration de code Python (IDE)

28

Les environnements de deacuteveloppement inteacutegreacutes de code Python sont nombreux des solutions proprieacutetaires agrave celles portant le

label GPL Ils sont de trois grandes cateacutegories

Les applications bureaux (Desktop)

Les consoles de commande en ligne

Les interfaces orienteacutees Web

Outils drsquoeacutelaboration de code Python (IDE)

29

30

Nom de Symbole Les noms de variables en Python peuvent contenir des caractegraveres alphanumeacuteriques a-z A-Z 0-

9 et certains caractegraveres speacuteciaux tel que _ Les noms de variables normales doivent commencer par une lettre

Par convention les noms de variables commencent par une lettre minuscule et les noms de classe commencent par

une lettre majuscule En outre il y a un certain nombre de mots-cleacutes Python qui ne peuvent pas ecirctre utiliseacutes comme

noms de variables Ces mots-cleacutes sont les suivants

and as assert break class continue def del elif else except exec finally for from global if import in

is lambda not or pass print raise return try while with yield

Affectation assignment de variable

x = 10

my_variable = 122

type(x) fonction TYPE retourne le type de la variable entre parenthegravese

builtinsfloat

Verification de type x = 10

veacuterifier si la variable est reacuteelle

type(x) is float

isinstance(x float)

True

z = complex(x)

print(z type(z))

(1+0j) ltclass complexlsquogt

Base de repreacutesentation des donneacutees

31

Operateurs et comparaisons Opeacuterateurs arithmeacutetiques + - (division entiegravere) puissance

30 20

10

NB operators puissance en python nrsquoest pas ^ mais

2 2

4

Les opeacuterateurs de comparaison sont gtltgt=lt===

objects identiques

x1 = x2 = [12]

x1 is x2

True

2 gt= 2 2 lt= 2

(True True)

Chaines de caractegraveres les liste et les dictionnaires s = Hello world

type(s)

builtinsstr

length of the string the number of characters

len(s)

11

replace a substring in a string with somethign else

s2 = sreplace(world test)

print(s2)

Hello test

s[0]

H

Base de repreacutesentation des donneacutees

32

Chaines de caractegraveres les liste et les dictionnaires s = Hello worldldquo

replace a substring in a string with somethign else

s2 = sreplace(world test)

Hello test

print(s2)

s[05]

Hellolsquo

s[05]

Hellolsquo

s[]

Hello worldlsquo

print(value = f 10) Formatage C des variables

value = 1000000

s2 = value1 = 2f value2 = d (31415 15)

print(s2)

value1 = 314 value2 = 1

Listes l = [1234]

print(type(l))

print(l)

ltclass listgt

[1 2 3 4]

l = [1 a 10 1-1j] peuvent ecirctre heacuteteacuterogegravene

print(l)

[1 a 10 (1-1j)]

Base de repreacutesentation des donneacutees

33

Listes start = 10

stop = 30

step = 2

range(start stop step)

range(10 30 2)

list(range(start stop step))

[10 12 14 16 18 20 22 24 26 28]

s2 = list(s)

S2

[H e l l o w o r l d]

Tri de la liste

s2sort()

print(s2)

[ H d e l l l o o r w]

l = []

lappend(A)

lappend(d)

lappend(d)

print(l)

[A d d]

Tuples Ce sont des variables comme les listes mais pas alteacuterables

point = (10 20)

print(point type(point))

(10 20) ltclass tuplegt

Base de repreacutesentation des donneacutees

34

Tuples x y = point

print(x = x)

print(y = y)

x = 10

y = 20

Dictionaries params = parameter1 10 parameter2 20 parameter3 30

print(type(params))

print(params)

ltclass dictgt

fparameter2 20 parameter3 30 parameter1 10

params[parameter1] = A

params[parameter2] = B

Ajouter une nouvelle entreacutee

params[parameter4] = D

print(paramegravetre = + str(params[parameter1]))

print(paramegravetre = + str(params[parameter2]))

print(paramegravetre = + str(params[parameter3]))

print(paramegravetre = + str(params[parameter4]))

paramegravetre = A

paramegravetre = B

paramegravetre = 30

paramegravetre = D

Base de repreacutesentation des donneacutees

35

36

Affectation amp Controcircle conditionnel de flue statement1 = False Crsquoest une affectation

statement2 = False

if statement1 Test valideacute condition (statement1) est VRAIE

print(statement1 is True)

elif statement2 Exeacutecuteacutee condition (statement2) est VRAIE

print(statement2 is True)

else Exeacutecuteacutee sinon

print(statement1 and statement2 are False)

Boucles for x in [123] [123] peut ecirctre deacutesigneacute par range(3) avec print(x+1)

print(x)

1

2

3

for word in [scientific computing with python]

print(word) condition de reacutepeacutetition deacutependante du contenu de la liste

scientific

computing

with

python

l1 = [x2 for x in range(05)] agrave remarquer la compaciteacute du Python

print(l1)

[0 1 4 9 16]

Base de repreacutesentation des donneacutees

37

Boucles var = 0

while var = 1

print jlsquoeacutecris mon programme ici

choix = raw_input(voulez vous recommencer ( on ) )

if choix == n

var = 1

else

lsquovous allez ecirctre renvoyeacute au deacutebut du programmersquo

X = y 2

while x gt 1

If y x == 0

print y lsquo est facteur de rsquo x

break

x -= 1

else

print y lsquo est premierlsquo

Lrsquoutilisation de zip et map peut srsquoaveacutereacutee encore plus efficace

l1 = [1 2 3]

l2 = [4 5 6]

for (x y) in zip(l1 l2)

print x y -- x + y

1 4 -- 5

2 5 -- 7

3 6 -- 9

Base de repreacutesentation des donneacutees

38

s=0123456789

print map(int s)

[0 1 2 3 4 5 6 7 8 9]

Utilisation et

puissance de MAP

Utilisation de ZIP

Intervales range(start stop step)

range(5 10)

5 jusqursquoagrave 10 (exclue) avec un pas de 1

range(0 10 3)

0 3 6 9

range(-10 -100 -30)

-10 -40 -70

Test conditionnel binaire x = 5

y = 10

if x gt y

print(x est grand que y)

else

print(ldquox nrsquoest pas grand que yrdquo)

Dans Python on peut compliquer les chose

x = 5

y = 10

Z = 12

if z gt x gt y

print(lsquoy est petit que x et x est petit que z)

Base de repreacutesentation des donneacutees

39

Boucle avec test conditionnel binaire break continue et else dans une boucle for

for n in range(2 10)

for x in range(2 n)

if n x == 0

print(n lsquoest eacutegal agrave x nx)

break

else

print(n lsquoest premier)

Utilisation de lrsquoinstruction continue

for num in range(2 10)

if num 2 == 0 le symbole deacutesigne lrsquoopeacuteration RESTE de la division

print(ldquoNombre paire trouveacute num)

continue

print(ldquoNombre non premier num)

Base de repreacutesentation des donneacutees

40

Deacutefinition de fonction (proceacutedure avec retour) def fib(n) Ecrire la suite de Fibonacci jusqursquoagrave n

a b = 0 1

while a lt n

print(a end= )

a b = b a+b

print()

fib(2000)

0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597

f = fib deacutesignation par reacutefeacuterence f agrave la fonction fib

f(100)

0 1 1 2 3 5 8 13 21 34 55 89

autre type de deacutefinition de fonction

def ask_ok(prompt retries=4 complaint=Oui or Non srsquoil vou plait )

while True

ok = input(prompt)

if ok in (lsquoo lsquooui lsquoOui)

return True

if ok in (lsquon no non lsquoNon)

return False

retries = retries - 1

if retries lt 0

raise OSError(lsquoUtilisateur non coopeacuteratif)

print(complaint)

Base de repreacutesentation des donneacutees

41

Lrsquoinstruction lambda def make_incrementeur(n)

return lambda x x + n

f = make_incrementeur(42)

f(0)

42

f(1)

43

un autre cas drsquoutilisation

pairs = [(1 one) (2 two) (3 three) (4 four)]

pairssort(key=lambda pair pair[1])

pairs

[(4 four) (1 one) (3 three) (2 two)]

Les annotations dans une fonction Les annotations deacutefinissent des messages de preacutesentation

def f(chiken str eggs str = eggs) -gt str remarquer que la fonction est de type STR

print(Annotations f__annotations__)

print(Arguments chiken eggs)

return chiken + and + eggs

f(spam)

Annotations chiken ltclass strgt return ltclass strgt eggs ltclass strgt

Arguments spam eggs

spam and eggslsquo

Base de repreacutesentation des donneacutees

42

Les deacutecorateurs python Notre deacutecorateur

def decorate(func)

print uJe suis dans la fonction decorate et je deacutecore s func__name__

print uExeacutecution de la fonction s func__name__

return func

Fonction cible utiliseacutee avec DECORATOR

decorate

def foobar(args)

print join(args)

Exemple drsquoappel de la fonction

foobar(A B C D)

Je suis dans la fonction decorate et je deacutecore foobar

Exeacutecution de la fonction foobar

A B C D

Il est posible drsquoattribuer plusieurs deacutecorateurs agrave une seule fonction

decorateur1

decorateur2

def ma_fonction()

instructions

Base de repreacutesentation des donneacutees

43

Manipulation des listes a = [6625 333 333 1 12345]

print(acount(333) acount(6625) acount(x))

2 1 0

ainsert(2 -1)

aappend(333)

a

[6625 333 -1 333 1 12345 333]

aindex(333)

1

aremove(333)

a

[6625 -1 333 1 12345 333]

areverse()

a

[333 12345 1 333 -1 6625]

asort()

a

[-1 1 6625 333 333 12345]

apop()

12345

a

[-1 1 6625 333 333]

Base de repreacutesentation des donneacutees

44

Puissance du langage Python Lrsquoensemble des lignes suiantes peut ecirctre compacteacute par ce qui suit

combs = []

for x in [123]

for y in [314]

if x = y

combsappend((x y))

Combs

Ou bien

[(x y) for x in [123] for y in [314] if x = y]

Donne le mecircme reacutesultat

[(1 3) (1 4) (2 3) (2 1) (2 4) (3 1) (3 4)]

Calcul de la valeur de PI arrondie

from math import pi

[str(round(pi i)) for i in range(1 6)]

[31 314 3142 31416 314159]

Geacuteneacuterateur avec utilisation de YIELD

def generateur()

yield a

yield b

yield cldquo

i=generateur()

for v in i

print v

a

b

c

Base de repreacutesentation des donneacutees

45

Les expressions reacuteguliegraveres en python Les expressions reacuteguliegravere sont utiliseacutees pour veacuterifier la conformiteacute des expressions de

chaines de caractegraveres par rapport agrave un motif Les symboles suivants sont utiliseacutes

^ $ + [ ] | ( )

Le point correspond agrave nimporte quel caractegravere

^ Indique un commencement de segment mais signifie aussi contraire de

$ Fin de segment

[xy] Une liste de segment possible Exemple [abc] eacutequivaut agrave a b ou c

(x|y) Indique un choix multiple type (ps|ump) eacutequivaut agrave ps OU UMP

d le segment est composeacute uniquement de chiffre ce qui eacutequivaut agrave [0-9]

D le segment nest pas composeacute de chiffre ce qui eacutequivaut agrave [^0-9]

s Un espace ce qui eacutequivaut agrave [ tnrfv]

S Pas despace ce qui eacutequivaut agrave [^ tnrfv]

w Preacutesence alphanumeacuterique ce qui eacutequivaut agrave [a-zA-Z0-9_]

W Pas de preacutesence alphanumeacuterique [^a-zA-Z0-9_]

Est un caractegravere deacutechappement T2 Le T soit reacutepeacuteteacute 2 fois

TA19 La seacutequence TA doit ecirctre preacutesente de 1 agrave 9 fois

TAM10 La seacutequence TAM nrsquoexiste pas ou reacutepeacuteteacutee 10 fois

LI1 La seacutequence LI doit ecirctre reacutepeacuteteacutee au moins une fois

Base de repreacutesentation des donneacutees

46

Les expressions reacuteguliegraveres en python Utilisation des expressions reacuteguliegravere

import re

print rematch(rGR()S GRIS)

lt_sreSRE_Match object at 0x02019DE0gt

Une utilisation freacutequente consiste en la validation des valeurs des emails saisis

Utilisation des expressions reacuteguliegravere

import re

mails = [lsquomtamaligmailcomrsquorsquoutmbuniv-bechardzrsquo lsquo8freefrrsquo lsquouniv-bechardzrsquo lsquotamalicdtarsquo]

regex = recompile(rrsquo^[a-z0-9_-]+[a-z0-9_-]+[(com|fr|dz)]+rsquo

for mail in mails

if regexmatch(mail) is not None

print Ce mail s est valide mail

else

print Erreur ce mail s est non valide mail

Ce mail mtamaligmailcom est valide

Ce mail utmbuniv-bechardz est valide

Ce mail 8freefr est valide

Erreur ce mail univ-bechardz est non valide

Erreur ce mail tamalicdta est non valide

Base de repreacutesentation des donneacutees

47

Les fichiers Creacuteer lire et eacutecrire dans un fichier en python Utilisation des expressions reacuteguliegravere

fichier = open(donneestxt r)

print fichier

ltopen file lsquodonneestxt mode r at 0x7ff6cf3fe4b0gt

Le descripteur permet de renseigner la machine sur la maniegravere avec laquelle le fichier est utiliseacute

r pour ouverture en mode READ

w pour ouverture en mode WRITE chaque fois le contenu du fichier est eacutecraseacute sinon python le creacutee

a pour ajout lsquoAPPENDrsquo Si le fichier nexiste pas python le creacutee

b Ouverture en mode Binaire

t Ouverture en mode Texte

x creacutee un nouveau fichier et louvrir pour eacutecriture

proceacutedure geacuteneacuterale pour lrsquoutilisation drsquoun fichier

fichier = open(lsquodonneestxtrsquo r)

print fichierread()

fichierclose()

Lrsquoinstruction WITH peut ecirctre utiliseacutee sans besoin de la fonction CLOSE

with open(datatxt r) as fichier

print fichierread()

Base de repreacutesentation des donneacutees

48

49

Le langage Python est un langage script interpreacuteteacute Le programme portant lrsquoune des extension py pyw ou pwc est

structureacute selon le canevas suivant

Les codifications

usrbinpython27

--codingencodage -

Les imports des librairies

Les instructions

Le langage Python passe pour ecirctre exeacutecuteacute sur deux eacutetapes la premiegravere UNE PRECOMPILATION geacuteneacuteration du code

machine et finalement un eacutecriture en code machine exeacutecutable (selon la machine)

Lrsquoenvironnement drsquoexeacutecution des scripts eacutecrits en Python regroupe les avantages des TRADUCTEURS (travaille en ligne par

ligne) et les COMPILATEURS (puissance de la structure algorithmique)

La bibliothegraveque cx_Freeze sert agrave transformer les fichiers scripts Pyhon py en exeacutecutable exe

Structures algorithmique du python

50

51

Matrices amp Systegravemes lineacuteaires

52

53

54

55

56

57

Le calcul scientifique

Reacutefeacuterences L-V Bertallanfy lsquoGeneral System Theoryrsquo Edition MASSON 1972

58

Page 16: Chap XIII : calcul scientifique avec python

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse des donneacutees (Panda)

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

import numpy as np

systeme = nparray([[12][3-4]])

valeur=nparray([[3][1]])

sol=nplinalgsolve(systemevaleur)

print(x=sol[00] et y=sol[10])

x= 14 et y= 08

Reacutesolution de systegraveme lineacuteaire AX=b gtgtgt import numpy as np

gtgtgt from scipy import linalg

gtgtgt A = nparray([[1 2] [3 4]])

gtgtgt A

array([[1 2][3 4]])

gtgtgt b = nparray([[5] [6]])

gtgtgt b

array([[5][6]])

gtgtgt linalginv(A)dot(b) slow

array([[-4 ][ 45]])

gtgtgt Adot(linalginv(A)dot(b)) - b Veacuterification array([[888178420e-16][266453526e-15]])

gtgtgt nplinalgsolve(A b) fast

array([[-4 ][ 45]])

gtgtgt Adot(nplinalgsolve(A b)) - b Veacuterification array([[ 0][ 0]])

Importation de la

librairie Numpy

16

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse des donneacutees (Panda)

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

17

import numpy as np

from scipy import signal misc

import matplotlibpyplot as plt

image = miscface(gray=True)astype(npfloat32)

derfilt = nparray([10 -2 10] dtype=npfloat32)

ck = signalcspline2d(image 80)

deriv = (signalsepfir2d(ck derfilt [1]) +signalsepfir2d(ck [1] derfilt))

laplacian = nparray([[010] [1-41] [010]] dtype=npfloat32)

deriv2 = signalconvolve2d(cklaplacianmode=lsquosameboundary=symm)

pltfigure()

pltimshow(image)

pltgray()

plttitle(lsquoImage original)

pltshow()

pltfigure()

pltimshow(deriv)

pltgray()

plttitle(lsquosortie avec filtre spline)

pltshow()

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse des donneacutees (Panda)

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

from matplotlibpyplot import figure hold plot legend draw

from numpy import linspace

import scipystats as stats

from numpyrandom import randn

x = randn(100)

fig = figure()

ax = figadd_subplot(111)

axhist(x bins=30 label=rsquoEmpiricalrsquo)

xlim = axget_xlim()

ylim = axget_ylim()

pdfx = linspace(xlim[0] xlim[1] 200)

pdfy = statsnormpdf(pdfx)

pdfy = pdfy pdfymax() ylim[1]

hold(True)

plot(pdfx pdfy rsquor-rsquo label=rsquoPDFrsquo)

axset_ylim((ylim[0] 12 ylim[1]))

legend()

hold(False)

draw()

18

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse des donneacutees (Panda QtGraph)

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation 19

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Domaines drsquoutilisation

matplotlib inline

from pylab import plot show title xlabel ylabel subplot savefig

from scipy import fft arange ifft

from numpy import sin linspace pi

from scipyiowavfile import readwrite

def plotSpectru(yFs)

n = len(y) lungime semnal

k = arange(n)

T = nFs

frq = kT two sides frequency range

frq = frq[range(n2)] one side frequency range

Y = fft(y)n fft computing and normalization

Y = Y[range(n2)]

plot(frqabs(Y)r) plotting the spectrum

xlabel(Freq (Hz))

ylabel(|Y(freq)|)

Fs = 44100 sampling rate

ratedata=read(fatihawav)

y=data

lungime=len(y)

timp=len(y)44100

t=linspace(0timplen(y))

subplot(211)

plot(ty)

xlabel(Time)

ylabel(Amplitude)

subplot(212)

plotSpectru(yFs)

show()

20

Lecture de la

sourah

Code du traitement

audio

Spectre Amp|Freacuteq

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele (MPI Python)

Theacuteorie des graphes (Networkx)

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

21 Exemple

de graphe

Fenecirctre Aperccedilu

du bloc-note

Importation de la

librairie NetworkX

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

import RPiGPIO as GPIO

GPIOsetmode(GPIOBCM) set board mode to Broadcom

GPIOsetup(17 GPIOOUT) set up pin 17

GPIOsetup(18 GPIOOUT) set up pin 18

GPIOoutput(17 1) turn on pin 17

GPIOoutput(18 1) turn on pin 18

Importation

librairie GPIO

Module

Galileo Gen 2

Module

RaspBerry PI 3

22

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D (Python CAD FreeCAD)

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

23

from OCCSTEPControl import STEPControl_Reader

from OCCIFSelect import IFSelect_RetDone IFSelect_ItemsByEntity

from OCCDisplaySimpleGui import init_display

step_reader = STEPControl_Reader()

status = step_readerReadFile(modelswind_turbinestp)

if status == IFSelect_RetDone check status

failsonly = False

step_readerPrintCheckLoad(failsonly IFSelect_ItemsByEntity)

step_readerPrintCheckTransfer(failsonly IFSelect_ItemsByEntity)

ok = step_readerTransferRoot(1)

_nbs = step_readerNbShapes()

aResShape = step_readerShape(1)

else

print(Error cant read file)

sysexit(0)

display start_display add_menu add_function_to_menu = init_display()

displayDisplayShape(aResShape update=True)

start_display()

Importation

librairie OCC

Maillage Dauphin

Rendu du macirct drsquoun

aeacuterogeacuteneacuterateur

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D (Python CAD FreeCAD)

Bioinformatique et manipulation du geacutenome

POO avec Python (Programmation

Orienteacutee Objet) Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

class Rocket()

Rocket simule une roquette pour un jeu

ou une simulation de physique

def __init__(self)

Each rocket has an (xy) position

selfx = 0

selfy = 0

def move_up(self)

Increacutementation de la position y de la roquette

selfy += 1

Deacutefinir une ensemble de 5 roquettes les stocker dans une liste

my_rockets = []

for x in range(05)

new_rocket = Rocket()

my_rocketsappend(new_rocket)

A remarquer que chaque roquette est un objet agrave part entiegravere

for rocket in my_rockets

print(rocket)

Deacutefinition drsquoune

nouvelle Classe

Instantiation

Meacutethode Constructeur

__init__

24

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D (Python CAD FreeCAD)

Bioinformatique et manipulation

du geacutenome Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

25

from Bio import SeqIO

for seq_record in SeqIOparse(ls_orchidgbk genbank)

print(seq_recordid)

print(repr(seq_recordseq))

print(len(seq_record))

Z785331

Seq(CGTAACAAGGTTTCCGTAGGTGAACCTGCGGAAGGATCATTGATGAGACCGTGGCGC

IUPACAmbiguousDNA())

740

Z784391

Seq(CATTGTTGAGATCACATAATAATTGATCGAGTTAATCTGGAGGATCTGTTTACTGCC

IUPACAmbiguousDNA())

592

Sinon dans une Terminal Python

gtgtgt from BioSeq import Seq

gtgtgt from BioAlphabet import generic_dna

gtgtgt gene = Seq(GTGAAAAAGATGCAATCTATCGTACTCGCACTTTCCCTGGTTCTGGTCGCTCCCATGGCA +

GCACAGGCTGCGGAAATTACGTTAGTCCCGTCAGTAAAATTACAGATAGGCGATCGTGAT +

AATCGTGGCTATTACTGGGATGGAGGTCACTGGCGCGACCACGGCTGGTGGAAACAACAT +

TATGAATGGCGAGGCAATCGCTGGCACCTACACGGACCGCCGCCACCGCCGCGCCACCAT +

AAGAAAGCTCCTCATGATCATCACGGCGGTCATGGTCCAGGCAAACATCACCGCTAA

generic_dna)

gtgtgt genetranslate(table=Bacterial)

Seq(VKKMQSIVLALSLVLVAPMAAQAAEITLVPSVKLQIGDRDNRGYYWDGGHWRDHHR

HasStopCodon(ExtendedIUPACProtein() )

gtgtgt genetranslate(table=Bacterial to_stop=True)

Seq(VKKMQSIVLALSLVLVAPMAAQAAEITLVPSVKLQIGDRDNRGYYWDGGHWRDHHHR

ExtendedIUPACProtein())

Logo de

BioPython Seacutequence drsquoADN

Importation

librairie BIO

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D (Python CAD FreeCAD)

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

26

Installer agrave partir de PyPI

$ pip install mezzanine

Instantier un projet

$ mezzanine-project monproject

$ cd monproject

Instantier une Base de donneacutees

$ python managepy createdb

Lancer le serveur Web

$ python managepy runserver

Installation en mode

commande

URL du site instantieacute

Version Mobile Menu

Version Administration

Sites Web fait avec

Mezzanine

Version Normal

Les environnements de deacuteveloppement inteacutegreacutes de code Python sont nombreux des solutions proprieacutetaires agrave celles portant le

label GPL

Ils sont de trois grandes cateacutegories

Les applications bureaux (Desktop)

Les consoles de commande en ligne Les interfaces orienteacutees Web

Outils drsquoeacutelaboration de code Python (IDE)

27

Les environnements de deacuteveloppement inteacutegreacutes de code Python sont nombreux des solutions proprieacutetaires agrave celles portant le

label GPL Ils sont de trois grandes cateacutegories

Les applications bureaux (Desktop)

Les consoles de commande en ligne

Les interfaces orienteacutees Web

Outils drsquoeacutelaboration de code Python (IDE)

28

Les environnements de deacuteveloppement inteacutegreacutes de code Python sont nombreux des solutions proprieacutetaires agrave celles portant le

label GPL Ils sont de trois grandes cateacutegories

Les applications bureaux (Desktop)

Les consoles de commande en ligne

Les interfaces orienteacutees Web

Outils drsquoeacutelaboration de code Python (IDE)

29

30

Nom de Symbole Les noms de variables en Python peuvent contenir des caractegraveres alphanumeacuteriques a-z A-Z 0-

9 et certains caractegraveres speacuteciaux tel que _ Les noms de variables normales doivent commencer par une lettre

Par convention les noms de variables commencent par une lettre minuscule et les noms de classe commencent par

une lettre majuscule En outre il y a un certain nombre de mots-cleacutes Python qui ne peuvent pas ecirctre utiliseacutes comme

noms de variables Ces mots-cleacutes sont les suivants

and as assert break class continue def del elif else except exec finally for from global if import in

is lambda not or pass print raise return try while with yield

Affectation assignment de variable

x = 10

my_variable = 122

type(x) fonction TYPE retourne le type de la variable entre parenthegravese

builtinsfloat

Verification de type x = 10

veacuterifier si la variable est reacuteelle

type(x) is float

isinstance(x float)

True

z = complex(x)

print(z type(z))

(1+0j) ltclass complexlsquogt

Base de repreacutesentation des donneacutees

31

Operateurs et comparaisons Opeacuterateurs arithmeacutetiques + - (division entiegravere) puissance

30 20

10

NB operators puissance en python nrsquoest pas ^ mais

2 2

4

Les opeacuterateurs de comparaison sont gtltgt=lt===

objects identiques

x1 = x2 = [12]

x1 is x2

True

2 gt= 2 2 lt= 2

(True True)

Chaines de caractegraveres les liste et les dictionnaires s = Hello world

type(s)

builtinsstr

length of the string the number of characters

len(s)

11

replace a substring in a string with somethign else

s2 = sreplace(world test)

print(s2)

Hello test

s[0]

H

Base de repreacutesentation des donneacutees

32

Chaines de caractegraveres les liste et les dictionnaires s = Hello worldldquo

replace a substring in a string with somethign else

s2 = sreplace(world test)

Hello test

print(s2)

s[05]

Hellolsquo

s[05]

Hellolsquo

s[]

Hello worldlsquo

print(value = f 10) Formatage C des variables

value = 1000000

s2 = value1 = 2f value2 = d (31415 15)

print(s2)

value1 = 314 value2 = 1

Listes l = [1234]

print(type(l))

print(l)

ltclass listgt

[1 2 3 4]

l = [1 a 10 1-1j] peuvent ecirctre heacuteteacuterogegravene

print(l)

[1 a 10 (1-1j)]

Base de repreacutesentation des donneacutees

33

Listes start = 10

stop = 30

step = 2

range(start stop step)

range(10 30 2)

list(range(start stop step))

[10 12 14 16 18 20 22 24 26 28]

s2 = list(s)

S2

[H e l l o w o r l d]

Tri de la liste

s2sort()

print(s2)

[ H d e l l l o o r w]

l = []

lappend(A)

lappend(d)

lappend(d)

print(l)

[A d d]

Tuples Ce sont des variables comme les listes mais pas alteacuterables

point = (10 20)

print(point type(point))

(10 20) ltclass tuplegt

Base de repreacutesentation des donneacutees

34

Tuples x y = point

print(x = x)

print(y = y)

x = 10

y = 20

Dictionaries params = parameter1 10 parameter2 20 parameter3 30

print(type(params))

print(params)

ltclass dictgt

fparameter2 20 parameter3 30 parameter1 10

params[parameter1] = A

params[parameter2] = B

Ajouter une nouvelle entreacutee

params[parameter4] = D

print(paramegravetre = + str(params[parameter1]))

print(paramegravetre = + str(params[parameter2]))

print(paramegravetre = + str(params[parameter3]))

print(paramegravetre = + str(params[parameter4]))

paramegravetre = A

paramegravetre = B

paramegravetre = 30

paramegravetre = D

Base de repreacutesentation des donneacutees

35

36

Affectation amp Controcircle conditionnel de flue statement1 = False Crsquoest une affectation

statement2 = False

if statement1 Test valideacute condition (statement1) est VRAIE

print(statement1 is True)

elif statement2 Exeacutecuteacutee condition (statement2) est VRAIE

print(statement2 is True)

else Exeacutecuteacutee sinon

print(statement1 and statement2 are False)

Boucles for x in [123] [123] peut ecirctre deacutesigneacute par range(3) avec print(x+1)

print(x)

1

2

3

for word in [scientific computing with python]

print(word) condition de reacutepeacutetition deacutependante du contenu de la liste

scientific

computing

with

python

l1 = [x2 for x in range(05)] agrave remarquer la compaciteacute du Python

print(l1)

[0 1 4 9 16]

Base de repreacutesentation des donneacutees

37

Boucles var = 0

while var = 1

print jlsquoeacutecris mon programme ici

choix = raw_input(voulez vous recommencer ( on ) )

if choix == n

var = 1

else

lsquovous allez ecirctre renvoyeacute au deacutebut du programmersquo

X = y 2

while x gt 1

If y x == 0

print y lsquo est facteur de rsquo x

break

x -= 1

else

print y lsquo est premierlsquo

Lrsquoutilisation de zip et map peut srsquoaveacutereacutee encore plus efficace

l1 = [1 2 3]

l2 = [4 5 6]

for (x y) in zip(l1 l2)

print x y -- x + y

1 4 -- 5

2 5 -- 7

3 6 -- 9

Base de repreacutesentation des donneacutees

38

s=0123456789

print map(int s)

[0 1 2 3 4 5 6 7 8 9]

Utilisation et

puissance de MAP

Utilisation de ZIP

Intervales range(start stop step)

range(5 10)

5 jusqursquoagrave 10 (exclue) avec un pas de 1

range(0 10 3)

0 3 6 9

range(-10 -100 -30)

-10 -40 -70

Test conditionnel binaire x = 5

y = 10

if x gt y

print(x est grand que y)

else

print(ldquox nrsquoest pas grand que yrdquo)

Dans Python on peut compliquer les chose

x = 5

y = 10

Z = 12

if z gt x gt y

print(lsquoy est petit que x et x est petit que z)

Base de repreacutesentation des donneacutees

39

Boucle avec test conditionnel binaire break continue et else dans une boucle for

for n in range(2 10)

for x in range(2 n)

if n x == 0

print(n lsquoest eacutegal agrave x nx)

break

else

print(n lsquoest premier)

Utilisation de lrsquoinstruction continue

for num in range(2 10)

if num 2 == 0 le symbole deacutesigne lrsquoopeacuteration RESTE de la division

print(ldquoNombre paire trouveacute num)

continue

print(ldquoNombre non premier num)

Base de repreacutesentation des donneacutees

40

Deacutefinition de fonction (proceacutedure avec retour) def fib(n) Ecrire la suite de Fibonacci jusqursquoagrave n

a b = 0 1

while a lt n

print(a end= )

a b = b a+b

print()

fib(2000)

0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597

f = fib deacutesignation par reacutefeacuterence f agrave la fonction fib

f(100)

0 1 1 2 3 5 8 13 21 34 55 89

autre type de deacutefinition de fonction

def ask_ok(prompt retries=4 complaint=Oui or Non srsquoil vou plait )

while True

ok = input(prompt)

if ok in (lsquoo lsquooui lsquoOui)

return True

if ok in (lsquon no non lsquoNon)

return False

retries = retries - 1

if retries lt 0

raise OSError(lsquoUtilisateur non coopeacuteratif)

print(complaint)

Base de repreacutesentation des donneacutees

41

Lrsquoinstruction lambda def make_incrementeur(n)

return lambda x x + n

f = make_incrementeur(42)

f(0)

42

f(1)

43

un autre cas drsquoutilisation

pairs = [(1 one) (2 two) (3 three) (4 four)]

pairssort(key=lambda pair pair[1])

pairs

[(4 four) (1 one) (3 three) (2 two)]

Les annotations dans une fonction Les annotations deacutefinissent des messages de preacutesentation

def f(chiken str eggs str = eggs) -gt str remarquer que la fonction est de type STR

print(Annotations f__annotations__)

print(Arguments chiken eggs)

return chiken + and + eggs

f(spam)

Annotations chiken ltclass strgt return ltclass strgt eggs ltclass strgt

Arguments spam eggs

spam and eggslsquo

Base de repreacutesentation des donneacutees

42

Les deacutecorateurs python Notre deacutecorateur

def decorate(func)

print uJe suis dans la fonction decorate et je deacutecore s func__name__

print uExeacutecution de la fonction s func__name__

return func

Fonction cible utiliseacutee avec DECORATOR

decorate

def foobar(args)

print join(args)

Exemple drsquoappel de la fonction

foobar(A B C D)

Je suis dans la fonction decorate et je deacutecore foobar

Exeacutecution de la fonction foobar

A B C D

Il est posible drsquoattribuer plusieurs deacutecorateurs agrave une seule fonction

decorateur1

decorateur2

def ma_fonction()

instructions

Base de repreacutesentation des donneacutees

43

Manipulation des listes a = [6625 333 333 1 12345]

print(acount(333) acount(6625) acount(x))

2 1 0

ainsert(2 -1)

aappend(333)

a

[6625 333 -1 333 1 12345 333]

aindex(333)

1

aremove(333)

a

[6625 -1 333 1 12345 333]

areverse()

a

[333 12345 1 333 -1 6625]

asort()

a

[-1 1 6625 333 333 12345]

apop()

12345

a

[-1 1 6625 333 333]

Base de repreacutesentation des donneacutees

44

Puissance du langage Python Lrsquoensemble des lignes suiantes peut ecirctre compacteacute par ce qui suit

combs = []

for x in [123]

for y in [314]

if x = y

combsappend((x y))

Combs

Ou bien

[(x y) for x in [123] for y in [314] if x = y]

Donne le mecircme reacutesultat

[(1 3) (1 4) (2 3) (2 1) (2 4) (3 1) (3 4)]

Calcul de la valeur de PI arrondie

from math import pi

[str(round(pi i)) for i in range(1 6)]

[31 314 3142 31416 314159]

Geacuteneacuterateur avec utilisation de YIELD

def generateur()

yield a

yield b

yield cldquo

i=generateur()

for v in i

print v

a

b

c

Base de repreacutesentation des donneacutees

45

Les expressions reacuteguliegraveres en python Les expressions reacuteguliegravere sont utiliseacutees pour veacuterifier la conformiteacute des expressions de

chaines de caractegraveres par rapport agrave un motif Les symboles suivants sont utiliseacutes

^ $ + [ ] | ( )

Le point correspond agrave nimporte quel caractegravere

^ Indique un commencement de segment mais signifie aussi contraire de

$ Fin de segment

[xy] Une liste de segment possible Exemple [abc] eacutequivaut agrave a b ou c

(x|y) Indique un choix multiple type (ps|ump) eacutequivaut agrave ps OU UMP

d le segment est composeacute uniquement de chiffre ce qui eacutequivaut agrave [0-9]

D le segment nest pas composeacute de chiffre ce qui eacutequivaut agrave [^0-9]

s Un espace ce qui eacutequivaut agrave [ tnrfv]

S Pas despace ce qui eacutequivaut agrave [^ tnrfv]

w Preacutesence alphanumeacuterique ce qui eacutequivaut agrave [a-zA-Z0-9_]

W Pas de preacutesence alphanumeacuterique [^a-zA-Z0-9_]

Est un caractegravere deacutechappement T2 Le T soit reacutepeacuteteacute 2 fois

TA19 La seacutequence TA doit ecirctre preacutesente de 1 agrave 9 fois

TAM10 La seacutequence TAM nrsquoexiste pas ou reacutepeacuteteacutee 10 fois

LI1 La seacutequence LI doit ecirctre reacutepeacuteteacutee au moins une fois

Base de repreacutesentation des donneacutees

46

Les expressions reacuteguliegraveres en python Utilisation des expressions reacuteguliegravere

import re

print rematch(rGR()S GRIS)

lt_sreSRE_Match object at 0x02019DE0gt

Une utilisation freacutequente consiste en la validation des valeurs des emails saisis

Utilisation des expressions reacuteguliegravere

import re

mails = [lsquomtamaligmailcomrsquorsquoutmbuniv-bechardzrsquo lsquo8freefrrsquo lsquouniv-bechardzrsquo lsquotamalicdtarsquo]

regex = recompile(rrsquo^[a-z0-9_-]+[a-z0-9_-]+[(com|fr|dz)]+rsquo

for mail in mails

if regexmatch(mail) is not None

print Ce mail s est valide mail

else

print Erreur ce mail s est non valide mail

Ce mail mtamaligmailcom est valide

Ce mail utmbuniv-bechardz est valide

Ce mail 8freefr est valide

Erreur ce mail univ-bechardz est non valide

Erreur ce mail tamalicdta est non valide

Base de repreacutesentation des donneacutees

47

Les fichiers Creacuteer lire et eacutecrire dans un fichier en python Utilisation des expressions reacuteguliegravere

fichier = open(donneestxt r)

print fichier

ltopen file lsquodonneestxt mode r at 0x7ff6cf3fe4b0gt

Le descripteur permet de renseigner la machine sur la maniegravere avec laquelle le fichier est utiliseacute

r pour ouverture en mode READ

w pour ouverture en mode WRITE chaque fois le contenu du fichier est eacutecraseacute sinon python le creacutee

a pour ajout lsquoAPPENDrsquo Si le fichier nexiste pas python le creacutee

b Ouverture en mode Binaire

t Ouverture en mode Texte

x creacutee un nouveau fichier et louvrir pour eacutecriture

proceacutedure geacuteneacuterale pour lrsquoutilisation drsquoun fichier

fichier = open(lsquodonneestxtrsquo r)

print fichierread()

fichierclose()

Lrsquoinstruction WITH peut ecirctre utiliseacutee sans besoin de la fonction CLOSE

with open(datatxt r) as fichier

print fichierread()

Base de repreacutesentation des donneacutees

48

49

Le langage Python est un langage script interpreacuteteacute Le programme portant lrsquoune des extension py pyw ou pwc est

structureacute selon le canevas suivant

Les codifications

usrbinpython27

--codingencodage -

Les imports des librairies

Les instructions

Le langage Python passe pour ecirctre exeacutecuteacute sur deux eacutetapes la premiegravere UNE PRECOMPILATION geacuteneacuteration du code

machine et finalement un eacutecriture en code machine exeacutecutable (selon la machine)

Lrsquoenvironnement drsquoexeacutecution des scripts eacutecrits en Python regroupe les avantages des TRADUCTEURS (travaille en ligne par

ligne) et les COMPILATEURS (puissance de la structure algorithmique)

La bibliothegraveque cx_Freeze sert agrave transformer les fichiers scripts Pyhon py en exeacutecutable exe

Structures algorithmique du python

50

51

Matrices amp Systegravemes lineacuteaires

52

53

54

55

56

57

Le calcul scientifique

Reacutefeacuterences L-V Bertallanfy lsquoGeneral System Theoryrsquo Edition MASSON 1972

58

Page 17: Chap XIII : calcul scientifique avec python

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse des donneacutees (Panda)

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

17

import numpy as np

from scipy import signal misc

import matplotlibpyplot as plt

image = miscface(gray=True)astype(npfloat32)

derfilt = nparray([10 -2 10] dtype=npfloat32)

ck = signalcspline2d(image 80)

deriv = (signalsepfir2d(ck derfilt [1]) +signalsepfir2d(ck [1] derfilt))

laplacian = nparray([[010] [1-41] [010]] dtype=npfloat32)

deriv2 = signalconvolve2d(cklaplacianmode=lsquosameboundary=symm)

pltfigure()

pltimshow(image)

pltgray()

plttitle(lsquoImage original)

pltshow()

pltfigure()

pltimshow(deriv)

pltgray()

plttitle(lsquosortie avec filtre spline)

pltshow()

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse des donneacutees (Panda)

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

from matplotlibpyplot import figure hold plot legend draw

from numpy import linspace

import scipystats as stats

from numpyrandom import randn

x = randn(100)

fig = figure()

ax = figadd_subplot(111)

axhist(x bins=30 label=rsquoEmpiricalrsquo)

xlim = axget_xlim()

ylim = axget_ylim()

pdfx = linspace(xlim[0] xlim[1] 200)

pdfy = statsnormpdf(pdfx)

pdfy = pdfy pdfymax() ylim[1]

hold(True)

plot(pdfx pdfy rsquor-rsquo label=rsquoPDFrsquo)

axset_ylim((ylim[0] 12 ylim[1]))

legend()

hold(False)

draw()

18

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse des donneacutees (Panda QtGraph)

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation 19

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Domaines drsquoutilisation

matplotlib inline

from pylab import plot show title xlabel ylabel subplot savefig

from scipy import fft arange ifft

from numpy import sin linspace pi

from scipyiowavfile import readwrite

def plotSpectru(yFs)

n = len(y) lungime semnal

k = arange(n)

T = nFs

frq = kT two sides frequency range

frq = frq[range(n2)] one side frequency range

Y = fft(y)n fft computing and normalization

Y = Y[range(n2)]

plot(frqabs(Y)r) plotting the spectrum

xlabel(Freq (Hz))

ylabel(|Y(freq)|)

Fs = 44100 sampling rate

ratedata=read(fatihawav)

y=data

lungime=len(y)

timp=len(y)44100

t=linspace(0timplen(y))

subplot(211)

plot(ty)

xlabel(Time)

ylabel(Amplitude)

subplot(212)

plotSpectru(yFs)

show()

20

Lecture de la

sourah

Code du traitement

audio

Spectre Amp|Freacuteq

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele (MPI Python)

Theacuteorie des graphes (Networkx)

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

21 Exemple

de graphe

Fenecirctre Aperccedilu

du bloc-note

Importation de la

librairie NetworkX

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

import RPiGPIO as GPIO

GPIOsetmode(GPIOBCM) set board mode to Broadcom

GPIOsetup(17 GPIOOUT) set up pin 17

GPIOsetup(18 GPIOOUT) set up pin 18

GPIOoutput(17 1) turn on pin 17

GPIOoutput(18 1) turn on pin 18

Importation

librairie GPIO

Module

Galileo Gen 2

Module

RaspBerry PI 3

22

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D (Python CAD FreeCAD)

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

23

from OCCSTEPControl import STEPControl_Reader

from OCCIFSelect import IFSelect_RetDone IFSelect_ItemsByEntity

from OCCDisplaySimpleGui import init_display

step_reader = STEPControl_Reader()

status = step_readerReadFile(modelswind_turbinestp)

if status == IFSelect_RetDone check status

failsonly = False

step_readerPrintCheckLoad(failsonly IFSelect_ItemsByEntity)

step_readerPrintCheckTransfer(failsonly IFSelect_ItemsByEntity)

ok = step_readerTransferRoot(1)

_nbs = step_readerNbShapes()

aResShape = step_readerShape(1)

else

print(Error cant read file)

sysexit(0)

display start_display add_menu add_function_to_menu = init_display()

displayDisplayShape(aResShape update=True)

start_display()

Importation

librairie OCC

Maillage Dauphin

Rendu du macirct drsquoun

aeacuterogeacuteneacuterateur

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D (Python CAD FreeCAD)

Bioinformatique et manipulation du geacutenome

POO avec Python (Programmation

Orienteacutee Objet) Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

class Rocket()

Rocket simule une roquette pour un jeu

ou une simulation de physique

def __init__(self)

Each rocket has an (xy) position

selfx = 0

selfy = 0

def move_up(self)

Increacutementation de la position y de la roquette

selfy += 1

Deacutefinir une ensemble de 5 roquettes les stocker dans une liste

my_rockets = []

for x in range(05)

new_rocket = Rocket()

my_rocketsappend(new_rocket)

A remarquer que chaque roquette est un objet agrave part entiegravere

for rocket in my_rockets

print(rocket)

Deacutefinition drsquoune

nouvelle Classe

Instantiation

Meacutethode Constructeur

__init__

24

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D (Python CAD FreeCAD)

Bioinformatique et manipulation

du geacutenome Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

25

from Bio import SeqIO

for seq_record in SeqIOparse(ls_orchidgbk genbank)

print(seq_recordid)

print(repr(seq_recordseq))

print(len(seq_record))

Z785331

Seq(CGTAACAAGGTTTCCGTAGGTGAACCTGCGGAAGGATCATTGATGAGACCGTGGCGC

IUPACAmbiguousDNA())

740

Z784391

Seq(CATTGTTGAGATCACATAATAATTGATCGAGTTAATCTGGAGGATCTGTTTACTGCC

IUPACAmbiguousDNA())

592

Sinon dans une Terminal Python

gtgtgt from BioSeq import Seq

gtgtgt from BioAlphabet import generic_dna

gtgtgt gene = Seq(GTGAAAAAGATGCAATCTATCGTACTCGCACTTTCCCTGGTTCTGGTCGCTCCCATGGCA +

GCACAGGCTGCGGAAATTACGTTAGTCCCGTCAGTAAAATTACAGATAGGCGATCGTGAT +

AATCGTGGCTATTACTGGGATGGAGGTCACTGGCGCGACCACGGCTGGTGGAAACAACAT +

TATGAATGGCGAGGCAATCGCTGGCACCTACACGGACCGCCGCCACCGCCGCGCCACCAT +

AAGAAAGCTCCTCATGATCATCACGGCGGTCATGGTCCAGGCAAACATCACCGCTAA

generic_dna)

gtgtgt genetranslate(table=Bacterial)

Seq(VKKMQSIVLALSLVLVAPMAAQAAEITLVPSVKLQIGDRDNRGYYWDGGHWRDHHR

HasStopCodon(ExtendedIUPACProtein() )

gtgtgt genetranslate(table=Bacterial to_stop=True)

Seq(VKKMQSIVLALSLVLVAPMAAQAAEITLVPSVKLQIGDRDNRGYYWDGGHWRDHHHR

ExtendedIUPACProtein())

Logo de

BioPython Seacutequence drsquoADN

Importation

librairie BIO

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D (Python CAD FreeCAD)

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

26

Installer agrave partir de PyPI

$ pip install mezzanine

Instantier un projet

$ mezzanine-project monproject

$ cd monproject

Instantier une Base de donneacutees

$ python managepy createdb

Lancer le serveur Web

$ python managepy runserver

Installation en mode

commande

URL du site instantieacute

Version Mobile Menu

Version Administration

Sites Web fait avec

Mezzanine

Version Normal

Les environnements de deacuteveloppement inteacutegreacutes de code Python sont nombreux des solutions proprieacutetaires agrave celles portant le

label GPL

Ils sont de trois grandes cateacutegories

Les applications bureaux (Desktop)

Les consoles de commande en ligne Les interfaces orienteacutees Web

Outils drsquoeacutelaboration de code Python (IDE)

27

Les environnements de deacuteveloppement inteacutegreacutes de code Python sont nombreux des solutions proprieacutetaires agrave celles portant le

label GPL Ils sont de trois grandes cateacutegories

Les applications bureaux (Desktop)

Les consoles de commande en ligne

Les interfaces orienteacutees Web

Outils drsquoeacutelaboration de code Python (IDE)

28

Les environnements de deacuteveloppement inteacutegreacutes de code Python sont nombreux des solutions proprieacutetaires agrave celles portant le

label GPL Ils sont de trois grandes cateacutegories

Les applications bureaux (Desktop)

Les consoles de commande en ligne

Les interfaces orienteacutees Web

Outils drsquoeacutelaboration de code Python (IDE)

29

30

Nom de Symbole Les noms de variables en Python peuvent contenir des caractegraveres alphanumeacuteriques a-z A-Z 0-

9 et certains caractegraveres speacuteciaux tel que _ Les noms de variables normales doivent commencer par une lettre

Par convention les noms de variables commencent par une lettre minuscule et les noms de classe commencent par

une lettre majuscule En outre il y a un certain nombre de mots-cleacutes Python qui ne peuvent pas ecirctre utiliseacutes comme

noms de variables Ces mots-cleacutes sont les suivants

and as assert break class continue def del elif else except exec finally for from global if import in

is lambda not or pass print raise return try while with yield

Affectation assignment de variable

x = 10

my_variable = 122

type(x) fonction TYPE retourne le type de la variable entre parenthegravese

builtinsfloat

Verification de type x = 10

veacuterifier si la variable est reacuteelle

type(x) is float

isinstance(x float)

True

z = complex(x)

print(z type(z))

(1+0j) ltclass complexlsquogt

Base de repreacutesentation des donneacutees

31

Operateurs et comparaisons Opeacuterateurs arithmeacutetiques + - (division entiegravere) puissance

30 20

10

NB operators puissance en python nrsquoest pas ^ mais

2 2

4

Les opeacuterateurs de comparaison sont gtltgt=lt===

objects identiques

x1 = x2 = [12]

x1 is x2

True

2 gt= 2 2 lt= 2

(True True)

Chaines de caractegraveres les liste et les dictionnaires s = Hello world

type(s)

builtinsstr

length of the string the number of characters

len(s)

11

replace a substring in a string with somethign else

s2 = sreplace(world test)

print(s2)

Hello test

s[0]

H

Base de repreacutesentation des donneacutees

32

Chaines de caractegraveres les liste et les dictionnaires s = Hello worldldquo

replace a substring in a string with somethign else

s2 = sreplace(world test)

Hello test

print(s2)

s[05]

Hellolsquo

s[05]

Hellolsquo

s[]

Hello worldlsquo

print(value = f 10) Formatage C des variables

value = 1000000

s2 = value1 = 2f value2 = d (31415 15)

print(s2)

value1 = 314 value2 = 1

Listes l = [1234]

print(type(l))

print(l)

ltclass listgt

[1 2 3 4]

l = [1 a 10 1-1j] peuvent ecirctre heacuteteacuterogegravene

print(l)

[1 a 10 (1-1j)]

Base de repreacutesentation des donneacutees

33

Listes start = 10

stop = 30

step = 2

range(start stop step)

range(10 30 2)

list(range(start stop step))

[10 12 14 16 18 20 22 24 26 28]

s2 = list(s)

S2

[H e l l o w o r l d]

Tri de la liste

s2sort()

print(s2)

[ H d e l l l o o r w]

l = []

lappend(A)

lappend(d)

lappend(d)

print(l)

[A d d]

Tuples Ce sont des variables comme les listes mais pas alteacuterables

point = (10 20)

print(point type(point))

(10 20) ltclass tuplegt

Base de repreacutesentation des donneacutees

34

Tuples x y = point

print(x = x)

print(y = y)

x = 10

y = 20

Dictionaries params = parameter1 10 parameter2 20 parameter3 30

print(type(params))

print(params)

ltclass dictgt

fparameter2 20 parameter3 30 parameter1 10

params[parameter1] = A

params[parameter2] = B

Ajouter une nouvelle entreacutee

params[parameter4] = D

print(paramegravetre = + str(params[parameter1]))

print(paramegravetre = + str(params[parameter2]))

print(paramegravetre = + str(params[parameter3]))

print(paramegravetre = + str(params[parameter4]))

paramegravetre = A

paramegravetre = B

paramegravetre = 30

paramegravetre = D

Base de repreacutesentation des donneacutees

35

36

Affectation amp Controcircle conditionnel de flue statement1 = False Crsquoest une affectation

statement2 = False

if statement1 Test valideacute condition (statement1) est VRAIE

print(statement1 is True)

elif statement2 Exeacutecuteacutee condition (statement2) est VRAIE

print(statement2 is True)

else Exeacutecuteacutee sinon

print(statement1 and statement2 are False)

Boucles for x in [123] [123] peut ecirctre deacutesigneacute par range(3) avec print(x+1)

print(x)

1

2

3

for word in [scientific computing with python]

print(word) condition de reacutepeacutetition deacutependante du contenu de la liste

scientific

computing

with

python

l1 = [x2 for x in range(05)] agrave remarquer la compaciteacute du Python

print(l1)

[0 1 4 9 16]

Base de repreacutesentation des donneacutees

37

Boucles var = 0

while var = 1

print jlsquoeacutecris mon programme ici

choix = raw_input(voulez vous recommencer ( on ) )

if choix == n

var = 1

else

lsquovous allez ecirctre renvoyeacute au deacutebut du programmersquo

X = y 2

while x gt 1

If y x == 0

print y lsquo est facteur de rsquo x

break

x -= 1

else

print y lsquo est premierlsquo

Lrsquoutilisation de zip et map peut srsquoaveacutereacutee encore plus efficace

l1 = [1 2 3]

l2 = [4 5 6]

for (x y) in zip(l1 l2)

print x y -- x + y

1 4 -- 5

2 5 -- 7

3 6 -- 9

Base de repreacutesentation des donneacutees

38

s=0123456789

print map(int s)

[0 1 2 3 4 5 6 7 8 9]

Utilisation et

puissance de MAP

Utilisation de ZIP

Intervales range(start stop step)

range(5 10)

5 jusqursquoagrave 10 (exclue) avec un pas de 1

range(0 10 3)

0 3 6 9

range(-10 -100 -30)

-10 -40 -70

Test conditionnel binaire x = 5

y = 10

if x gt y

print(x est grand que y)

else

print(ldquox nrsquoest pas grand que yrdquo)

Dans Python on peut compliquer les chose

x = 5

y = 10

Z = 12

if z gt x gt y

print(lsquoy est petit que x et x est petit que z)

Base de repreacutesentation des donneacutees

39

Boucle avec test conditionnel binaire break continue et else dans une boucle for

for n in range(2 10)

for x in range(2 n)

if n x == 0

print(n lsquoest eacutegal agrave x nx)

break

else

print(n lsquoest premier)

Utilisation de lrsquoinstruction continue

for num in range(2 10)

if num 2 == 0 le symbole deacutesigne lrsquoopeacuteration RESTE de la division

print(ldquoNombre paire trouveacute num)

continue

print(ldquoNombre non premier num)

Base de repreacutesentation des donneacutees

40

Deacutefinition de fonction (proceacutedure avec retour) def fib(n) Ecrire la suite de Fibonacci jusqursquoagrave n

a b = 0 1

while a lt n

print(a end= )

a b = b a+b

print()

fib(2000)

0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597

f = fib deacutesignation par reacutefeacuterence f agrave la fonction fib

f(100)

0 1 1 2 3 5 8 13 21 34 55 89

autre type de deacutefinition de fonction

def ask_ok(prompt retries=4 complaint=Oui or Non srsquoil vou plait )

while True

ok = input(prompt)

if ok in (lsquoo lsquooui lsquoOui)

return True

if ok in (lsquon no non lsquoNon)

return False

retries = retries - 1

if retries lt 0

raise OSError(lsquoUtilisateur non coopeacuteratif)

print(complaint)

Base de repreacutesentation des donneacutees

41

Lrsquoinstruction lambda def make_incrementeur(n)

return lambda x x + n

f = make_incrementeur(42)

f(0)

42

f(1)

43

un autre cas drsquoutilisation

pairs = [(1 one) (2 two) (3 three) (4 four)]

pairssort(key=lambda pair pair[1])

pairs

[(4 four) (1 one) (3 three) (2 two)]

Les annotations dans une fonction Les annotations deacutefinissent des messages de preacutesentation

def f(chiken str eggs str = eggs) -gt str remarquer que la fonction est de type STR

print(Annotations f__annotations__)

print(Arguments chiken eggs)

return chiken + and + eggs

f(spam)

Annotations chiken ltclass strgt return ltclass strgt eggs ltclass strgt

Arguments spam eggs

spam and eggslsquo

Base de repreacutesentation des donneacutees

42

Les deacutecorateurs python Notre deacutecorateur

def decorate(func)

print uJe suis dans la fonction decorate et je deacutecore s func__name__

print uExeacutecution de la fonction s func__name__

return func

Fonction cible utiliseacutee avec DECORATOR

decorate

def foobar(args)

print join(args)

Exemple drsquoappel de la fonction

foobar(A B C D)

Je suis dans la fonction decorate et je deacutecore foobar

Exeacutecution de la fonction foobar

A B C D

Il est posible drsquoattribuer plusieurs deacutecorateurs agrave une seule fonction

decorateur1

decorateur2

def ma_fonction()

instructions

Base de repreacutesentation des donneacutees

43

Manipulation des listes a = [6625 333 333 1 12345]

print(acount(333) acount(6625) acount(x))

2 1 0

ainsert(2 -1)

aappend(333)

a

[6625 333 -1 333 1 12345 333]

aindex(333)

1

aremove(333)

a

[6625 -1 333 1 12345 333]

areverse()

a

[333 12345 1 333 -1 6625]

asort()

a

[-1 1 6625 333 333 12345]

apop()

12345

a

[-1 1 6625 333 333]

Base de repreacutesentation des donneacutees

44

Puissance du langage Python Lrsquoensemble des lignes suiantes peut ecirctre compacteacute par ce qui suit

combs = []

for x in [123]

for y in [314]

if x = y

combsappend((x y))

Combs

Ou bien

[(x y) for x in [123] for y in [314] if x = y]

Donne le mecircme reacutesultat

[(1 3) (1 4) (2 3) (2 1) (2 4) (3 1) (3 4)]

Calcul de la valeur de PI arrondie

from math import pi

[str(round(pi i)) for i in range(1 6)]

[31 314 3142 31416 314159]

Geacuteneacuterateur avec utilisation de YIELD

def generateur()

yield a

yield b

yield cldquo

i=generateur()

for v in i

print v

a

b

c

Base de repreacutesentation des donneacutees

45

Les expressions reacuteguliegraveres en python Les expressions reacuteguliegravere sont utiliseacutees pour veacuterifier la conformiteacute des expressions de

chaines de caractegraveres par rapport agrave un motif Les symboles suivants sont utiliseacutes

^ $ + [ ] | ( )

Le point correspond agrave nimporte quel caractegravere

^ Indique un commencement de segment mais signifie aussi contraire de

$ Fin de segment

[xy] Une liste de segment possible Exemple [abc] eacutequivaut agrave a b ou c

(x|y) Indique un choix multiple type (ps|ump) eacutequivaut agrave ps OU UMP

d le segment est composeacute uniquement de chiffre ce qui eacutequivaut agrave [0-9]

D le segment nest pas composeacute de chiffre ce qui eacutequivaut agrave [^0-9]

s Un espace ce qui eacutequivaut agrave [ tnrfv]

S Pas despace ce qui eacutequivaut agrave [^ tnrfv]

w Preacutesence alphanumeacuterique ce qui eacutequivaut agrave [a-zA-Z0-9_]

W Pas de preacutesence alphanumeacuterique [^a-zA-Z0-9_]

Est un caractegravere deacutechappement T2 Le T soit reacutepeacuteteacute 2 fois

TA19 La seacutequence TA doit ecirctre preacutesente de 1 agrave 9 fois

TAM10 La seacutequence TAM nrsquoexiste pas ou reacutepeacuteteacutee 10 fois

LI1 La seacutequence LI doit ecirctre reacutepeacuteteacutee au moins une fois

Base de repreacutesentation des donneacutees

46

Les expressions reacuteguliegraveres en python Utilisation des expressions reacuteguliegravere

import re

print rematch(rGR()S GRIS)

lt_sreSRE_Match object at 0x02019DE0gt

Une utilisation freacutequente consiste en la validation des valeurs des emails saisis

Utilisation des expressions reacuteguliegravere

import re

mails = [lsquomtamaligmailcomrsquorsquoutmbuniv-bechardzrsquo lsquo8freefrrsquo lsquouniv-bechardzrsquo lsquotamalicdtarsquo]

regex = recompile(rrsquo^[a-z0-9_-]+[a-z0-9_-]+[(com|fr|dz)]+rsquo

for mail in mails

if regexmatch(mail) is not None

print Ce mail s est valide mail

else

print Erreur ce mail s est non valide mail

Ce mail mtamaligmailcom est valide

Ce mail utmbuniv-bechardz est valide

Ce mail 8freefr est valide

Erreur ce mail univ-bechardz est non valide

Erreur ce mail tamalicdta est non valide

Base de repreacutesentation des donneacutees

47

Les fichiers Creacuteer lire et eacutecrire dans un fichier en python Utilisation des expressions reacuteguliegravere

fichier = open(donneestxt r)

print fichier

ltopen file lsquodonneestxt mode r at 0x7ff6cf3fe4b0gt

Le descripteur permet de renseigner la machine sur la maniegravere avec laquelle le fichier est utiliseacute

r pour ouverture en mode READ

w pour ouverture en mode WRITE chaque fois le contenu du fichier est eacutecraseacute sinon python le creacutee

a pour ajout lsquoAPPENDrsquo Si le fichier nexiste pas python le creacutee

b Ouverture en mode Binaire

t Ouverture en mode Texte

x creacutee un nouveau fichier et louvrir pour eacutecriture

proceacutedure geacuteneacuterale pour lrsquoutilisation drsquoun fichier

fichier = open(lsquodonneestxtrsquo r)

print fichierread()

fichierclose()

Lrsquoinstruction WITH peut ecirctre utiliseacutee sans besoin de la fonction CLOSE

with open(datatxt r) as fichier

print fichierread()

Base de repreacutesentation des donneacutees

48

49

Le langage Python est un langage script interpreacuteteacute Le programme portant lrsquoune des extension py pyw ou pwc est

structureacute selon le canevas suivant

Les codifications

usrbinpython27

--codingencodage -

Les imports des librairies

Les instructions

Le langage Python passe pour ecirctre exeacutecuteacute sur deux eacutetapes la premiegravere UNE PRECOMPILATION geacuteneacuteration du code

machine et finalement un eacutecriture en code machine exeacutecutable (selon la machine)

Lrsquoenvironnement drsquoexeacutecution des scripts eacutecrits en Python regroupe les avantages des TRADUCTEURS (travaille en ligne par

ligne) et les COMPILATEURS (puissance de la structure algorithmique)

La bibliothegraveque cx_Freeze sert agrave transformer les fichiers scripts Pyhon py en exeacutecutable exe

Structures algorithmique du python

50

51

Matrices amp Systegravemes lineacuteaires

52

53

54

55

56

57

Le calcul scientifique

Reacutefeacuterences L-V Bertallanfy lsquoGeneral System Theoryrsquo Edition MASSON 1972

58

Page 18: Chap XIII : calcul scientifique avec python

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse des donneacutees (Panda)

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

from matplotlibpyplot import figure hold plot legend draw

from numpy import linspace

import scipystats as stats

from numpyrandom import randn

x = randn(100)

fig = figure()

ax = figadd_subplot(111)

axhist(x bins=30 label=rsquoEmpiricalrsquo)

xlim = axget_xlim()

ylim = axget_ylim()

pdfx = linspace(xlim[0] xlim[1] 200)

pdfy = statsnormpdf(pdfx)

pdfy = pdfy pdfymax() ylim[1]

hold(True)

plot(pdfx pdfy rsquor-rsquo label=rsquoPDFrsquo)

axset_ylim((ylim[0] 12 ylim[1]))

legend()

hold(False)

draw()

18

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse des donneacutees (Panda QtGraph)

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation 19

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Domaines drsquoutilisation

matplotlib inline

from pylab import plot show title xlabel ylabel subplot savefig

from scipy import fft arange ifft

from numpy import sin linspace pi

from scipyiowavfile import readwrite

def plotSpectru(yFs)

n = len(y) lungime semnal

k = arange(n)

T = nFs

frq = kT two sides frequency range

frq = frq[range(n2)] one side frequency range

Y = fft(y)n fft computing and normalization

Y = Y[range(n2)]

plot(frqabs(Y)r) plotting the spectrum

xlabel(Freq (Hz))

ylabel(|Y(freq)|)

Fs = 44100 sampling rate

ratedata=read(fatihawav)

y=data

lungime=len(y)

timp=len(y)44100

t=linspace(0timplen(y))

subplot(211)

plot(ty)

xlabel(Time)

ylabel(Amplitude)

subplot(212)

plotSpectru(yFs)

show()

20

Lecture de la

sourah

Code du traitement

audio

Spectre Amp|Freacuteq

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele (MPI Python)

Theacuteorie des graphes (Networkx)

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

21 Exemple

de graphe

Fenecirctre Aperccedilu

du bloc-note

Importation de la

librairie NetworkX

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

import RPiGPIO as GPIO

GPIOsetmode(GPIOBCM) set board mode to Broadcom

GPIOsetup(17 GPIOOUT) set up pin 17

GPIOsetup(18 GPIOOUT) set up pin 18

GPIOoutput(17 1) turn on pin 17

GPIOoutput(18 1) turn on pin 18

Importation

librairie GPIO

Module

Galileo Gen 2

Module

RaspBerry PI 3

22

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D (Python CAD FreeCAD)

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

23

from OCCSTEPControl import STEPControl_Reader

from OCCIFSelect import IFSelect_RetDone IFSelect_ItemsByEntity

from OCCDisplaySimpleGui import init_display

step_reader = STEPControl_Reader()

status = step_readerReadFile(modelswind_turbinestp)

if status == IFSelect_RetDone check status

failsonly = False

step_readerPrintCheckLoad(failsonly IFSelect_ItemsByEntity)

step_readerPrintCheckTransfer(failsonly IFSelect_ItemsByEntity)

ok = step_readerTransferRoot(1)

_nbs = step_readerNbShapes()

aResShape = step_readerShape(1)

else

print(Error cant read file)

sysexit(0)

display start_display add_menu add_function_to_menu = init_display()

displayDisplayShape(aResShape update=True)

start_display()

Importation

librairie OCC

Maillage Dauphin

Rendu du macirct drsquoun

aeacuterogeacuteneacuterateur

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D (Python CAD FreeCAD)

Bioinformatique et manipulation du geacutenome

POO avec Python (Programmation

Orienteacutee Objet) Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

class Rocket()

Rocket simule une roquette pour un jeu

ou une simulation de physique

def __init__(self)

Each rocket has an (xy) position

selfx = 0

selfy = 0

def move_up(self)

Increacutementation de la position y de la roquette

selfy += 1

Deacutefinir une ensemble de 5 roquettes les stocker dans une liste

my_rockets = []

for x in range(05)

new_rocket = Rocket()

my_rocketsappend(new_rocket)

A remarquer que chaque roquette est un objet agrave part entiegravere

for rocket in my_rockets

print(rocket)

Deacutefinition drsquoune

nouvelle Classe

Instantiation

Meacutethode Constructeur

__init__

24

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D (Python CAD FreeCAD)

Bioinformatique et manipulation

du geacutenome Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

25

from Bio import SeqIO

for seq_record in SeqIOparse(ls_orchidgbk genbank)

print(seq_recordid)

print(repr(seq_recordseq))

print(len(seq_record))

Z785331

Seq(CGTAACAAGGTTTCCGTAGGTGAACCTGCGGAAGGATCATTGATGAGACCGTGGCGC

IUPACAmbiguousDNA())

740

Z784391

Seq(CATTGTTGAGATCACATAATAATTGATCGAGTTAATCTGGAGGATCTGTTTACTGCC

IUPACAmbiguousDNA())

592

Sinon dans une Terminal Python

gtgtgt from BioSeq import Seq

gtgtgt from BioAlphabet import generic_dna

gtgtgt gene = Seq(GTGAAAAAGATGCAATCTATCGTACTCGCACTTTCCCTGGTTCTGGTCGCTCCCATGGCA +

GCACAGGCTGCGGAAATTACGTTAGTCCCGTCAGTAAAATTACAGATAGGCGATCGTGAT +

AATCGTGGCTATTACTGGGATGGAGGTCACTGGCGCGACCACGGCTGGTGGAAACAACAT +

TATGAATGGCGAGGCAATCGCTGGCACCTACACGGACCGCCGCCACCGCCGCGCCACCAT +

AAGAAAGCTCCTCATGATCATCACGGCGGTCATGGTCCAGGCAAACATCACCGCTAA

generic_dna)

gtgtgt genetranslate(table=Bacterial)

Seq(VKKMQSIVLALSLVLVAPMAAQAAEITLVPSVKLQIGDRDNRGYYWDGGHWRDHHR

HasStopCodon(ExtendedIUPACProtein() )

gtgtgt genetranslate(table=Bacterial to_stop=True)

Seq(VKKMQSIVLALSLVLVAPMAAQAAEITLVPSVKLQIGDRDNRGYYWDGGHWRDHHHR

ExtendedIUPACProtein())

Logo de

BioPython Seacutequence drsquoADN

Importation

librairie BIO

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D (Python CAD FreeCAD)

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

26

Installer agrave partir de PyPI

$ pip install mezzanine

Instantier un projet

$ mezzanine-project monproject

$ cd monproject

Instantier une Base de donneacutees

$ python managepy createdb

Lancer le serveur Web

$ python managepy runserver

Installation en mode

commande

URL du site instantieacute

Version Mobile Menu

Version Administration

Sites Web fait avec

Mezzanine

Version Normal

Les environnements de deacuteveloppement inteacutegreacutes de code Python sont nombreux des solutions proprieacutetaires agrave celles portant le

label GPL

Ils sont de trois grandes cateacutegories

Les applications bureaux (Desktop)

Les consoles de commande en ligne Les interfaces orienteacutees Web

Outils drsquoeacutelaboration de code Python (IDE)

27

Les environnements de deacuteveloppement inteacutegreacutes de code Python sont nombreux des solutions proprieacutetaires agrave celles portant le

label GPL Ils sont de trois grandes cateacutegories

Les applications bureaux (Desktop)

Les consoles de commande en ligne

Les interfaces orienteacutees Web

Outils drsquoeacutelaboration de code Python (IDE)

28

Les environnements de deacuteveloppement inteacutegreacutes de code Python sont nombreux des solutions proprieacutetaires agrave celles portant le

label GPL Ils sont de trois grandes cateacutegories

Les applications bureaux (Desktop)

Les consoles de commande en ligne

Les interfaces orienteacutees Web

Outils drsquoeacutelaboration de code Python (IDE)

29

30

Nom de Symbole Les noms de variables en Python peuvent contenir des caractegraveres alphanumeacuteriques a-z A-Z 0-

9 et certains caractegraveres speacuteciaux tel que _ Les noms de variables normales doivent commencer par une lettre

Par convention les noms de variables commencent par une lettre minuscule et les noms de classe commencent par

une lettre majuscule En outre il y a un certain nombre de mots-cleacutes Python qui ne peuvent pas ecirctre utiliseacutes comme

noms de variables Ces mots-cleacutes sont les suivants

and as assert break class continue def del elif else except exec finally for from global if import in

is lambda not or pass print raise return try while with yield

Affectation assignment de variable

x = 10

my_variable = 122

type(x) fonction TYPE retourne le type de la variable entre parenthegravese

builtinsfloat

Verification de type x = 10

veacuterifier si la variable est reacuteelle

type(x) is float

isinstance(x float)

True

z = complex(x)

print(z type(z))

(1+0j) ltclass complexlsquogt

Base de repreacutesentation des donneacutees

31

Operateurs et comparaisons Opeacuterateurs arithmeacutetiques + - (division entiegravere) puissance

30 20

10

NB operators puissance en python nrsquoest pas ^ mais

2 2

4

Les opeacuterateurs de comparaison sont gtltgt=lt===

objects identiques

x1 = x2 = [12]

x1 is x2

True

2 gt= 2 2 lt= 2

(True True)

Chaines de caractegraveres les liste et les dictionnaires s = Hello world

type(s)

builtinsstr

length of the string the number of characters

len(s)

11

replace a substring in a string with somethign else

s2 = sreplace(world test)

print(s2)

Hello test

s[0]

H

Base de repreacutesentation des donneacutees

32

Chaines de caractegraveres les liste et les dictionnaires s = Hello worldldquo

replace a substring in a string with somethign else

s2 = sreplace(world test)

Hello test

print(s2)

s[05]

Hellolsquo

s[05]

Hellolsquo

s[]

Hello worldlsquo

print(value = f 10) Formatage C des variables

value = 1000000

s2 = value1 = 2f value2 = d (31415 15)

print(s2)

value1 = 314 value2 = 1

Listes l = [1234]

print(type(l))

print(l)

ltclass listgt

[1 2 3 4]

l = [1 a 10 1-1j] peuvent ecirctre heacuteteacuterogegravene

print(l)

[1 a 10 (1-1j)]

Base de repreacutesentation des donneacutees

33

Listes start = 10

stop = 30

step = 2

range(start stop step)

range(10 30 2)

list(range(start stop step))

[10 12 14 16 18 20 22 24 26 28]

s2 = list(s)

S2

[H e l l o w o r l d]

Tri de la liste

s2sort()

print(s2)

[ H d e l l l o o r w]

l = []

lappend(A)

lappend(d)

lappend(d)

print(l)

[A d d]

Tuples Ce sont des variables comme les listes mais pas alteacuterables

point = (10 20)

print(point type(point))

(10 20) ltclass tuplegt

Base de repreacutesentation des donneacutees

34

Tuples x y = point

print(x = x)

print(y = y)

x = 10

y = 20

Dictionaries params = parameter1 10 parameter2 20 parameter3 30

print(type(params))

print(params)

ltclass dictgt

fparameter2 20 parameter3 30 parameter1 10

params[parameter1] = A

params[parameter2] = B

Ajouter une nouvelle entreacutee

params[parameter4] = D

print(paramegravetre = + str(params[parameter1]))

print(paramegravetre = + str(params[parameter2]))

print(paramegravetre = + str(params[parameter3]))

print(paramegravetre = + str(params[parameter4]))

paramegravetre = A

paramegravetre = B

paramegravetre = 30

paramegravetre = D

Base de repreacutesentation des donneacutees

35

36

Affectation amp Controcircle conditionnel de flue statement1 = False Crsquoest une affectation

statement2 = False

if statement1 Test valideacute condition (statement1) est VRAIE

print(statement1 is True)

elif statement2 Exeacutecuteacutee condition (statement2) est VRAIE

print(statement2 is True)

else Exeacutecuteacutee sinon

print(statement1 and statement2 are False)

Boucles for x in [123] [123] peut ecirctre deacutesigneacute par range(3) avec print(x+1)

print(x)

1

2

3

for word in [scientific computing with python]

print(word) condition de reacutepeacutetition deacutependante du contenu de la liste

scientific

computing

with

python

l1 = [x2 for x in range(05)] agrave remarquer la compaciteacute du Python

print(l1)

[0 1 4 9 16]

Base de repreacutesentation des donneacutees

37

Boucles var = 0

while var = 1

print jlsquoeacutecris mon programme ici

choix = raw_input(voulez vous recommencer ( on ) )

if choix == n

var = 1

else

lsquovous allez ecirctre renvoyeacute au deacutebut du programmersquo

X = y 2

while x gt 1

If y x == 0

print y lsquo est facteur de rsquo x

break

x -= 1

else

print y lsquo est premierlsquo

Lrsquoutilisation de zip et map peut srsquoaveacutereacutee encore plus efficace

l1 = [1 2 3]

l2 = [4 5 6]

for (x y) in zip(l1 l2)

print x y -- x + y

1 4 -- 5

2 5 -- 7

3 6 -- 9

Base de repreacutesentation des donneacutees

38

s=0123456789

print map(int s)

[0 1 2 3 4 5 6 7 8 9]

Utilisation et

puissance de MAP

Utilisation de ZIP

Intervales range(start stop step)

range(5 10)

5 jusqursquoagrave 10 (exclue) avec un pas de 1

range(0 10 3)

0 3 6 9

range(-10 -100 -30)

-10 -40 -70

Test conditionnel binaire x = 5

y = 10

if x gt y

print(x est grand que y)

else

print(ldquox nrsquoest pas grand que yrdquo)

Dans Python on peut compliquer les chose

x = 5

y = 10

Z = 12

if z gt x gt y

print(lsquoy est petit que x et x est petit que z)

Base de repreacutesentation des donneacutees

39

Boucle avec test conditionnel binaire break continue et else dans une boucle for

for n in range(2 10)

for x in range(2 n)

if n x == 0

print(n lsquoest eacutegal agrave x nx)

break

else

print(n lsquoest premier)

Utilisation de lrsquoinstruction continue

for num in range(2 10)

if num 2 == 0 le symbole deacutesigne lrsquoopeacuteration RESTE de la division

print(ldquoNombre paire trouveacute num)

continue

print(ldquoNombre non premier num)

Base de repreacutesentation des donneacutees

40

Deacutefinition de fonction (proceacutedure avec retour) def fib(n) Ecrire la suite de Fibonacci jusqursquoagrave n

a b = 0 1

while a lt n

print(a end= )

a b = b a+b

print()

fib(2000)

0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597

f = fib deacutesignation par reacutefeacuterence f agrave la fonction fib

f(100)

0 1 1 2 3 5 8 13 21 34 55 89

autre type de deacutefinition de fonction

def ask_ok(prompt retries=4 complaint=Oui or Non srsquoil vou plait )

while True

ok = input(prompt)

if ok in (lsquoo lsquooui lsquoOui)

return True

if ok in (lsquon no non lsquoNon)

return False

retries = retries - 1

if retries lt 0

raise OSError(lsquoUtilisateur non coopeacuteratif)

print(complaint)

Base de repreacutesentation des donneacutees

41

Lrsquoinstruction lambda def make_incrementeur(n)

return lambda x x + n

f = make_incrementeur(42)

f(0)

42

f(1)

43

un autre cas drsquoutilisation

pairs = [(1 one) (2 two) (3 three) (4 four)]

pairssort(key=lambda pair pair[1])

pairs

[(4 four) (1 one) (3 three) (2 two)]

Les annotations dans une fonction Les annotations deacutefinissent des messages de preacutesentation

def f(chiken str eggs str = eggs) -gt str remarquer que la fonction est de type STR

print(Annotations f__annotations__)

print(Arguments chiken eggs)

return chiken + and + eggs

f(spam)

Annotations chiken ltclass strgt return ltclass strgt eggs ltclass strgt

Arguments spam eggs

spam and eggslsquo

Base de repreacutesentation des donneacutees

42

Les deacutecorateurs python Notre deacutecorateur

def decorate(func)

print uJe suis dans la fonction decorate et je deacutecore s func__name__

print uExeacutecution de la fonction s func__name__

return func

Fonction cible utiliseacutee avec DECORATOR

decorate

def foobar(args)

print join(args)

Exemple drsquoappel de la fonction

foobar(A B C D)

Je suis dans la fonction decorate et je deacutecore foobar

Exeacutecution de la fonction foobar

A B C D

Il est posible drsquoattribuer plusieurs deacutecorateurs agrave une seule fonction

decorateur1

decorateur2

def ma_fonction()

instructions

Base de repreacutesentation des donneacutees

43

Manipulation des listes a = [6625 333 333 1 12345]

print(acount(333) acount(6625) acount(x))

2 1 0

ainsert(2 -1)

aappend(333)

a

[6625 333 -1 333 1 12345 333]

aindex(333)

1

aremove(333)

a

[6625 -1 333 1 12345 333]

areverse()

a

[333 12345 1 333 -1 6625]

asort()

a

[-1 1 6625 333 333 12345]

apop()

12345

a

[-1 1 6625 333 333]

Base de repreacutesentation des donneacutees

44

Puissance du langage Python Lrsquoensemble des lignes suiantes peut ecirctre compacteacute par ce qui suit

combs = []

for x in [123]

for y in [314]

if x = y

combsappend((x y))

Combs

Ou bien

[(x y) for x in [123] for y in [314] if x = y]

Donne le mecircme reacutesultat

[(1 3) (1 4) (2 3) (2 1) (2 4) (3 1) (3 4)]

Calcul de la valeur de PI arrondie

from math import pi

[str(round(pi i)) for i in range(1 6)]

[31 314 3142 31416 314159]

Geacuteneacuterateur avec utilisation de YIELD

def generateur()

yield a

yield b

yield cldquo

i=generateur()

for v in i

print v

a

b

c

Base de repreacutesentation des donneacutees

45

Les expressions reacuteguliegraveres en python Les expressions reacuteguliegravere sont utiliseacutees pour veacuterifier la conformiteacute des expressions de

chaines de caractegraveres par rapport agrave un motif Les symboles suivants sont utiliseacutes

^ $ + [ ] | ( )

Le point correspond agrave nimporte quel caractegravere

^ Indique un commencement de segment mais signifie aussi contraire de

$ Fin de segment

[xy] Une liste de segment possible Exemple [abc] eacutequivaut agrave a b ou c

(x|y) Indique un choix multiple type (ps|ump) eacutequivaut agrave ps OU UMP

d le segment est composeacute uniquement de chiffre ce qui eacutequivaut agrave [0-9]

D le segment nest pas composeacute de chiffre ce qui eacutequivaut agrave [^0-9]

s Un espace ce qui eacutequivaut agrave [ tnrfv]

S Pas despace ce qui eacutequivaut agrave [^ tnrfv]

w Preacutesence alphanumeacuterique ce qui eacutequivaut agrave [a-zA-Z0-9_]

W Pas de preacutesence alphanumeacuterique [^a-zA-Z0-9_]

Est un caractegravere deacutechappement T2 Le T soit reacutepeacuteteacute 2 fois

TA19 La seacutequence TA doit ecirctre preacutesente de 1 agrave 9 fois

TAM10 La seacutequence TAM nrsquoexiste pas ou reacutepeacuteteacutee 10 fois

LI1 La seacutequence LI doit ecirctre reacutepeacuteteacutee au moins une fois

Base de repreacutesentation des donneacutees

46

Les expressions reacuteguliegraveres en python Utilisation des expressions reacuteguliegravere

import re

print rematch(rGR()S GRIS)

lt_sreSRE_Match object at 0x02019DE0gt

Une utilisation freacutequente consiste en la validation des valeurs des emails saisis

Utilisation des expressions reacuteguliegravere

import re

mails = [lsquomtamaligmailcomrsquorsquoutmbuniv-bechardzrsquo lsquo8freefrrsquo lsquouniv-bechardzrsquo lsquotamalicdtarsquo]

regex = recompile(rrsquo^[a-z0-9_-]+[a-z0-9_-]+[(com|fr|dz)]+rsquo

for mail in mails

if regexmatch(mail) is not None

print Ce mail s est valide mail

else

print Erreur ce mail s est non valide mail

Ce mail mtamaligmailcom est valide

Ce mail utmbuniv-bechardz est valide

Ce mail 8freefr est valide

Erreur ce mail univ-bechardz est non valide

Erreur ce mail tamalicdta est non valide

Base de repreacutesentation des donneacutees

47

Les fichiers Creacuteer lire et eacutecrire dans un fichier en python Utilisation des expressions reacuteguliegravere

fichier = open(donneestxt r)

print fichier

ltopen file lsquodonneestxt mode r at 0x7ff6cf3fe4b0gt

Le descripteur permet de renseigner la machine sur la maniegravere avec laquelle le fichier est utiliseacute

r pour ouverture en mode READ

w pour ouverture en mode WRITE chaque fois le contenu du fichier est eacutecraseacute sinon python le creacutee

a pour ajout lsquoAPPENDrsquo Si le fichier nexiste pas python le creacutee

b Ouverture en mode Binaire

t Ouverture en mode Texte

x creacutee un nouveau fichier et louvrir pour eacutecriture

proceacutedure geacuteneacuterale pour lrsquoutilisation drsquoun fichier

fichier = open(lsquodonneestxtrsquo r)

print fichierread()

fichierclose()

Lrsquoinstruction WITH peut ecirctre utiliseacutee sans besoin de la fonction CLOSE

with open(datatxt r) as fichier

print fichierread()

Base de repreacutesentation des donneacutees

48

49

Le langage Python est un langage script interpreacuteteacute Le programme portant lrsquoune des extension py pyw ou pwc est

structureacute selon le canevas suivant

Les codifications

usrbinpython27

--codingencodage -

Les imports des librairies

Les instructions

Le langage Python passe pour ecirctre exeacutecuteacute sur deux eacutetapes la premiegravere UNE PRECOMPILATION geacuteneacuteration du code

machine et finalement un eacutecriture en code machine exeacutecutable (selon la machine)

Lrsquoenvironnement drsquoexeacutecution des scripts eacutecrits en Python regroupe les avantages des TRADUCTEURS (travaille en ligne par

ligne) et les COMPILATEURS (puissance de la structure algorithmique)

La bibliothegraveque cx_Freeze sert agrave transformer les fichiers scripts Pyhon py en exeacutecutable exe

Structures algorithmique du python

50

51

Matrices amp Systegravemes lineacuteaires

52

53

54

55

56

57

Le calcul scientifique

Reacutefeacuterences L-V Bertallanfy lsquoGeneral System Theoryrsquo Edition MASSON 1972

58

Page 19: Chap XIII : calcul scientifique avec python

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse des donneacutees (Panda QtGraph)

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation 19

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Domaines drsquoutilisation

matplotlib inline

from pylab import plot show title xlabel ylabel subplot savefig

from scipy import fft arange ifft

from numpy import sin linspace pi

from scipyiowavfile import readwrite

def plotSpectru(yFs)

n = len(y) lungime semnal

k = arange(n)

T = nFs

frq = kT two sides frequency range

frq = frq[range(n2)] one side frequency range

Y = fft(y)n fft computing and normalization

Y = Y[range(n2)]

plot(frqabs(Y)r) plotting the spectrum

xlabel(Freq (Hz))

ylabel(|Y(freq)|)

Fs = 44100 sampling rate

ratedata=read(fatihawav)

y=data

lungime=len(y)

timp=len(y)44100

t=linspace(0timplen(y))

subplot(211)

plot(ty)

xlabel(Time)

ylabel(Amplitude)

subplot(212)

plotSpectru(yFs)

show()

20

Lecture de la

sourah

Code du traitement

audio

Spectre Amp|Freacuteq

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele (MPI Python)

Theacuteorie des graphes (Networkx)

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

21 Exemple

de graphe

Fenecirctre Aperccedilu

du bloc-note

Importation de la

librairie NetworkX

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

import RPiGPIO as GPIO

GPIOsetmode(GPIOBCM) set board mode to Broadcom

GPIOsetup(17 GPIOOUT) set up pin 17

GPIOsetup(18 GPIOOUT) set up pin 18

GPIOoutput(17 1) turn on pin 17

GPIOoutput(18 1) turn on pin 18

Importation

librairie GPIO

Module

Galileo Gen 2

Module

RaspBerry PI 3

22

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D (Python CAD FreeCAD)

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

23

from OCCSTEPControl import STEPControl_Reader

from OCCIFSelect import IFSelect_RetDone IFSelect_ItemsByEntity

from OCCDisplaySimpleGui import init_display

step_reader = STEPControl_Reader()

status = step_readerReadFile(modelswind_turbinestp)

if status == IFSelect_RetDone check status

failsonly = False

step_readerPrintCheckLoad(failsonly IFSelect_ItemsByEntity)

step_readerPrintCheckTransfer(failsonly IFSelect_ItemsByEntity)

ok = step_readerTransferRoot(1)

_nbs = step_readerNbShapes()

aResShape = step_readerShape(1)

else

print(Error cant read file)

sysexit(0)

display start_display add_menu add_function_to_menu = init_display()

displayDisplayShape(aResShape update=True)

start_display()

Importation

librairie OCC

Maillage Dauphin

Rendu du macirct drsquoun

aeacuterogeacuteneacuterateur

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D (Python CAD FreeCAD)

Bioinformatique et manipulation du geacutenome

POO avec Python (Programmation

Orienteacutee Objet) Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

class Rocket()

Rocket simule une roquette pour un jeu

ou une simulation de physique

def __init__(self)

Each rocket has an (xy) position

selfx = 0

selfy = 0

def move_up(self)

Increacutementation de la position y de la roquette

selfy += 1

Deacutefinir une ensemble de 5 roquettes les stocker dans une liste

my_rockets = []

for x in range(05)

new_rocket = Rocket()

my_rocketsappend(new_rocket)

A remarquer que chaque roquette est un objet agrave part entiegravere

for rocket in my_rockets

print(rocket)

Deacutefinition drsquoune

nouvelle Classe

Instantiation

Meacutethode Constructeur

__init__

24

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D (Python CAD FreeCAD)

Bioinformatique et manipulation

du geacutenome Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

25

from Bio import SeqIO

for seq_record in SeqIOparse(ls_orchidgbk genbank)

print(seq_recordid)

print(repr(seq_recordseq))

print(len(seq_record))

Z785331

Seq(CGTAACAAGGTTTCCGTAGGTGAACCTGCGGAAGGATCATTGATGAGACCGTGGCGC

IUPACAmbiguousDNA())

740

Z784391

Seq(CATTGTTGAGATCACATAATAATTGATCGAGTTAATCTGGAGGATCTGTTTACTGCC

IUPACAmbiguousDNA())

592

Sinon dans une Terminal Python

gtgtgt from BioSeq import Seq

gtgtgt from BioAlphabet import generic_dna

gtgtgt gene = Seq(GTGAAAAAGATGCAATCTATCGTACTCGCACTTTCCCTGGTTCTGGTCGCTCCCATGGCA +

GCACAGGCTGCGGAAATTACGTTAGTCCCGTCAGTAAAATTACAGATAGGCGATCGTGAT +

AATCGTGGCTATTACTGGGATGGAGGTCACTGGCGCGACCACGGCTGGTGGAAACAACAT +

TATGAATGGCGAGGCAATCGCTGGCACCTACACGGACCGCCGCCACCGCCGCGCCACCAT +

AAGAAAGCTCCTCATGATCATCACGGCGGTCATGGTCCAGGCAAACATCACCGCTAA

generic_dna)

gtgtgt genetranslate(table=Bacterial)

Seq(VKKMQSIVLALSLVLVAPMAAQAAEITLVPSVKLQIGDRDNRGYYWDGGHWRDHHR

HasStopCodon(ExtendedIUPACProtein() )

gtgtgt genetranslate(table=Bacterial to_stop=True)

Seq(VKKMQSIVLALSLVLVAPMAAQAAEITLVPSVKLQIGDRDNRGYYWDGGHWRDHHHR

ExtendedIUPACProtein())

Logo de

BioPython Seacutequence drsquoADN

Importation

librairie BIO

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D (Python CAD FreeCAD)

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

26

Installer agrave partir de PyPI

$ pip install mezzanine

Instantier un projet

$ mezzanine-project monproject

$ cd monproject

Instantier une Base de donneacutees

$ python managepy createdb

Lancer le serveur Web

$ python managepy runserver

Installation en mode

commande

URL du site instantieacute

Version Mobile Menu

Version Administration

Sites Web fait avec

Mezzanine

Version Normal

Les environnements de deacuteveloppement inteacutegreacutes de code Python sont nombreux des solutions proprieacutetaires agrave celles portant le

label GPL

Ils sont de trois grandes cateacutegories

Les applications bureaux (Desktop)

Les consoles de commande en ligne Les interfaces orienteacutees Web

Outils drsquoeacutelaboration de code Python (IDE)

27

Les environnements de deacuteveloppement inteacutegreacutes de code Python sont nombreux des solutions proprieacutetaires agrave celles portant le

label GPL Ils sont de trois grandes cateacutegories

Les applications bureaux (Desktop)

Les consoles de commande en ligne

Les interfaces orienteacutees Web

Outils drsquoeacutelaboration de code Python (IDE)

28

Les environnements de deacuteveloppement inteacutegreacutes de code Python sont nombreux des solutions proprieacutetaires agrave celles portant le

label GPL Ils sont de trois grandes cateacutegories

Les applications bureaux (Desktop)

Les consoles de commande en ligne

Les interfaces orienteacutees Web

Outils drsquoeacutelaboration de code Python (IDE)

29

30

Nom de Symbole Les noms de variables en Python peuvent contenir des caractegraveres alphanumeacuteriques a-z A-Z 0-

9 et certains caractegraveres speacuteciaux tel que _ Les noms de variables normales doivent commencer par une lettre

Par convention les noms de variables commencent par une lettre minuscule et les noms de classe commencent par

une lettre majuscule En outre il y a un certain nombre de mots-cleacutes Python qui ne peuvent pas ecirctre utiliseacutes comme

noms de variables Ces mots-cleacutes sont les suivants

and as assert break class continue def del elif else except exec finally for from global if import in

is lambda not or pass print raise return try while with yield

Affectation assignment de variable

x = 10

my_variable = 122

type(x) fonction TYPE retourne le type de la variable entre parenthegravese

builtinsfloat

Verification de type x = 10

veacuterifier si la variable est reacuteelle

type(x) is float

isinstance(x float)

True

z = complex(x)

print(z type(z))

(1+0j) ltclass complexlsquogt

Base de repreacutesentation des donneacutees

31

Operateurs et comparaisons Opeacuterateurs arithmeacutetiques + - (division entiegravere) puissance

30 20

10

NB operators puissance en python nrsquoest pas ^ mais

2 2

4

Les opeacuterateurs de comparaison sont gtltgt=lt===

objects identiques

x1 = x2 = [12]

x1 is x2

True

2 gt= 2 2 lt= 2

(True True)

Chaines de caractegraveres les liste et les dictionnaires s = Hello world

type(s)

builtinsstr

length of the string the number of characters

len(s)

11

replace a substring in a string with somethign else

s2 = sreplace(world test)

print(s2)

Hello test

s[0]

H

Base de repreacutesentation des donneacutees

32

Chaines de caractegraveres les liste et les dictionnaires s = Hello worldldquo

replace a substring in a string with somethign else

s2 = sreplace(world test)

Hello test

print(s2)

s[05]

Hellolsquo

s[05]

Hellolsquo

s[]

Hello worldlsquo

print(value = f 10) Formatage C des variables

value = 1000000

s2 = value1 = 2f value2 = d (31415 15)

print(s2)

value1 = 314 value2 = 1

Listes l = [1234]

print(type(l))

print(l)

ltclass listgt

[1 2 3 4]

l = [1 a 10 1-1j] peuvent ecirctre heacuteteacuterogegravene

print(l)

[1 a 10 (1-1j)]

Base de repreacutesentation des donneacutees

33

Listes start = 10

stop = 30

step = 2

range(start stop step)

range(10 30 2)

list(range(start stop step))

[10 12 14 16 18 20 22 24 26 28]

s2 = list(s)

S2

[H e l l o w o r l d]

Tri de la liste

s2sort()

print(s2)

[ H d e l l l o o r w]

l = []

lappend(A)

lappend(d)

lappend(d)

print(l)

[A d d]

Tuples Ce sont des variables comme les listes mais pas alteacuterables

point = (10 20)

print(point type(point))

(10 20) ltclass tuplegt

Base de repreacutesentation des donneacutees

34

Tuples x y = point

print(x = x)

print(y = y)

x = 10

y = 20

Dictionaries params = parameter1 10 parameter2 20 parameter3 30

print(type(params))

print(params)

ltclass dictgt

fparameter2 20 parameter3 30 parameter1 10

params[parameter1] = A

params[parameter2] = B

Ajouter une nouvelle entreacutee

params[parameter4] = D

print(paramegravetre = + str(params[parameter1]))

print(paramegravetre = + str(params[parameter2]))

print(paramegravetre = + str(params[parameter3]))

print(paramegravetre = + str(params[parameter4]))

paramegravetre = A

paramegravetre = B

paramegravetre = 30

paramegravetre = D

Base de repreacutesentation des donneacutees

35

36

Affectation amp Controcircle conditionnel de flue statement1 = False Crsquoest une affectation

statement2 = False

if statement1 Test valideacute condition (statement1) est VRAIE

print(statement1 is True)

elif statement2 Exeacutecuteacutee condition (statement2) est VRAIE

print(statement2 is True)

else Exeacutecuteacutee sinon

print(statement1 and statement2 are False)

Boucles for x in [123] [123] peut ecirctre deacutesigneacute par range(3) avec print(x+1)

print(x)

1

2

3

for word in [scientific computing with python]

print(word) condition de reacutepeacutetition deacutependante du contenu de la liste

scientific

computing

with

python

l1 = [x2 for x in range(05)] agrave remarquer la compaciteacute du Python

print(l1)

[0 1 4 9 16]

Base de repreacutesentation des donneacutees

37

Boucles var = 0

while var = 1

print jlsquoeacutecris mon programme ici

choix = raw_input(voulez vous recommencer ( on ) )

if choix == n

var = 1

else

lsquovous allez ecirctre renvoyeacute au deacutebut du programmersquo

X = y 2

while x gt 1

If y x == 0

print y lsquo est facteur de rsquo x

break

x -= 1

else

print y lsquo est premierlsquo

Lrsquoutilisation de zip et map peut srsquoaveacutereacutee encore plus efficace

l1 = [1 2 3]

l2 = [4 5 6]

for (x y) in zip(l1 l2)

print x y -- x + y

1 4 -- 5

2 5 -- 7

3 6 -- 9

Base de repreacutesentation des donneacutees

38

s=0123456789

print map(int s)

[0 1 2 3 4 5 6 7 8 9]

Utilisation et

puissance de MAP

Utilisation de ZIP

Intervales range(start stop step)

range(5 10)

5 jusqursquoagrave 10 (exclue) avec un pas de 1

range(0 10 3)

0 3 6 9

range(-10 -100 -30)

-10 -40 -70

Test conditionnel binaire x = 5

y = 10

if x gt y

print(x est grand que y)

else

print(ldquox nrsquoest pas grand que yrdquo)

Dans Python on peut compliquer les chose

x = 5

y = 10

Z = 12

if z gt x gt y

print(lsquoy est petit que x et x est petit que z)

Base de repreacutesentation des donneacutees

39

Boucle avec test conditionnel binaire break continue et else dans une boucle for

for n in range(2 10)

for x in range(2 n)

if n x == 0

print(n lsquoest eacutegal agrave x nx)

break

else

print(n lsquoest premier)

Utilisation de lrsquoinstruction continue

for num in range(2 10)

if num 2 == 0 le symbole deacutesigne lrsquoopeacuteration RESTE de la division

print(ldquoNombre paire trouveacute num)

continue

print(ldquoNombre non premier num)

Base de repreacutesentation des donneacutees

40

Deacutefinition de fonction (proceacutedure avec retour) def fib(n) Ecrire la suite de Fibonacci jusqursquoagrave n

a b = 0 1

while a lt n

print(a end= )

a b = b a+b

print()

fib(2000)

0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597

f = fib deacutesignation par reacutefeacuterence f agrave la fonction fib

f(100)

0 1 1 2 3 5 8 13 21 34 55 89

autre type de deacutefinition de fonction

def ask_ok(prompt retries=4 complaint=Oui or Non srsquoil vou plait )

while True

ok = input(prompt)

if ok in (lsquoo lsquooui lsquoOui)

return True

if ok in (lsquon no non lsquoNon)

return False

retries = retries - 1

if retries lt 0

raise OSError(lsquoUtilisateur non coopeacuteratif)

print(complaint)

Base de repreacutesentation des donneacutees

41

Lrsquoinstruction lambda def make_incrementeur(n)

return lambda x x + n

f = make_incrementeur(42)

f(0)

42

f(1)

43

un autre cas drsquoutilisation

pairs = [(1 one) (2 two) (3 three) (4 four)]

pairssort(key=lambda pair pair[1])

pairs

[(4 four) (1 one) (3 three) (2 two)]

Les annotations dans une fonction Les annotations deacutefinissent des messages de preacutesentation

def f(chiken str eggs str = eggs) -gt str remarquer que la fonction est de type STR

print(Annotations f__annotations__)

print(Arguments chiken eggs)

return chiken + and + eggs

f(spam)

Annotations chiken ltclass strgt return ltclass strgt eggs ltclass strgt

Arguments spam eggs

spam and eggslsquo

Base de repreacutesentation des donneacutees

42

Les deacutecorateurs python Notre deacutecorateur

def decorate(func)

print uJe suis dans la fonction decorate et je deacutecore s func__name__

print uExeacutecution de la fonction s func__name__

return func

Fonction cible utiliseacutee avec DECORATOR

decorate

def foobar(args)

print join(args)

Exemple drsquoappel de la fonction

foobar(A B C D)

Je suis dans la fonction decorate et je deacutecore foobar

Exeacutecution de la fonction foobar

A B C D

Il est posible drsquoattribuer plusieurs deacutecorateurs agrave une seule fonction

decorateur1

decorateur2

def ma_fonction()

instructions

Base de repreacutesentation des donneacutees

43

Manipulation des listes a = [6625 333 333 1 12345]

print(acount(333) acount(6625) acount(x))

2 1 0

ainsert(2 -1)

aappend(333)

a

[6625 333 -1 333 1 12345 333]

aindex(333)

1

aremove(333)

a

[6625 -1 333 1 12345 333]

areverse()

a

[333 12345 1 333 -1 6625]

asort()

a

[-1 1 6625 333 333 12345]

apop()

12345

a

[-1 1 6625 333 333]

Base de repreacutesentation des donneacutees

44

Puissance du langage Python Lrsquoensemble des lignes suiantes peut ecirctre compacteacute par ce qui suit

combs = []

for x in [123]

for y in [314]

if x = y

combsappend((x y))

Combs

Ou bien

[(x y) for x in [123] for y in [314] if x = y]

Donne le mecircme reacutesultat

[(1 3) (1 4) (2 3) (2 1) (2 4) (3 1) (3 4)]

Calcul de la valeur de PI arrondie

from math import pi

[str(round(pi i)) for i in range(1 6)]

[31 314 3142 31416 314159]

Geacuteneacuterateur avec utilisation de YIELD

def generateur()

yield a

yield b

yield cldquo

i=generateur()

for v in i

print v

a

b

c

Base de repreacutesentation des donneacutees

45

Les expressions reacuteguliegraveres en python Les expressions reacuteguliegravere sont utiliseacutees pour veacuterifier la conformiteacute des expressions de

chaines de caractegraveres par rapport agrave un motif Les symboles suivants sont utiliseacutes

^ $ + [ ] | ( )

Le point correspond agrave nimporte quel caractegravere

^ Indique un commencement de segment mais signifie aussi contraire de

$ Fin de segment

[xy] Une liste de segment possible Exemple [abc] eacutequivaut agrave a b ou c

(x|y) Indique un choix multiple type (ps|ump) eacutequivaut agrave ps OU UMP

d le segment est composeacute uniquement de chiffre ce qui eacutequivaut agrave [0-9]

D le segment nest pas composeacute de chiffre ce qui eacutequivaut agrave [^0-9]

s Un espace ce qui eacutequivaut agrave [ tnrfv]

S Pas despace ce qui eacutequivaut agrave [^ tnrfv]

w Preacutesence alphanumeacuterique ce qui eacutequivaut agrave [a-zA-Z0-9_]

W Pas de preacutesence alphanumeacuterique [^a-zA-Z0-9_]

Est un caractegravere deacutechappement T2 Le T soit reacutepeacuteteacute 2 fois

TA19 La seacutequence TA doit ecirctre preacutesente de 1 agrave 9 fois

TAM10 La seacutequence TAM nrsquoexiste pas ou reacutepeacuteteacutee 10 fois

LI1 La seacutequence LI doit ecirctre reacutepeacuteteacutee au moins une fois

Base de repreacutesentation des donneacutees

46

Les expressions reacuteguliegraveres en python Utilisation des expressions reacuteguliegravere

import re

print rematch(rGR()S GRIS)

lt_sreSRE_Match object at 0x02019DE0gt

Une utilisation freacutequente consiste en la validation des valeurs des emails saisis

Utilisation des expressions reacuteguliegravere

import re

mails = [lsquomtamaligmailcomrsquorsquoutmbuniv-bechardzrsquo lsquo8freefrrsquo lsquouniv-bechardzrsquo lsquotamalicdtarsquo]

regex = recompile(rrsquo^[a-z0-9_-]+[a-z0-9_-]+[(com|fr|dz)]+rsquo

for mail in mails

if regexmatch(mail) is not None

print Ce mail s est valide mail

else

print Erreur ce mail s est non valide mail

Ce mail mtamaligmailcom est valide

Ce mail utmbuniv-bechardz est valide

Ce mail 8freefr est valide

Erreur ce mail univ-bechardz est non valide

Erreur ce mail tamalicdta est non valide

Base de repreacutesentation des donneacutees

47

Les fichiers Creacuteer lire et eacutecrire dans un fichier en python Utilisation des expressions reacuteguliegravere

fichier = open(donneestxt r)

print fichier

ltopen file lsquodonneestxt mode r at 0x7ff6cf3fe4b0gt

Le descripteur permet de renseigner la machine sur la maniegravere avec laquelle le fichier est utiliseacute

r pour ouverture en mode READ

w pour ouverture en mode WRITE chaque fois le contenu du fichier est eacutecraseacute sinon python le creacutee

a pour ajout lsquoAPPENDrsquo Si le fichier nexiste pas python le creacutee

b Ouverture en mode Binaire

t Ouverture en mode Texte

x creacutee un nouveau fichier et louvrir pour eacutecriture

proceacutedure geacuteneacuterale pour lrsquoutilisation drsquoun fichier

fichier = open(lsquodonneestxtrsquo r)

print fichierread()

fichierclose()

Lrsquoinstruction WITH peut ecirctre utiliseacutee sans besoin de la fonction CLOSE

with open(datatxt r) as fichier

print fichierread()

Base de repreacutesentation des donneacutees

48

49

Le langage Python est un langage script interpreacuteteacute Le programme portant lrsquoune des extension py pyw ou pwc est

structureacute selon le canevas suivant

Les codifications

usrbinpython27

--codingencodage -

Les imports des librairies

Les instructions

Le langage Python passe pour ecirctre exeacutecuteacute sur deux eacutetapes la premiegravere UNE PRECOMPILATION geacuteneacuteration du code

machine et finalement un eacutecriture en code machine exeacutecutable (selon la machine)

Lrsquoenvironnement drsquoexeacutecution des scripts eacutecrits en Python regroupe les avantages des TRADUCTEURS (travaille en ligne par

ligne) et les COMPILATEURS (puissance de la structure algorithmique)

La bibliothegraveque cx_Freeze sert agrave transformer les fichiers scripts Pyhon py en exeacutecutable exe

Structures algorithmique du python

50

51

Matrices amp Systegravemes lineacuteaires

52

53

54

55

56

57

Le calcul scientifique

Reacutefeacuterences L-V Bertallanfy lsquoGeneral System Theoryrsquo Edition MASSON 1972

58

Page 20: Chap XIII : calcul scientifique avec python

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Domaines drsquoutilisation

matplotlib inline

from pylab import plot show title xlabel ylabel subplot savefig

from scipy import fft arange ifft

from numpy import sin linspace pi

from scipyiowavfile import readwrite

def plotSpectru(yFs)

n = len(y) lungime semnal

k = arange(n)

T = nFs

frq = kT two sides frequency range

frq = frq[range(n2)] one side frequency range

Y = fft(y)n fft computing and normalization

Y = Y[range(n2)]

plot(frqabs(Y)r) plotting the spectrum

xlabel(Freq (Hz))

ylabel(|Y(freq)|)

Fs = 44100 sampling rate

ratedata=read(fatihawav)

y=data

lungime=len(y)

timp=len(y)44100

t=linspace(0timplen(y))

subplot(211)

plot(ty)

xlabel(Time)

ylabel(Amplitude)

subplot(212)

plotSpectru(yFs)

show()

20

Lecture de la

sourah

Code du traitement

audio

Spectre Amp|Freacuteq

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele (MPI Python)

Theacuteorie des graphes (Networkx)

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

21 Exemple

de graphe

Fenecirctre Aperccedilu

du bloc-note

Importation de la

librairie NetworkX

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

import RPiGPIO as GPIO

GPIOsetmode(GPIOBCM) set board mode to Broadcom

GPIOsetup(17 GPIOOUT) set up pin 17

GPIOsetup(18 GPIOOUT) set up pin 18

GPIOoutput(17 1) turn on pin 17

GPIOoutput(18 1) turn on pin 18

Importation

librairie GPIO

Module

Galileo Gen 2

Module

RaspBerry PI 3

22

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D (Python CAD FreeCAD)

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

23

from OCCSTEPControl import STEPControl_Reader

from OCCIFSelect import IFSelect_RetDone IFSelect_ItemsByEntity

from OCCDisplaySimpleGui import init_display

step_reader = STEPControl_Reader()

status = step_readerReadFile(modelswind_turbinestp)

if status == IFSelect_RetDone check status

failsonly = False

step_readerPrintCheckLoad(failsonly IFSelect_ItemsByEntity)

step_readerPrintCheckTransfer(failsonly IFSelect_ItemsByEntity)

ok = step_readerTransferRoot(1)

_nbs = step_readerNbShapes()

aResShape = step_readerShape(1)

else

print(Error cant read file)

sysexit(0)

display start_display add_menu add_function_to_menu = init_display()

displayDisplayShape(aResShape update=True)

start_display()

Importation

librairie OCC

Maillage Dauphin

Rendu du macirct drsquoun

aeacuterogeacuteneacuterateur

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D (Python CAD FreeCAD)

Bioinformatique et manipulation du geacutenome

POO avec Python (Programmation

Orienteacutee Objet) Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

class Rocket()

Rocket simule une roquette pour un jeu

ou une simulation de physique

def __init__(self)

Each rocket has an (xy) position

selfx = 0

selfy = 0

def move_up(self)

Increacutementation de la position y de la roquette

selfy += 1

Deacutefinir une ensemble de 5 roquettes les stocker dans une liste

my_rockets = []

for x in range(05)

new_rocket = Rocket()

my_rocketsappend(new_rocket)

A remarquer que chaque roquette est un objet agrave part entiegravere

for rocket in my_rockets

print(rocket)

Deacutefinition drsquoune

nouvelle Classe

Instantiation

Meacutethode Constructeur

__init__

24

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D (Python CAD FreeCAD)

Bioinformatique et manipulation

du geacutenome Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

25

from Bio import SeqIO

for seq_record in SeqIOparse(ls_orchidgbk genbank)

print(seq_recordid)

print(repr(seq_recordseq))

print(len(seq_record))

Z785331

Seq(CGTAACAAGGTTTCCGTAGGTGAACCTGCGGAAGGATCATTGATGAGACCGTGGCGC

IUPACAmbiguousDNA())

740

Z784391

Seq(CATTGTTGAGATCACATAATAATTGATCGAGTTAATCTGGAGGATCTGTTTACTGCC

IUPACAmbiguousDNA())

592

Sinon dans une Terminal Python

gtgtgt from BioSeq import Seq

gtgtgt from BioAlphabet import generic_dna

gtgtgt gene = Seq(GTGAAAAAGATGCAATCTATCGTACTCGCACTTTCCCTGGTTCTGGTCGCTCCCATGGCA +

GCACAGGCTGCGGAAATTACGTTAGTCCCGTCAGTAAAATTACAGATAGGCGATCGTGAT +

AATCGTGGCTATTACTGGGATGGAGGTCACTGGCGCGACCACGGCTGGTGGAAACAACAT +

TATGAATGGCGAGGCAATCGCTGGCACCTACACGGACCGCCGCCACCGCCGCGCCACCAT +

AAGAAAGCTCCTCATGATCATCACGGCGGTCATGGTCCAGGCAAACATCACCGCTAA

generic_dna)

gtgtgt genetranslate(table=Bacterial)

Seq(VKKMQSIVLALSLVLVAPMAAQAAEITLVPSVKLQIGDRDNRGYYWDGGHWRDHHR

HasStopCodon(ExtendedIUPACProtein() )

gtgtgt genetranslate(table=Bacterial to_stop=True)

Seq(VKKMQSIVLALSLVLVAPMAAQAAEITLVPSVKLQIGDRDNRGYYWDGGHWRDHHHR

ExtendedIUPACProtein())

Logo de

BioPython Seacutequence drsquoADN

Importation

librairie BIO

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D (Python CAD FreeCAD)

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

26

Installer agrave partir de PyPI

$ pip install mezzanine

Instantier un projet

$ mezzanine-project monproject

$ cd monproject

Instantier une Base de donneacutees

$ python managepy createdb

Lancer le serveur Web

$ python managepy runserver

Installation en mode

commande

URL du site instantieacute

Version Mobile Menu

Version Administration

Sites Web fait avec

Mezzanine

Version Normal

Les environnements de deacuteveloppement inteacutegreacutes de code Python sont nombreux des solutions proprieacutetaires agrave celles portant le

label GPL

Ils sont de trois grandes cateacutegories

Les applications bureaux (Desktop)

Les consoles de commande en ligne Les interfaces orienteacutees Web

Outils drsquoeacutelaboration de code Python (IDE)

27

Les environnements de deacuteveloppement inteacutegreacutes de code Python sont nombreux des solutions proprieacutetaires agrave celles portant le

label GPL Ils sont de trois grandes cateacutegories

Les applications bureaux (Desktop)

Les consoles de commande en ligne

Les interfaces orienteacutees Web

Outils drsquoeacutelaboration de code Python (IDE)

28

Les environnements de deacuteveloppement inteacutegreacutes de code Python sont nombreux des solutions proprieacutetaires agrave celles portant le

label GPL Ils sont de trois grandes cateacutegories

Les applications bureaux (Desktop)

Les consoles de commande en ligne

Les interfaces orienteacutees Web

Outils drsquoeacutelaboration de code Python (IDE)

29

30

Nom de Symbole Les noms de variables en Python peuvent contenir des caractegraveres alphanumeacuteriques a-z A-Z 0-

9 et certains caractegraveres speacuteciaux tel que _ Les noms de variables normales doivent commencer par une lettre

Par convention les noms de variables commencent par une lettre minuscule et les noms de classe commencent par

une lettre majuscule En outre il y a un certain nombre de mots-cleacutes Python qui ne peuvent pas ecirctre utiliseacutes comme

noms de variables Ces mots-cleacutes sont les suivants

and as assert break class continue def del elif else except exec finally for from global if import in

is lambda not or pass print raise return try while with yield

Affectation assignment de variable

x = 10

my_variable = 122

type(x) fonction TYPE retourne le type de la variable entre parenthegravese

builtinsfloat

Verification de type x = 10

veacuterifier si la variable est reacuteelle

type(x) is float

isinstance(x float)

True

z = complex(x)

print(z type(z))

(1+0j) ltclass complexlsquogt

Base de repreacutesentation des donneacutees

31

Operateurs et comparaisons Opeacuterateurs arithmeacutetiques + - (division entiegravere) puissance

30 20

10

NB operators puissance en python nrsquoest pas ^ mais

2 2

4

Les opeacuterateurs de comparaison sont gtltgt=lt===

objects identiques

x1 = x2 = [12]

x1 is x2

True

2 gt= 2 2 lt= 2

(True True)

Chaines de caractegraveres les liste et les dictionnaires s = Hello world

type(s)

builtinsstr

length of the string the number of characters

len(s)

11

replace a substring in a string with somethign else

s2 = sreplace(world test)

print(s2)

Hello test

s[0]

H

Base de repreacutesentation des donneacutees

32

Chaines de caractegraveres les liste et les dictionnaires s = Hello worldldquo

replace a substring in a string with somethign else

s2 = sreplace(world test)

Hello test

print(s2)

s[05]

Hellolsquo

s[05]

Hellolsquo

s[]

Hello worldlsquo

print(value = f 10) Formatage C des variables

value = 1000000

s2 = value1 = 2f value2 = d (31415 15)

print(s2)

value1 = 314 value2 = 1

Listes l = [1234]

print(type(l))

print(l)

ltclass listgt

[1 2 3 4]

l = [1 a 10 1-1j] peuvent ecirctre heacuteteacuterogegravene

print(l)

[1 a 10 (1-1j)]

Base de repreacutesentation des donneacutees

33

Listes start = 10

stop = 30

step = 2

range(start stop step)

range(10 30 2)

list(range(start stop step))

[10 12 14 16 18 20 22 24 26 28]

s2 = list(s)

S2

[H e l l o w o r l d]

Tri de la liste

s2sort()

print(s2)

[ H d e l l l o o r w]

l = []

lappend(A)

lappend(d)

lappend(d)

print(l)

[A d d]

Tuples Ce sont des variables comme les listes mais pas alteacuterables

point = (10 20)

print(point type(point))

(10 20) ltclass tuplegt

Base de repreacutesentation des donneacutees

34

Tuples x y = point

print(x = x)

print(y = y)

x = 10

y = 20

Dictionaries params = parameter1 10 parameter2 20 parameter3 30

print(type(params))

print(params)

ltclass dictgt

fparameter2 20 parameter3 30 parameter1 10

params[parameter1] = A

params[parameter2] = B

Ajouter une nouvelle entreacutee

params[parameter4] = D

print(paramegravetre = + str(params[parameter1]))

print(paramegravetre = + str(params[parameter2]))

print(paramegravetre = + str(params[parameter3]))

print(paramegravetre = + str(params[parameter4]))

paramegravetre = A

paramegravetre = B

paramegravetre = 30

paramegravetre = D

Base de repreacutesentation des donneacutees

35

36

Affectation amp Controcircle conditionnel de flue statement1 = False Crsquoest une affectation

statement2 = False

if statement1 Test valideacute condition (statement1) est VRAIE

print(statement1 is True)

elif statement2 Exeacutecuteacutee condition (statement2) est VRAIE

print(statement2 is True)

else Exeacutecuteacutee sinon

print(statement1 and statement2 are False)

Boucles for x in [123] [123] peut ecirctre deacutesigneacute par range(3) avec print(x+1)

print(x)

1

2

3

for word in [scientific computing with python]

print(word) condition de reacutepeacutetition deacutependante du contenu de la liste

scientific

computing

with

python

l1 = [x2 for x in range(05)] agrave remarquer la compaciteacute du Python

print(l1)

[0 1 4 9 16]

Base de repreacutesentation des donneacutees

37

Boucles var = 0

while var = 1

print jlsquoeacutecris mon programme ici

choix = raw_input(voulez vous recommencer ( on ) )

if choix == n

var = 1

else

lsquovous allez ecirctre renvoyeacute au deacutebut du programmersquo

X = y 2

while x gt 1

If y x == 0

print y lsquo est facteur de rsquo x

break

x -= 1

else

print y lsquo est premierlsquo

Lrsquoutilisation de zip et map peut srsquoaveacutereacutee encore plus efficace

l1 = [1 2 3]

l2 = [4 5 6]

for (x y) in zip(l1 l2)

print x y -- x + y

1 4 -- 5

2 5 -- 7

3 6 -- 9

Base de repreacutesentation des donneacutees

38

s=0123456789

print map(int s)

[0 1 2 3 4 5 6 7 8 9]

Utilisation et

puissance de MAP

Utilisation de ZIP

Intervales range(start stop step)

range(5 10)

5 jusqursquoagrave 10 (exclue) avec un pas de 1

range(0 10 3)

0 3 6 9

range(-10 -100 -30)

-10 -40 -70

Test conditionnel binaire x = 5

y = 10

if x gt y

print(x est grand que y)

else

print(ldquox nrsquoest pas grand que yrdquo)

Dans Python on peut compliquer les chose

x = 5

y = 10

Z = 12

if z gt x gt y

print(lsquoy est petit que x et x est petit que z)

Base de repreacutesentation des donneacutees

39

Boucle avec test conditionnel binaire break continue et else dans une boucle for

for n in range(2 10)

for x in range(2 n)

if n x == 0

print(n lsquoest eacutegal agrave x nx)

break

else

print(n lsquoest premier)

Utilisation de lrsquoinstruction continue

for num in range(2 10)

if num 2 == 0 le symbole deacutesigne lrsquoopeacuteration RESTE de la division

print(ldquoNombre paire trouveacute num)

continue

print(ldquoNombre non premier num)

Base de repreacutesentation des donneacutees

40

Deacutefinition de fonction (proceacutedure avec retour) def fib(n) Ecrire la suite de Fibonacci jusqursquoagrave n

a b = 0 1

while a lt n

print(a end= )

a b = b a+b

print()

fib(2000)

0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597

f = fib deacutesignation par reacutefeacuterence f agrave la fonction fib

f(100)

0 1 1 2 3 5 8 13 21 34 55 89

autre type de deacutefinition de fonction

def ask_ok(prompt retries=4 complaint=Oui or Non srsquoil vou plait )

while True

ok = input(prompt)

if ok in (lsquoo lsquooui lsquoOui)

return True

if ok in (lsquon no non lsquoNon)

return False

retries = retries - 1

if retries lt 0

raise OSError(lsquoUtilisateur non coopeacuteratif)

print(complaint)

Base de repreacutesentation des donneacutees

41

Lrsquoinstruction lambda def make_incrementeur(n)

return lambda x x + n

f = make_incrementeur(42)

f(0)

42

f(1)

43

un autre cas drsquoutilisation

pairs = [(1 one) (2 two) (3 three) (4 four)]

pairssort(key=lambda pair pair[1])

pairs

[(4 four) (1 one) (3 three) (2 two)]

Les annotations dans une fonction Les annotations deacutefinissent des messages de preacutesentation

def f(chiken str eggs str = eggs) -gt str remarquer que la fonction est de type STR

print(Annotations f__annotations__)

print(Arguments chiken eggs)

return chiken + and + eggs

f(spam)

Annotations chiken ltclass strgt return ltclass strgt eggs ltclass strgt

Arguments spam eggs

spam and eggslsquo

Base de repreacutesentation des donneacutees

42

Les deacutecorateurs python Notre deacutecorateur

def decorate(func)

print uJe suis dans la fonction decorate et je deacutecore s func__name__

print uExeacutecution de la fonction s func__name__

return func

Fonction cible utiliseacutee avec DECORATOR

decorate

def foobar(args)

print join(args)

Exemple drsquoappel de la fonction

foobar(A B C D)

Je suis dans la fonction decorate et je deacutecore foobar

Exeacutecution de la fonction foobar

A B C D

Il est posible drsquoattribuer plusieurs deacutecorateurs agrave une seule fonction

decorateur1

decorateur2

def ma_fonction()

instructions

Base de repreacutesentation des donneacutees

43

Manipulation des listes a = [6625 333 333 1 12345]

print(acount(333) acount(6625) acount(x))

2 1 0

ainsert(2 -1)

aappend(333)

a

[6625 333 -1 333 1 12345 333]

aindex(333)

1

aremove(333)

a

[6625 -1 333 1 12345 333]

areverse()

a

[333 12345 1 333 -1 6625]

asort()

a

[-1 1 6625 333 333 12345]

apop()

12345

a

[-1 1 6625 333 333]

Base de repreacutesentation des donneacutees

44

Puissance du langage Python Lrsquoensemble des lignes suiantes peut ecirctre compacteacute par ce qui suit

combs = []

for x in [123]

for y in [314]

if x = y

combsappend((x y))

Combs

Ou bien

[(x y) for x in [123] for y in [314] if x = y]

Donne le mecircme reacutesultat

[(1 3) (1 4) (2 3) (2 1) (2 4) (3 1) (3 4)]

Calcul de la valeur de PI arrondie

from math import pi

[str(round(pi i)) for i in range(1 6)]

[31 314 3142 31416 314159]

Geacuteneacuterateur avec utilisation de YIELD

def generateur()

yield a

yield b

yield cldquo

i=generateur()

for v in i

print v

a

b

c

Base de repreacutesentation des donneacutees

45

Les expressions reacuteguliegraveres en python Les expressions reacuteguliegravere sont utiliseacutees pour veacuterifier la conformiteacute des expressions de

chaines de caractegraveres par rapport agrave un motif Les symboles suivants sont utiliseacutes

^ $ + [ ] | ( )

Le point correspond agrave nimporte quel caractegravere

^ Indique un commencement de segment mais signifie aussi contraire de

$ Fin de segment

[xy] Une liste de segment possible Exemple [abc] eacutequivaut agrave a b ou c

(x|y) Indique un choix multiple type (ps|ump) eacutequivaut agrave ps OU UMP

d le segment est composeacute uniquement de chiffre ce qui eacutequivaut agrave [0-9]

D le segment nest pas composeacute de chiffre ce qui eacutequivaut agrave [^0-9]

s Un espace ce qui eacutequivaut agrave [ tnrfv]

S Pas despace ce qui eacutequivaut agrave [^ tnrfv]

w Preacutesence alphanumeacuterique ce qui eacutequivaut agrave [a-zA-Z0-9_]

W Pas de preacutesence alphanumeacuterique [^a-zA-Z0-9_]

Est un caractegravere deacutechappement T2 Le T soit reacutepeacuteteacute 2 fois

TA19 La seacutequence TA doit ecirctre preacutesente de 1 agrave 9 fois

TAM10 La seacutequence TAM nrsquoexiste pas ou reacutepeacuteteacutee 10 fois

LI1 La seacutequence LI doit ecirctre reacutepeacuteteacutee au moins une fois

Base de repreacutesentation des donneacutees

46

Les expressions reacuteguliegraveres en python Utilisation des expressions reacuteguliegravere

import re

print rematch(rGR()S GRIS)

lt_sreSRE_Match object at 0x02019DE0gt

Une utilisation freacutequente consiste en la validation des valeurs des emails saisis

Utilisation des expressions reacuteguliegravere

import re

mails = [lsquomtamaligmailcomrsquorsquoutmbuniv-bechardzrsquo lsquo8freefrrsquo lsquouniv-bechardzrsquo lsquotamalicdtarsquo]

regex = recompile(rrsquo^[a-z0-9_-]+[a-z0-9_-]+[(com|fr|dz)]+rsquo

for mail in mails

if regexmatch(mail) is not None

print Ce mail s est valide mail

else

print Erreur ce mail s est non valide mail

Ce mail mtamaligmailcom est valide

Ce mail utmbuniv-bechardz est valide

Ce mail 8freefr est valide

Erreur ce mail univ-bechardz est non valide

Erreur ce mail tamalicdta est non valide

Base de repreacutesentation des donneacutees

47

Les fichiers Creacuteer lire et eacutecrire dans un fichier en python Utilisation des expressions reacuteguliegravere

fichier = open(donneestxt r)

print fichier

ltopen file lsquodonneestxt mode r at 0x7ff6cf3fe4b0gt

Le descripteur permet de renseigner la machine sur la maniegravere avec laquelle le fichier est utiliseacute

r pour ouverture en mode READ

w pour ouverture en mode WRITE chaque fois le contenu du fichier est eacutecraseacute sinon python le creacutee

a pour ajout lsquoAPPENDrsquo Si le fichier nexiste pas python le creacutee

b Ouverture en mode Binaire

t Ouverture en mode Texte

x creacutee un nouveau fichier et louvrir pour eacutecriture

proceacutedure geacuteneacuterale pour lrsquoutilisation drsquoun fichier

fichier = open(lsquodonneestxtrsquo r)

print fichierread()

fichierclose()

Lrsquoinstruction WITH peut ecirctre utiliseacutee sans besoin de la fonction CLOSE

with open(datatxt r) as fichier

print fichierread()

Base de repreacutesentation des donneacutees

48

49

Le langage Python est un langage script interpreacuteteacute Le programme portant lrsquoune des extension py pyw ou pwc est

structureacute selon le canevas suivant

Les codifications

usrbinpython27

--codingencodage -

Les imports des librairies

Les instructions

Le langage Python passe pour ecirctre exeacutecuteacute sur deux eacutetapes la premiegravere UNE PRECOMPILATION geacuteneacuteration du code

machine et finalement un eacutecriture en code machine exeacutecutable (selon la machine)

Lrsquoenvironnement drsquoexeacutecution des scripts eacutecrits en Python regroupe les avantages des TRADUCTEURS (travaille en ligne par

ligne) et les COMPILATEURS (puissance de la structure algorithmique)

La bibliothegraveque cx_Freeze sert agrave transformer les fichiers scripts Pyhon py en exeacutecutable exe

Structures algorithmique du python

50

51

Matrices amp Systegravemes lineacuteaires

52

53

54

55

56

57

Le calcul scientifique

Reacutefeacuterences L-V Bertallanfy lsquoGeneral System Theoryrsquo Edition MASSON 1972

58

Page 21: Chap XIII : calcul scientifique avec python

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele (MPI Python)

Theacuteorie des graphes (Networkx)

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

21 Exemple

de graphe

Fenecirctre Aperccedilu

du bloc-note

Importation de la

librairie NetworkX

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

import RPiGPIO as GPIO

GPIOsetmode(GPIOBCM) set board mode to Broadcom

GPIOsetup(17 GPIOOUT) set up pin 17

GPIOsetup(18 GPIOOUT) set up pin 18

GPIOoutput(17 1) turn on pin 17

GPIOoutput(18 1) turn on pin 18

Importation

librairie GPIO

Module

Galileo Gen 2

Module

RaspBerry PI 3

22

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D (Python CAD FreeCAD)

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

23

from OCCSTEPControl import STEPControl_Reader

from OCCIFSelect import IFSelect_RetDone IFSelect_ItemsByEntity

from OCCDisplaySimpleGui import init_display

step_reader = STEPControl_Reader()

status = step_readerReadFile(modelswind_turbinestp)

if status == IFSelect_RetDone check status

failsonly = False

step_readerPrintCheckLoad(failsonly IFSelect_ItemsByEntity)

step_readerPrintCheckTransfer(failsonly IFSelect_ItemsByEntity)

ok = step_readerTransferRoot(1)

_nbs = step_readerNbShapes()

aResShape = step_readerShape(1)

else

print(Error cant read file)

sysexit(0)

display start_display add_menu add_function_to_menu = init_display()

displayDisplayShape(aResShape update=True)

start_display()

Importation

librairie OCC

Maillage Dauphin

Rendu du macirct drsquoun

aeacuterogeacuteneacuterateur

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D (Python CAD FreeCAD)

Bioinformatique et manipulation du geacutenome

POO avec Python (Programmation

Orienteacutee Objet) Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

class Rocket()

Rocket simule une roquette pour un jeu

ou une simulation de physique

def __init__(self)

Each rocket has an (xy) position

selfx = 0

selfy = 0

def move_up(self)

Increacutementation de la position y de la roquette

selfy += 1

Deacutefinir une ensemble de 5 roquettes les stocker dans une liste

my_rockets = []

for x in range(05)

new_rocket = Rocket()

my_rocketsappend(new_rocket)

A remarquer que chaque roquette est un objet agrave part entiegravere

for rocket in my_rockets

print(rocket)

Deacutefinition drsquoune

nouvelle Classe

Instantiation

Meacutethode Constructeur

__init__

24

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D (Python CAD FreeCAD)

Bioinformatique et manipulation

du geacutenome Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

25

from Bio import SeqIO

for seq_record in SeqIOparse(ls_orchidgbk genbank)

print(seq_recordid)

print(repr(seq_recordseq))

print(len(seq_record))

Z785331

Seq(CGTAACAAGGTTTCCGTAGGTGAACCTGCGGAAGGATCATTGATGAGACCGTGGCGC

IUPACAmbiguousDNA())

740

Z784391

Seq(CATTGTTGAGATCACATAATAATTGATCGAGTTAATCTGGAGGATCTGTTTACTGCC

IUPACAmbiguousDNA())

592

Sinon dans une Terminal Python

gtgtgt from BioSeq import Seq

gtgtgt from BioAlphabet import generic_dna

gtgtgt gene = Seq(GTGAAAAAGATGCAATCTATCGTACTCGCACTTTCCCTGGTTCTGGTCGCTCCCATGGCA +

GCACAGGCTGCGGAAATTACGTTAGTCCCGTCAGTAAAATTACAGATAGGCGATCGTGAT +

AATCGTGGCTATTACTGGGATGGAGGTCACTGGCGCGACCACGGCTGGTGGAAACAACAT +

TATGAATGGCGAGGCAATCGCTGGCACCTACACGGACCGCCGCCACCGCCGCGCCACCAT +

AAGAAAGCTCCTCATGATCATCACGGCGGTCATGGTCCAGGCAAACATCACCGCTAA

generic_dna)

gtgtgt genetranslate(table=Bacterial)

Seq(VKKMQSIVLALSLVLVAPMAAQAAEITLVPSVKLQIGDRDNRGYYWDGGHWRDHHR

HasStopCodon(ExtendedIUPACProtein() )

gtgtgt genetranslate(table=Bacterial to_stop=True)

Seq(VKKMQSIVLALSLVLVAPMAAQAAEITLVPSVKLQIGDRDNRGYYWDGGHWRDHHHR

ExtendedIUPACProtein())

Logo de

BioPython Seacutequence drsquoADN

Importation

librairie BIO

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D (Python CAD FreeCAD)

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

26

Installer agrave partir de PyPI

$ pip install mezzanine

Instantier un projet

$ mezzanine-project monproject

$ cd monproject

Instantier une Base de donneacutees

$ python managepy createdb

Lancer le serveur Web

$ python managepy runserver

Installation en mode

commande

URL du site instantieacute

Version Mobile Menu

Version Administration

Sites Web fait avec

Mezzanine

Version Normal

Les environnements de deacuteveloppement inteacutegreacutes de code Python sont nombreux des solutions proprieacutetaires agrave celles portant le

label GPL

Ils sont de trois grandes cateacutegories

Les applications bureaux (Desktop)

Les consoles de commande en ligne Les interfaces orienteacutees Web

Outils drsquoeacutelaboration de code Python (IDE)

27

Les environnements de deacuteveloppement inteacutegreacutes de code Python sont nombreux des solutions proprieacutetaires agrave celles portant le

label GPL Ils sont de trois grandes cateacutegories

Les applications bureaux (Desktop)

Les consoles de commande en ligne

Les interfaces orienteacutees Web

Outils drsquoeacutelaboration de code Python (IDE)

28

Les environnements de deacuteveloppement inteacutegreacutes de code Python sont nombreux des solutions proprieacutetaires agrave celles portant le

label GPL Ils sont de trois grandes cateacutegories

Les applications bureaux (Desktop)

Les consoles de commande en ligne

Les interfaces orienteacutees Web

Outils drsquoeacutelaboration de code Python (IDE)

29

30

Nom de Symbole Les noms de variables en Python peuvent contenir des caractegraveres alphanumeacuteriques a-z A-Z 0-

9 et certains caractegraveres speacuteciaux tel que _ Les noms de variables normales doivent commencer par une lettre

Par convention les noms de variables commencent par une lettre minuscule et les noms de classe commencent par

une lettre majuscule En outre il y a un certain nombre de mots-cleacutes Python qui ne peuvent pas ecirctre utiliseacutes comme

noms de variables Ces mots-cleacutes sont les suivants

and as assert break class continue def del elif else except exec finally for from global if import in

is lambda not or pass print raise return try while with yield

Affectation assignment de variable

x = 10

my_variable = 122

type(x) fonction TYPE retourne le type de la variable entre parenthegravese

builtinsfloat

Verification de type x = 10

veacuterifier si la variable est reacuteelle

type(x) is float

isinstance(x float)

True

z = complex(x)

print(z type(z))

(1+0j) ltclass complexlsquogt

Base de repreacutesentation des donneacutees

31

Operateurs et comparaisons Opeacuterateurs arithmeacutetiques + - (division entiegravere) puissance

30 20

10

NB operators puissance en python nrsquoest pas ^ mais

2 2

4

Les opeacuterateurs de comparaison sont gtltgt=lt===

objects identiques

x1 = x2 = [12]

x1 is x2

True

2 gt= 2 2 lt= 2

(True True)

Chaines de caractegraveres les liste et les dictionnaires s = Hello world

type(s)

builtinsstr

length of the string the number of characters

len(s)

11

replace a substring in a string with somethign else

s2 = sreplace(world test)

print(s2)

Hello test

s[0]

H

Base de repreacutesentation des donneacutees

32

Chaines de caractegraveres les liste et les dictionnaires s = Hello worldldquo

replace a substring in a string with somethign else

s2 = sreplace(world test)

Hello test

print(s2)

s[05]

Hellolsquo

s[05]

Hellolsquo

s[]

Hello worldlsquo

print(value = f 10) Formatage C des variables

value = 1000000

s2 = value1 = 2f value2 = d (31415 15)

print(s2)

value1 = 314 value2 = 1

Listes l = [1234]

print(type(l))

print(l)

ltclass listgt

[1 2 3 4]

l = [1 a 10 1-1j] peuvent ecirctre heacuteteacuterogegravene

print(l)

[1 a 10 (1-1j)]

Base de repreacutesentation des donneacutees

33

Listes start = 10

stop = 30

step = 2

range(start stop step)

range(10 30 2)

list(range(start stop step))

[10 12 14 16 18 20 22 24 26 28]

s2 = list(s)

S2

[H e l l o w o r l d]

Tri de la liste

s2sort()

print(s2)

[ H d e l l l o o r w]

l = []

lappend(A)

lappend(d)

lappend(d)

print(l)

[A d d]

Tuples Ce sont des variables comme les listes mais pas alteacuterables

point = (10 20)

print(point type(point))

(10 20) ltclass tuplegt

Base de repreacutesentation des donneacutees

34

Tuples x y = point

print(x = x)

print(y = y)

x = 10

y = 20

Dictionaries params = parameter1 10 parameter2 20 parameter3 30

print(type(params))

print(params)

ltclass dictgt

fparameter2 20 parameter3 30 parameter1 10

params[parameter1] = A

params[parameter2] = B

Ajouter une nouvelle entreacutee

params[parameter4] = D

print(paramegravetre = + str(params[parameter1]))

print(paramegravetre = + str(params[parameter2]))

print(paramegravetre = + str(params[parameter3]))

print(paramegravetre = + str(params[parameter4]))

paramegravetre = A

paramegravetre = B

paramegravetre = 30

paramegravetre = D

Base de repreacutesentation des donneacutees

35

36

Affectation amp Controcircle conditionnel de flue statement1 = False Crsquoest une affectation

statement2 = False

if statement1 Test valideacute condition (statement1) est VRAIE

print(statement1 is True)

elif statement2 Exeacutecuteacutee condition (statement2) est VRAIE

print(statement2 is True)

else Exeacutecuteacutee sinon

print(statement1 and statement2 are False)

Boucles for x in [123] [123] peut ecirctre deacutesigneacute par range(3) avec print(x+1)

print(x)

1

2

3

for word in [scientific computing with python]

print(word) condition de reacutepeacutetition deacutependante du contenu de la liste

scientific

computing

with

python

l1 = [x2 for x in range(05)] agrave remarquer la compaciteacute du Python

print(l1)

[0 1 4 9 16]

Base de repreacutesentation des donneacutees

37

Boucles var = 0

while var = 1

print jlsquoeacutecris mon programme ici

choix = raw_input(voulez vous recommencer ( on ) )

if choix == n

var = 1

else

lsquovous allez ecirctre renvoyeacute au deacutebut du programmersquo

X = y 2

while x gt 1

If y x == 0

print y lsquo est facteur de rsquo x

break

x -= 1

else

print y lsquo est premierlsquo

Lrsquoutilisation de zip et map peut srsquoaveacutereacutee encore plus efficace

l1 = [1 2 3]

l2 = [4 5 6]

for (x y) in zip(l1 l2)

print x y -- x + y

1 4 -- 5

2 5 -- 7

3 6 -- 9

Base de repreacutesentation des donneacutees

38

s=0123456789

print map(int s)

[0 1 2 3 4 5 6 7 8 9]

Utilisation et

puissance de MAP

Utilisation de ZIP

Intervales range(start stop step)

range(5 10)

5 jusqursquoagrave 10 (exclue) avec un pas de 1

range(0 10 3)

0 3 6 9

range(-10 -100 -30)

-10 -40 -70

Test conditionnel binaire x = 5

y = 10

if x gt y

print(x est grand que y)

else

print(ldquox nrsquoest pas grand que yrdquo)

Dans Python on peut compliquer les chose

x = 5

y = 10

Z = 12

if z gt x gt y

print(lsquoy est petit que x et x est petit que z)

Base de repreacutesentation des donneacutees

39

Boucle avec test conditionnel binaire break continue et else dans une boucle for

for n in range(2 10)

for x in range(2 n)

if n x == 0

print(n lsquoest eacutegal agrave x nx)

break

else

print(n lsquoest premier)

Utilisation de lrsquoinstruction continue

for num in range(2 10)

if num 2 == 0 le symbole deacutesigne lrsquoopeacuteration RESTE de la division

print(ldquoNombre paire trouveacute num)

continue

print(ldquoNombre non premier num)

Base de repreacutesentation des donneacutees

40

Deacutefinition de fonction (proceacutedure avec retour) def fib(n) Ecrire la suite de Fibonacci jusqursquoagrave n

a b = 0 1

while a lt n

print(a end= )

a b = b a+b

print()

fib(2000)

0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597

f = fib deacutesignation par reacutefeacuterence f agrave la fonction fib

f(100)

0 1 1 2 3 5 8 13 21 34 55 89

autre type de deacutefinition de fonction

def ask_ok(prompt retries=4 complaint=Oui or Non srsquoil vou plait )

while True

ok = input(prompt)

if ok in (lsquoo lsquooui lsquoOui)

return True

if ok in (lsquon no non lsquoNon)

return False

retries = retries - 1

if retries lt 0

raise OSError(lsquoUtilisateur non coopeacuteratif)

print(complaint)

Base de repreacutesentation des donneacutees

41

Lrsquoinstruction lambda def make_incrementeur(n)

return lambda x x + n

f = make_incrementeur(42)

f(0)

42

f(1)

43

un autre cas drsquoutilisation

pairs = [(1 one) (2 two) (3 three) (4 four)]

pairssort(key=lambda pair pair[1])

pairs

[(4 four) (1 one) (3 three) (2 two)]

Les annotations dans une fonction Les annotations deacutefinissent des messages de preacutesentation

def f(chiken str eggs str = eggs) -gt str remarquer que la fonction est de type STR

print(Annotations f__annotations__)

print(Arguments chiken eggs)

return chiken + and + eggs

f(spam)

Annotations chiken ltclass strgt return ltclass strgt eggs ltclass strgt

Arguments spam eggs

spam and eggslsquo

Base de repreacutesentation des donneacutees

42

Les deacutecorateurs python Notre deacutecorateur

def decorate(func)

print uJe suis dans la fonction decorate et je deacutecore s func__name__

print uExeacutecution de la fonction s func__name__

return func

Fonction cible utiliseacutee avec DECORATOR

decorate

def foobar(args)

print join(args)

Exemple drsquoappel de la fonction

foobar(A B C D)

Je suis dans la fonction decorate et je deacutecore foobar

Exeacutecution de la fonction foobar

A B C D

Il est posible drsquoattribuer plusieurs deacutecorateurs agrave une seule fonction

decorateur1

decorateur2

def ma_fonction()

instructions

Base de repreacutesentation des donneacutees

43

Manipulation des listes a = [6625 333 333 1 12345]

print(acount(333) acount(6625) acount(x))

2 1 0

ainsert(2 -1)

aappend(333)

a

[6625 333 -1 333 1 12345 333]

aindex(333)

1

aremove(333)

a

[6625 -1 333 1 12345 333]

areverse()

a

[333 12345 1 333 -1 6625]

asort()

a

[-1 1 6625 333 333 12345]

apop()

12345

a

[-1 1 6625 333 333]

Base de repreacutesentation des donneacutees

44

Puissance du langage Python Lrsquoensemble des lignes suiantes peut ecirctre compacteacute par ce qui suit

combs = []

for x in [123]

for y in [314]

if x = y

combsappend((x y))

Combs

Ou bien

[(x y) for x in [123] for y in [314] if x = y]

Donne le mecircme reacutesultat

[(1 3) (1 4) (2 3) (2 1) (2 4) (3 1) (3 4)]

Calcul de la valeur de PI arrondie

from math import pi

[str(round(pi i)) for i in range(1 6)]

[31 314 3142 31416 314159]

Geacuteneacuterateur avec utilisation de YIELD

def generateur()

yield a

yield b

yield cldquo

i=generateur()

for v in i

print v

a

b

c

Base de repreacutesentation des donneacutees

45

Les expressions reacuteguliegraveres en python Les expressions reacuteguliegravere sont utiliseacutees pour veacuterifier la conformiteacute des expressions de

chaines de caractegraveres par rapport agrave un motif Les symboles suivants sont utiliseacutes

^ $ + [ ] | ( )

Le point correspond agrave nimporte quel caractegravere

^ Indique un commencement de segment mais signifie aussi contraire de

$ Fin de segment

[xy] Une liste de segment possible Exemple [abc] eacutequivaut agrave a b ou c

(x|y) Indique un choix multiple type (ps|ump) eacutequivaut agrave ps OU UMP

d le segment est composeacute uniquement de chiffre ce qui eacutequivaut agrave [0-9]

D le segment nest pas composeacute de chiffre ce qui eacutequivaut agrave [^0-9]

s Un espace ce qui eacutequivaut agrave [ tnrfv]

S Pas despace ce qui eacutequivaut agrave [^ tnrfv]

w Preacutesence alphanumeacuterique ce qui eacutequivaut agrave [a-zA-Z0-9_]

W Pas de preacutesence alphanumeacuterique [^a-zA-Z0-9_]

Est un caractegravere deacutechappement T2 Le T soit reacutepeacuteteacute 2 fois

TA19 La seacutequence TA doit ecirctre preacutesente de 1 agrave 9 fois

TAM10 La seacutequence TAM nrsquoexiste pas ou reacutepeacuteteacutee 10 fois

LI1 La seacutequence LI doit ecirctre reacutepeacuteteacutee au moins une fois

Base de repreacutesentation des donneacutees

46

Les expressions reacuteguliegraveres en python Utilisation des expressions reacuteguliegravere

import re

print rematch(rGR()S GRIS)

lt_sreSRE_Match object at 0x02019DE0gt

Une utilisation freacutequente consiste en la validation des valeurs des emails saisis

Utilisation des expressions reacuteguliegravere

import re

mails = [lsquomtamaligmailcomrsquorsquoutmbuniv-bechardzrsquo lsquo8freefrrsquo lsquouniv-bechardzrsquo lsquotamalicdtarsquo]

regex = recompile(rrsquo^[a-z0-9_-]+[a-z0-9_-]+[(com|fr|dz)]+rsquo

for mail in mails

if regexmatch(mail) is not None

print Ce mail s est valide mail

else

print Erreur ce mail s est non valide mail

Ce mail mtamaligmailcom est valide

Ce mail utmbuniv-bechardz est valide

Ce mail 8freefr est valide

Erreur ce mail univ-bechardz est non valide

Erreur ce mail tamalicdta est non valide

Base de repreacutesentation des donneacutees

47

Les fichiers Creacuteer lire et eacutecrire dans un fichier en python Utilisation des expressions reacuteguliegravere

fichier = open(donneestxt r)

print fichier

ltopen file lsquodonneestxt mode r at 0x7ff6cf3fe4b0gt

Le descripteur permet de renseigner la machine sur la maniegravere avec laquelle le fichier est utiliseacute

r pour ouverture en mode READ

w pour ouverture en mode WRITE chaque fois le contenu du fichier est eacutecraseacute sinon python le creacutee

a pour ajout lsquoAPPENDrsquo Si le fichier nexiste pas python le creacutee

b Ouverture en mode Binaire

t Ouverture en mode Texte

x creacutee un nouveau fichier et louvrir pour eacutecriture

proceacutedure geacuteneacuterale pour lrsquoutilisation drsquoun fichier

fichier = open(lsquodonneestxtrsquo r)

print fichierread()

fichierclose()

Lrsquoinstruction WITH peut ecirctre utiliseacutee sans besoin de la fonction CLOSE

with open(datatxt r) as fichier

print fichierread()

Base de repreacutesentation des donneacutees

48

49

Le langage Python est un langage script interpreacuteteacute Le programme portant lrsquoune des extension py pyw ou pwc est

structureacute selon le canevas suivant

Les codifications

usrbinpython27

--codingencodage -

Les imports des librairies

Les instructions

Le langage Python passe pour ecirctre exeacutecuteacute sur deux eacutetapes la premiegravere UNE PRECOMPILATION geacuteneacuteration du code

machine et finalement un eacutecriture en code machine exeacutecutable (selon la machine)

Lrsquoenvironnement drsquoexeacutecution des scripts eacutecrits en Python regroupe les avantages des TRADUCTEURS (travaille en ligne par

ligne) et les COMPILATEURS (puissance de la structure algorithmique)

La bibliothegraveque cx_Freeze sert agrave transformer les fichiers scripts Pyhon py en exeacutecutable exe

Structures algorithmique du python

50

51

Matrices amp Systegravemes lineacuteaires

52

53

54

55

56

57

Le calcul scientifique

Reacutefeacuterences L-V Bertallanfy lsquoGeneral System Theoryrsquo Edition MASSON 1972

58

Page 22: Chap XIII : calcul scientifique avec python

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

import RPiGPIO as GPIO

GPIOsetmode(GPIOBCM) set board mode to Broadcom

GPIOsetup(17 GPIOOUT) set up pin 17

GPIOsetup(18 GPIOOUT) set up pin 18

GPIOoutput(17 1) turn on pin 17

GPIOoutput(18 1) turn on pin 18

Importation

librairie GPIO

Module

Galileo Gen 2

Module

RaspBerry PI 3

22

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D (Python CAD FreeCAD)

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

23

from OCCSTEPControl import STEPControl_Reader

from OCCIFSelect import IFSelect_RetDone IFSelect_ItemsByEntity

from OCCDisplaySimpleGui import init_display

step_reader = STEPControl_Reader()

status = step_readerReadFile(modelswind_turbinestp)

if status == IFSelect_RetDone check status

failsonly = False

step_readerPrintCheckLoad(failsonly IFSelect_ItemsByEntity)

step_readerPrintCheckTransfer(failsonly IFSelect_ItemsByEntity)

ok = step_readerTransferRoot(1)

_nbs = step_readerNbShapes()

aResShape = step_readerShape(1)

else

print(Error cant read file)

sysexit(0)

display start_display add_menu add_function_to_menu = init_display()

displayDisplayShape(aResShape update=True)

start_display()

Importation

librairie OCC

Maillage Dauphin

Rendu du macirct drsquoun

aeacuterogeacuteneacuterateur

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D (Python CAD FreeCAD)

Bioinformatique et manipulation du geacutenome

POO avec Python (Programmation

Orienteacutee Objet) Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

class Rocket()

Rocket simule une roquette pour un jeu

ou une simulation de physique

def __init__(self)

Each rocket has an (xy) position

selfx = 0

selfy = 0

def move_up(self)

Increacutementation de la position y de la roquette

selfy += 1

Deacutefinir une ensemble de 5 roquettes les stocker dans une liste

my_rockets = []

for x in range(05)

new_rocket = Rocket()

my_rocketsappend(new_rocket)

A remarquer que chaque roquette est un objet agrave part entiegravere

for rocket in my_rockets

print(rocket)

Deacutefinition drsquoune

nouvelle Classe

Instantiation

Meacutethode Constructeur

__init__

24

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D (Python CAD FreeCAD)

Bioinformatique et manipulation

du geacutenome Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

25

from Bio import SeqIO

for seq_record in SeqIOparse(ls_orchidgbk genbank)

print(seq_recordid)

print(repr(seq_recordseq))

print(len(seq_record))

Z785331

Seq(CGTAACAAGGTTTCCGTAGGTGAACCTGCGGAAGGATCATTGATGAGACCGTGGCGC

IUPACAmbiguousDNA())

740

Z784391

Seq(CATTGTTGAGATCACATAATAATTGATCGAGTTAATCTGGAGGATCTGTTTACTGCC

IUPACAmbiguousDNA())

592

Sinon dans une Terminal Python

gtgtgt from BioSeq import Seq

gtgtgt from BioAlphabet import generic_dna

gtgtgt gene = Seq(GTGAAAAAGATGCAATCTATCGTACTCGCACTTTCCCTGGTTCTGGTCGCTCCCATGGCA +

GCACAGGCTGCGGAAATTACGTTAGTCCCGTCAGTAAAATTACAGATAGGCGATCGTGAT +

AATCGTGGCTATTACTGGGATGGAGGTCACTGGCGCGACCACGGCTGGTGGAAACAACAT +

TATGAATGGCGAGGCAATCGCTGGCACCTACACGGACCGCCGCCACCGCCGCGCCACCAT +

AAGAAAGCTCCTCATGATCATCACGGCGGTCATGGTCCAGGCAAACATCACCGCTAA

generic_dna)

gtgtgt genetranslate(table=Bacterial)

Seq(VKKMQSIVLALSLVLVAPMAAQAAEITLVPSVKLQIGDRDNRGYYWDGGHWRDHHR

HasStopCodon(ExtendedIUPACProtein() )

gtgtgt genetranslate(table=Bacterial to_stop=True)

Seq(VKKMQSIVLALSLVLVAPMAAQAAEITLVPSVKLQIGDRDNRGYYWDGGHWRDHHHR

ExtendedIUPACProtein())

Logo de

BioPython Seacutequence drsquoADN

Importation

librairie BIO

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D (Python CAD FreeCAD)

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

26

Installer agrave partir de PyPI

$ pip install mezzanine

Instantier un projet

$ mezzanine-project monproject

$ cd monproject

Instantier une Base de donneacutees

$ python managepy createdb

Lancer le serveur Web

$ python managepy runserver

Installation en mode

commande

URL du site instantieacute

Version Mobile Menu

Version Administration

Sites Web fait avec

Mezzanine

Version Normal

Les environnements de deacuteveloppement inteacutegreacutes de code Python sont nombreux des solutions proprieacutetaires agrave celles portant le

label GPL

Ils sont de trois grandes cateacutegories

Les applications bureaux (Desktop)

Les consoles de commande en ligne Les interfaces orienteacutees Web

Outils drsquoeacutelaboration de code Python (IDE)

27

Les environnements de deacuteveloppement inteacutegreacutes de code Python sont nombreux des solutions proprieacutetaires agrave celles portant le

label GPL Ils sont de trois grandes cateacutegories

Les applications bureaux (Desktop)

Les consoles de commande en ligne

Les interfaces orienteacutees Web

Outils drsquoeacutelaboration de code Python (IDE)

28

Les environnements de deacuteveloppement inteacutegreacutes de code Python sont nombreux des solutions proprieacutetaires agrave celles portant le

label GPL Ils sont de trois grandes cateacutegories

Les applications bureaux (Desktop)

Les consoles de commande en ligne

Les interfaces orienteacutees Web

Outils drsquoeacutelaboration de code Python (IDE)

29

30

Nom de Symbole Les noms de variables en Python peuvent contenir des caractegraveres alphanumeacuteriques a-z A-Z 0-

9 et certains caractegraveres speacuteciaux tel que _ Les noms de variables normales doivent commencer par une lettre

Par convention les noms de variables commencent par une lettre minuscule et les noms de classe commencent par

une lettre majuscule En outre il y a un certain nombre de mots-cleacutes Python qui ne peuvent pas ecirctre utiliseacutes comme

noms de variables Ces mots-cleacutes sont les suivants

and as assert break class continue def del elif else except exec finally for from global if import in

is lambda not or pass print raise return try while with yield

Affectation assignment de variable

x = 10

my_variable = 122

type(x) fonction TYPE retourne le type de la variable entre parenthegravese

builtinsfloat

Verification de type x = 10

veacuterifier si la variable est reacuteelle

type(x) is float

isinstance(x float)

True

z = complex(x)

print(z type(z))

(1+0j) ltclass complexlsquogt

Base de repreacutesentation des donneacutees

31

Operateurs et comparaisons Opeacuterateurs arithmeacutetiques + - (division entiegravere) puissance

30 20

10

NB operators puissance en python nrsquoest pas ^ mais

2 2

4

Les opeacuterateurs de comparaison sont gtltgt=lt===

objects identiques

x1 = x2 = [12]

x1 is x2

True

2 gt= 2 2 lt= 2

(True True)

Chaines de caractegraveres les liste et les dictionnaires s = Hello world

type(s)

builtinsstr

length of the string the number of characters

len(s)

11

replace a substring in a string with somethign else

s2 = sreplace(world test)

print(s2)

Hello test

s[0]

H

Base de repreacutesentation des donneacutees

32

Chaines de caractegraveres les liste et les dictionnaires s = Hello worldldquo

replace a substring in a string with somethign else

s2 = sreplace(world test)

Hello test

print(s2)

s[05]

Hellolsquo

s[05]

Hellolsquo

s[]

Hello worldlsquo

print(value = f 10) Formatage C des variables

value = 1000000

s2 = value1 = 2f value2 = d (31415 15)

print(s2)

value1 = 314 value2 = 1

Listes l = [1234]

print(type(l))

print(l)

ltclass listgt

[1 2 3 4]

l = [1 a 10 1-1j] peuvent ecirctre heacuteteacuterogegravene

print(l)

[1 a 10 (1-1j)]

Base de repreacutesentation des donneacutees

33

Listes start = 10

stop = 30

step = 2

range(start stop step)

range(10 30 2)

list(range(start stop step))

[10 12 14 16 18 20 22 24 26 28]

s2 = list(s)

S2

[H e l l o w o r l d]

Tri de la liste

s2sort()

print(s2)

[ H d e l l l o o r w]

l = []

lappend(A)

lappend(d)

lappend(d)

print(l)

[A d d]

Tuples Ce sont des variables comme les listes mais pas alteacuterables

point = (10 20)

print(point type(point))

(10 20) ltclass tuplegt

Base de repreacutesentation des donneacutees

34

Tuples x y = point

print(x = x)

print(y = y)

x = 10

y = 20

Dictionaries params = parameter1 10 parameter2 20 parameter3 30

print(type(params))

print(params)

ltclass dictgt

fparameter2 20 parameter3 30 parameter1 10

params[parameter1] = A

params[parameter2] = B

Ajouter une nouvelle entreacutee

params[parameter4] = D

print(paramegravetre = + str(params[parameter1]))

print(paramegravetre = + str(params[parameter2]))

print(paramegravetre = + str(params[parameter3]))

print(paramegravetre = + str(params[parameter4]))

paramegravetre = A

paramegravetre = B

paramegravetre = 30

paramegravetre = D

Base de repreacutesentation des donneacutees

35

36

Affectation amp Controcircle conditionnel de flue statement1 = False Crsquoest une affectation

statement2 = False

if statement1 Test valideacute condition (statement1) est VRAIE

print(statement1 is True)

elif statement2 Exeacutecuteacutee condition (statement2) est VRAIE

print(statement2 is True)

else Exeacutecuteacutee sinon

print(statement1 and statement2 are False)

Boucles for x in [123] [123] peut ecirctre deacutesigneacute par range(3) avec print(x+1)

print(x)

1

2

3

for word in [scientific computing with python]

print(word) condition de reacutepeacutetition deacutependante du contenu de la liste

scientific

computing

with

python

l1 = [x2 for x in range(05)] agrave remarquer la compaciteacute du Python

print(l1)

[0 1 4 9 16]

Base de repreacutesentation des donneacutees

37

Boucles var = 0

while var = 1

print jlsquoeacutecris mon programme ici

choix = raw_input(voulez vous recommencer ( on ) )

if choix == n

var = 1

else

lsquovous allez ecirctre renvoyeacute au deacutebut du programmersquo

X = y 2

while x gt 1

If y x == 0

print y lsquo est facteur de rsquo x

break

x -= 1

else

print y lsquo est premierlsquo

Lrsquoutilisation de zip et map peut srsquoaveacutereacutee encore plus efficace

l1 = [1 2 3]

l2 = [4 5 6]

for (x y) in zip(l1 l2)

print x y -- x + y

1 4 -- 5

2 5 -- 7

3 6 -- 9

Base de repreacutesentation des donneacutees

38

s=0123456789

print map(int s)

[0 1 2 3 4 5 6 7 8 9]

Utilisation et

puissance de MAP

Utilisation de ZIP

Intervales range(start stop step)

range(5 10)

5 jusqursquoagrave 10 (exclue) avec un pas de 1

range(0 10 3)

0 3 6 9

range(-10 -100 -30)

-10 -40 -70

Test conditionnel binaire x = 5

y = 10

if x gt y

print(x est grand que y)

else

print(ldquox nrsquoest pas grand que yrdquo)

Dans Python on peut compliquer les chose

x = 5

y = 10

Z = 12

if z gt x gt y

print(lsquoy est petit que x et x est petit que z)

Base de repreacutesentation des donneacutees

39

Boucle avec test conditionnel binaire break continue et else dans une boucle for

for n in range(2 10)

for x in range(2 n)

if n x == 0

print(n lsquoest eacutegal agrave x nx)

break

else

print(n lsquoest premier)

Utilisation de lrsquoinstruction continue

for num in range(2 10)

if num 2 == 0 le symbole deacutesigne lrsquoopeacuteration RESTE de la division

print(ldquoNombre paire trouveacute num)

continue

print(ldquoNombre non premier num)

Base de repreacutesentation des donneacutees

40

Deacutefinition de fonction (proceacutedure avec retour) def fib(n) Ecrire la suite de Fibonacci jusqursquoagrave n

a b = 0 1

while a lt n

print(a end= )

a b = b a+b

print()

fib(2000)

0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597

f = fib deacutesignation par reacutefeacuterence f agrave la fonction fib

f(100)

0 1 1 2 3 5 8 13 21 34 55 89

autre type de deacutefinition de fonction

def ask_ok(prompt retries=4 complaint=Oui or Non srsquoil vou plait )

while True

ok = input(prompt)

if ok in (lsquoo lsquooui lsquoOui)

return True

if ok in (lsquon no non lsquoNon)

return False

retries = retries - 1

if retries lt 0

raise OSError(lsquoUtilisateur non coopeacuteratif)

print(complaint)

Base de repreacutesentation des donneacutees

41

Lrsquoinstruction lambda def make_incrementeur(n)

return lambda x x + n

f = make_incrementeur(42)

f(0)

42

f(1)

43

un autre cas drsquoutilisation

pairs = [(1 one) (2 two) (3 three) (4 four)]

pairssort(key=lambda pair pair[1])

pairs

[(4 four) (1 one) (3 three) (2 two)]

Les annotations dans une fonction Les annotations deacutefinissent des messages de preacutesentation

def f(chiken str eggs str = eggs) -gt str remarquer que la fonction est de type STR

print(Annotations f__annotations__)

print(Arguments chiken eggs)

return chiken + and + eggs

f(spam)

Annotations chiken ltclass strgt return ltclass strgt eggs ltclass strgt

Arguments spam eggs

spam and eggslsquo

Base de repreacutesentation des donneacutees

42

Les deacutecorateurs python Notre deacutecorateur

def decorate(func)

print uJe suis dans la fonction decorate et je deacutecore s func__name__

print uExeacutecution de la fonction s func__name__

return func

Fonction cible utiliseacutee avec DECORATOR

decorate

def foobar(args)

print join(args)

Exemple drsquoappel de la fonction

foobar(A B C D)

Je suis dans la fonction decorate et je deacutecore foobar

Exeacutecution de la fonction foobar

A B C D

Il est posible drsquoattribuer plusieurs deacutecorateurs agrave une seule fonction

decorateur1

decorateur2

def ma_fonction()

instructions

Base de repreacutesentation des donneacutees

43

Manipulation des listes a = [6625 333 333 1 12345]

print(acount(333) acount(6625) acount(x))

2 1 0

ainsert(2 -1)

aappend(333)

a

[6625 333 -1 333 1 12345 333]

aindex(333)

1

aremove(333)

a

[6625 -1 333 1 12345 333]

areverse()

a

[333 12345 1 333 -1 6625]

asort()

a

[-1 1 6625 333 333 12345]

apop()

12345

a

[-1 1 6625 333 333]

Base de repreacutesentation des donneacutees

44

Puissance du langage Python Lrsquoensemble des lignes suiantes peut ecirctre compacteacute par ce qui suit

combs = []

for x in [123]

for y in [314]

if x = y

combsappend((x y))

Combs

Ou bien

[(x y) for x in [123] for y in [314] if x = y]

Donne le mecircme reacutesultat

[(1 3) (1 4) (2 3) (2 1) (2 4) (3 1) (3 4)]

Calcul de la valeur de PI arrondie

from math import pi

[str(round(pi i)) for i in range(1 6)]

[31 314 3142 31416 314159]

Geacuteneacuterateur avec utilisation de YIELD

def generateur()

yield a

yield b

yield cldquo

i=generateur()

for v in i

print v

a

b

c

Base de repreacutesentation des donneacutees

45

Les expressions reacuteguliegraveres en python Les expressions reacuteguliegravere sont utiliseacutees pour veacuterifier la conformiteacute des expressions de

chaines de caractegraveres par rapport agrave un motif Les symboles suivants sont utiliseacutes

^ $ + [ ] | ( )

Le point correspond agrave nimporte quel caractegravere

^ Indique un commencement de segment mais signifie aussi contraire de

$ Fin de segment

[xy] Une liste de segment possible Exemple [abc] eacutequivaut agrave a b ou c

(x|y) Indique un choix multiple type (ps|ump) eacutequivaut agrave ps OU UMP

d le segment est composeacute uniquement de chiffre ce qui eacutequivaut agrave [0-9]

D le segment nest pas composeacute de chiffre ce qui eacutequivaut agrave [^0-9]

s Un espace ce qui eacutequivaut agrave [ tnrfv]

S Pas despace ce qui eacutequivaut agrave [^ tnrfv]

w Preacutesence alphanumeacuterique ce qui eacutequivaut agrave [a-zA-Z0-9_]

W Pas de preacutesence alphanumeacuterique [^a-zA-Z0-9_]

Est un caractegravere deacutechappement T2 Le T soit reacutepeacuteteacute 2 fois

TA19 La seacutequence TA doit ecirctre preacutesente de 1 agrave 9 fois

TAM10 La seacutequence TAM nrsquoexiste pas ou reacutepeacuteteacutee 10 fois

LI1 La seacutequence LI doit ecirctre reacutepeacuteteacutee au moins une fois

Base de repreacutesentation des donneacutees

46

Les expressions reacuteguliegraveres en python Utilisation des expressions reacuteguliegravere

import re

print rematch(rGR()S GRIS)

lt_sreSRE_Match object at 0x02019DE0gt

Une utilisation freacutequente consiste en la validation des valeurs des emails saisis

Utilisation des expressions reacuteguliegravere

import re

mails = [lsquomtamaligmailcomrsquorsquoutmbuniv-bechardzrsquo lsquo8freefrrsquo lsquouniv-bechardzrsquo lsquotamalicdtarsquo]

regex = recompile(rrsquo^[a-z0-9_-]+[a-z0-9_-]+[(com|fr|dz)]+rsquo

for mail in mails

if regexmatch(mail) is not None

print Ce mail s est valide mail

else

print Erreur ce mail s est non valide mail

Ce mail mtamaligmailcom est valide

Ce mail utmbuniv-bechardz est valide

Ce mail 8freefr est valide

Erreur ce mail univ-bechardz est non valide

Erreur ce mail tamalicdta est non valide

Base de repreacutesentation des donneacutees

47

Les fichiers Creacuteer lire et eacutecrire dans un fichier en python Utilisation des expressions reacuteguliegravere

fichier = open(donneestxt r)

print fichier

ltopen file lsquodonneestxt mode r at 0x7ff6cf3fe4b0gt

Le descripteur permet de renseigner la machine sur la maniegravere avec laquelle le fichier est utiliseacute

r pour ouverture en mode READ

w pour ouverture en mode WRITE chaque fois le contenu du fichier est eacutecraseacute sinon python le creacutee

a pour ajout lsquoAPPENDrsquo Si le fichier nexiste pas python le creacutee

b Ouverture en mode Binaire

t Ouverture en mode Texte

x creacutee un nouveau fichier et louvrir pour eacutecriture

proceacutedure geacuteneacuterale pour lrsquoutilisation drsquoun fichier

fichier = open(lsquodonneestxtrsquo r)

print fichierread()

fichierclose()

Lrsquoinstruction WITH peut ecirctre utiliseacutee sans besoin de la fonction CLOSE

with open(datatxt r) as fichier

print fichierread()

Base de repreacutesentation des donneacutees

48

49

Le langage Python est un langage script interpreacuteteacute Le programme portant lrsquoune des extension py pyw ou pwc est

structureacute selon le canevas suivant

Les codifications

usrbinpython27

--codingencodage -

Les imports des librairies

Les instructions

Le langage Python passe pour ecirctre exeacutecuteacute sur deux eacutetapes la premiegravere UNE PRECOMPILATION geacuteneacuteration du code

machine et finalement un eacutecriture en code machine exeacutecutable (selon la machine)

Lrsquoenvironnement drsquoexeacutecution des scripts eacutecrits en Python regroupe les avantages des TRADUCTEURS (travaille en ligne par

ligne) et les COMPILATEURS (puissance de la structure algorithmique)

La bibliothegraveque cx_Freeze sert agrave transformer les fichiers scripts Pyhon py en exeacutecutable exe

Structures algorithmique du python

50

51

Matrices amp Systegravemes lineacuteaires

52

53

54

55

56

57

Le calcul scientifique

Reacutefeacuterences L-V Bertallanfy lsquoGeneral System Theoryrsquo Edition MASSON 1972

58

Page 23: Chap XIII : calcul scientifique avec python

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D (Python CAD FreeCAD)

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

23

from OCCSTEPControl import STEPControl_Reader

from OCCIFSelect import IFSelect_RetDone IFSelect_ItemsByEntity

from OCCDisplaySimpleGui import init_display

step_reader = STEPControl_Reader()

status = step_readerReadFile(modelswind_turbinestp)

if status == IFSelect_RetDone check status

failsonly = False

step_readerPrintCheckLoad(failsonly IFSelect_ItemsByEntity)

step_readerPrintCheckTransfer(failsonly IFSelect_ItemsByEntity)

ok = step_readerTransferRoot(1)

_nbs = step_readerNbShapes()

aResShape = step_readerShape(1)

else

print(Error cant read file)

sysexit(0)

display start_display add_menu add_function_to_menu = init_display()

displayDisplayShape(aResShape update=True)

start_display()

Importation

librairie OCC

Maillage Dauphin

Rendu du macirct drsquoun

aeacuterogeacuteneacuterateur

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D (Python CAD FreeCAD)

Bioinformatique et manipulation du geacutenome

POO avec Python (Programmation

Orienteacutee Objet) Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

class Rocket()

Rocket simule une roquette pour un jeu

ou une simulation de physique

def __init__(self)

Each rocket has an (xy) position

selfx = 0

selfy = 0

def move_up(self)

Increacutementation de la position y de la roquette

selfy += 1

Deacutefinir une ensemble de 5 roquettes les stocker dans une liste

my_rockets = []

for x in range(05)

new_rocket = Rocket()

my_rocketsappend(new_rocket)

A remarquer que chaque roquette est un objet agrave part entiegravere

for rocket in my_rockets

print(rocket)

Deacutefinition drsquoune

nouvelle Classe

Instantiation

Meacutethode Constructeur

__init__

24

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D (Python CAD FreeCAD)

Bioinformatique et manipulation

du geacutenome Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

25

from Bio import SeqIO

for seq_record in SeqIOparse(ls_orchidgbk genbank)

print(seq_recordid)

print(repr(seq_recordseq))

print(len(seq_record))

Z785331

Seq(CGTAACAAGGTTTCCGTAGGTGAACCTGCGGAAGGATCATTGATGAGACCGTGGCGC

IUPACAmbiguousDNA())

740

Z784391

Seq(CATTGTTGAGATCACATAATAATTGATCGAGTTAATCTGGAGGATCTGTTTACTGCC

IUPACAmbiguousDNA())

592

Sinon dans une Terminal Python

gtgtgt from BioSeq import Seq

gtgtgt from BioAlphabet import generic_dna

gtgtgt gene = Seq(GTGAAAAAGATGCAATCTATCGTACTCGCACTTTCCCTGGTTCTGGTCGCTCCCATGGCA +

GCACAGGCTGCGGAAATTACGTTAGTCCCGTCAGTAAAATTACAGATAGGCGATCGTGAT +

AATCGTGGCTATTACTGGGATGGAGGTCACTGGCGCGACCACGGCTGGTGGAAACAACAT +

TATGAATGGCGAGGCAATCGCTGGCACCTACACGGACCGCCGCCACCGCCGCGCCACCAT +

AAGAAAGCTCCTCATGATCATCACGGCGGTCATGGTCCAGGCAAACATCACCGCTAA

generic_dna)

gtgtgt genetranslate(table=Bacterial)

Seq(VKKMQSIVLALSLVLVAPMAAQAAEITLVPSVKLQIGDRDNRGYYWDGGHWRDHHR

HasStopCodon(ExtendedIUPACProtein() )

gtgtgt genetranslate(table=Bacterial to_stop=True)

Seq(VKKMQSIVLALSLVLVAPMAAQAAEITLVPSVKLQIGDRDNRGYYWDGGHWRDHHHR

ExtendedIUPACProtein())

Logo de

BioPython Seacutequence drsquoADN

Importation

librairie BIO

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D (Python CAD FreeCAD)

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

26

Installer agrave partir de PyPI

$ pip install mezzanine

Instantier un projet

$ mezzanine-project monproject

$ cd monproject

Instantier une Base de donneacutees

$ python managepy createdb

Lancer le serveur Web

$ python managepy runserver

Installation en mode

commande

URL du site instantieacute

Version Mobile Menu

Version Administration

Sites Web fait avec

Mezzanine

Version Normal

Les environnements de deacuteveloppement inteacutegreacutes de code Python sont nombreux des solutions proprieacutetaires agrave celles portant le

label GPL

Ils sont de trois grandes cateacutegories

Les applications bureaux (Desktop)

Les consoles de commande en ligne Les interfaces orienteacutees Web

Outils drsquoeacutelaboration de code Python (IDE)

27

Les environnements de deacuteveloppement inteacutegreacutes de code Python sont nombreux des solutions proprieacutetaires agrave celles portant le

label GPL Ils sont de trois grandes cateacutegories

Les applications bureaux (Desktop)

Les consoles de commande en ligne

Les interfaces orienteacutees Web

Outils drsquoeacutelaboration de code Python (IDE)

28

Les environnements de deacuteveloppement inteacutegreacutes de code Python sont nombreux des solutions proprieacutetaires agrave celles portant le

label GPL Ils sont de trois grandes cateacutegories

Les applications bureaux (Desktop)

Les consoles de commande en ligne

Les interfaces orienteacutees Web

Outils drsquoeacutelaboration de code Python (IDE)

29

30

Nom de Symbole Les noms de variables en Python peuvent contenir des caractegraveres alphanumeacuteriques a-z A-Z 0-

9 et certains caractegraveres speacuteciaux tel que _ Les noms de variables normales doivent commencer par une lettre

Par convention les noms de variables commencent par une lettre minuscule et les noms de classe commencent par

une lettre majuscule En outre il y a un certain nombre de mots-cleacutes Python qui ne peuvent pas ecirctre utiliseacutes comme

noms de variables Ces mots-cleacutes sont les suivants

and as assert break class continue def del elif else except exec finally for from global if import in

is lambda not or pass print raise return try while with yield

Affectation assignment de variable

x = 10

my_variable = 122

type(x) fonction TYPE retourne le type de la variable entre parenthegravese

builtinsfloat

Verification de type x = 10

veacuterifier si la variable est reacuteelle

type(x) is float

isinstance(x float)

True

z = complex(x)

print(z type(z))

(1+0j) ltclass complexlsquogt

Base de repreacutesentation des donneacutees

31

Operateurs et comparaisons Opeacuterateurs arithmeacutetiques + - (division entiegravere) puissance

30 20

10

NB operators puissance en python nrsquoest pas ^ mais

2 2

4

Les opeacuterateurs de comparaison sont gtltgt=lt===

objects identiques

x1 = x2 = [12]

x1 is x2

True

2 gt= 2 2 lt= 2

(True True)

Chaines de caractegraveres les liste et les dictionnaires s = Hello world

type(s)

builtinsstr

length of the string the number of characters

len(s)

11

replace a substring in a string with somethign else

s2 = sreplace(world test)

print(s2)

Hello test

s[0]

H

Base de repreacutesentation des donneacutees

32

Chaines de caractegraveres les liste et les dictionnaires s = Hello worldldquo

replace a substring in a string with somethign else

s2 = sreplace(world test)

Hello test

print(s2)

s[05]

Hellolsquo

s[05]

Hellolsquo

s[]

Hello worldlsquo

print(value = f 10) Formatage C des variables

value = 1000000

s2 = value1 = 2f value2 = d (31415 15)

print(s2)

value1 = 314 value2 = 1

Listes l = [1234]

print(type(l))

print(l)

ltclass listgt

[1 2 3 4]

l = [1 a 10 1-1j] peuvent ecirctre heacuteteacuterogegravene

print(l)

[1 a 10 (1-1j)]

Base de repreacutesentation des donneacutees

33

Listes start = 10

stop = 30

step = 2

range(start stop step)

range(10 30 2)

list(range(start stop step))

[10 12 14 16 18 20 22 24 26 28]

s2 = list(s)

S2

[H e l l o w o r l d]

Tri de la liste

s2sort()

print(s2)

[ H d e l l l o o r w]

l = []

lappend(A)

lappend(d)

lappend(d)

print(l)

[A d d]

Tuples Ce sont des variables comme les listes mais pas alteacuterables

point = (10 20)

print(point type(point))

(10 20) ltclass tuplegt

Base de repreacutesentation des donneacutees

34

Tuples x y = point

print(x = x)

print(y = y)

x = 10

y = 20

Dictionaries params = parameter1 10 parameter2 20 parameter3 30

print(type(params))

print(params)

ltclass dictgt

fparameter2 20 parameter3 30 parameter1 10

params[parameter1] = A

params[parameter2] = B

Ajouter une nouvelle entreacutee

params[parameter4] = D

print(paramegravetre = + str(params[parameter1]))

print(paramegravetre = + str(params[parameter2]))

print(paramegravetre = + str(params[parameter3]))

print(paramegravetre = + str(params[parameter4]))

paramegravetre = A

paramegravetre = B

paramegravetre = 30

paramegravetre = D

Base de repreacutesentation des donneacutees

35

36

Affectation amp Controcircle conditionnel de flue statement1 = False Crsquoest une affectation

statement2 = False

if statement1 Test valideacute condition (statement1) est VRAIE

print(statement1 is True)

elif statement2 Exeacutecuteacutee condition (statement2) est VRAIE

print(statement2 is True)

else Exeacutecuteacutee sinon

print(statement1 and statement2 are False)

Boucles for x in [123] [123] peut ecirctre deacutesigneacute par range(3) avec print(x+1)

print(x)

1

2

3

for word in [scientific computing with python]

print(word) condition de reacutepeacutetition deacutependante du contenu de la liste

scientific

computing

with

python

l1 = [x2 for x in range(05)] agrave remarquer la compaciteacute du Python

print(l1)

[0 1 4 9 16]

Base de repreacutesentation des donneacutees

37

Boucles var = 0

while var = 1

print jlsquoeacutecris mon programme ici

choix = raw_input(voulez vous recommencer ( on ) )

if choix == n

var = 1

else

lsquovous allez ecirctre renvoyeacute au deacutebut du programmersquo

X = y 2

while x gt 1

If y x == 0

print y lsquo est facteur de rsquo x

break

x -= 1

else

print y lsquo est premierlsquo

Lrsquoutilisation de zip et map peut srsquoaveacutereacutee encore plus efficace

l1 = [1 2 3]

l2 = [4 5 6]

for (x y) in zip(l1 l2)

print x y -- x + y

1 4 -- 5

2 5 -- 7

3 6 -- 9

Base de repreacutesentation des donneacutees

38

s=0123456789

print map(int s)

[0 1 2 3 4 5 6 7 8 9]

Utilisation et

puissance de MAP

Utilisation de ZIP

Intervales range(start stop step)

range(5 10)

5 jusqursquoagrave 10 (exclue) avec un pas de 1

range(0 10 3)

0 3 6 9

range(-10 -100 -30)

-10 -40 -70

Test conditionnel binaire x = 5

y = 10

if x gt y

print(x est grand que y)

else

print(ldquox nrsquoest pas grand que yrdquo)

Dans Python on peut compliquer les chose

x = 5

y = 10

Z = 12

if z gt x gt y

print(lsquoy est petit que x et x est petit que z)

Base de repreacutesentation des donneacutees

39

Boucle avec test conditionnel binaire break continue et else dans une boucle for

for n in range(2 10)

for x in range(2 n)

if n x == 0

print(n lsquoest eacutegal agrave x nx)

break

else

print(n lsquoest premier)

Utilisation de lrsquoinstruction continue

for num in range(2 10)

if num 2 == 0 le symbole deacutesigne lrsquoopeacuteration RESTE de la division

print(ldquoNombre paire trouveacute num)

continue

print(ldquoNombre non premier num)

Base de repreacutesentation des donneacutees

40

Deacutefinition de fonction (proceacutedure avec retour) def fib(n) Ecrire la suite de Fibonacci jusqursquoagrave n

a b = 0 1

while a lt n

print(a end= )

a b = b a+b

print()

fib(2000)

0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597

f = fib deacutesignation par reacutefeacuterence f agrave la fonction fib

f(100)

0 1 1 2 3 5 8 13 21 34 55 89

autre type de deacutefinition de fonction

def ask_ok(prompt retries=4 complaint=Oui or Non srsquoil vou plait )

while True

ok = input(prompt)

if ok in (lsquoo lsquooui lsquoOui)

return True

if ok in (lsquon no non lsquoNon)

return False

retries = retries - 1

if retries lt 0

raise OSError(lsquoUtilisateur non coopeacuteratif)

print(complaint)

Base de repreacutesentation des donneacutees

41

Lrsquoinstruction lambda def make_incrementeur(n)

return lambda x x + n

f = make_incrementeur(42)

f(0)

42

f(1)

43

un autre cas drsquoutilisation

pairs = [(1 one) (2 two) (3 three) (4 four)]

pairssort(key=lambda pair pair[1])

pairs

[(4 four) (1 one) (3 three) (2 two)]

Les annotations dans une fonction Les annotations deacutefinissent des messages de preacutesentation

def f(chiken str eggs str = eggs) -gt str remarquer que la fonction est de type STR

print(Annotations f__annotations__)

print(Arguments chiken eggs)

return chiken + and + eggs

f(spam)

Annotations chiken ltclass strgt return ltclass strgt eggs ltclass strgt

Arguments spam eggs

spam and eggslsquo

Base de repreacutesentation des donneacutees

42

Les deacutecorateurs python Notre deacutecorateur

def decorate(func)

print uJe suis dans la fonction decorate et je deacutecore s func__name__

print uExeacutecution de la fonction s func__name__

return func

Fonction cible utiliseacutee avec DECORATOR

decorate

def foobar(args)

print join(args)

Exemple drsquoappel de la fonction

foobar(A B C D)

Je suis dans la fonction decorate et je deacutecore foobar

Exeacutecution de la fonction foobar

A B C D

Il est posible drsquoattribuer plusieurs deacutecorateurs agrave une seule fonction

decorateur1

decorateur2

def ma_fonction()

instructions

Base de repreacutesentation des donneacutees

43

Manipulation des listes a = [6625 333 333 1 12345]

print(acount(333) acount(6625) acount(x))

2 1 0

ainsert(2 -1)

aappend(333)

a

[6625 333 -1 333 1 12345 333]

aindex(333)

1

aremove(333)

a

[6625 -1 333 1 12345 333]

areverse()

a

[333 12345 1 333 -1 6625]

asort()

a

[-1 1 6625 333 333 12345]

apop()

12345

a

[-1 1 6625 333 333]

Base de repreacutesentation des donneacutees

44

Puissance du langage Python Lrsquoensemble des lignes suiantes peut ecirctre compacteacute par ce qui suit

combs = []

for x in [123]

for y in [314]

if x = y

combsappend((x y))

Combs

Ou bien

[(x y) for x in [123] for y in [314] if x = y]

Donne le mecircme reacutesultat

[(1 3) (1 4) (2 3) (2 1) (2 4) (3 1) (3 4)]

Calcul de la valeur de PI arrondie

from math import pi

[str(round(pi i)) for i in range(1 6)]

[31 314 3142 31416 314159]

Geacuteneacuterateur avec utilisation de YIELD

def generateur()

yield a

yield b

yield cldquo

i=generateur()

for v in i

print v

a

b

c

Base de repreacutesentation des donneacutees

45

Les expressions reacuteguliegraveres en python Les expressions reacuteguliegravere sont utiliseacutees pour veacuterifier la conformiteacute des expressions de

chaines de caractegraveres par rapport agrave un motif Les symboles suivants sont utiliseacutes

^ $ + [ ] | ( )

Le point correspond agrave nimporte quel caractegravere

^ Indique un commencement de segment mais signifie aussi contraire de

$ Fin de segment

[xy] Une liste de segment possible Exemple [abc] eacutequivaut agrave a b ou c

(x|y) Indique un choix multiple type (ps|ump) eacutequivaut agrave ps OU UMP

d le segment est composeacute uniquement de chiffre ce qui eacutequivaut agrave [0-9]

D le segment nest pas composeacute de chiffre ce qui eacutequivaut agrave [^0-9]

s Un espace ce qui eacutequivaut agrave [ tnrfv]

S Pas despace ce qui eacutequivaut agrave [^ tnrfv]

w Preacutesence alphanumeacuterique ce qui eacutequivaut agrave [a-zA-Z0-9_]

W Pas de preacutesence alphanumeacuterique [^a-zA-Z0-9_]

Est un caractegravere deacutechappement T2 Le T soit reacutepeacuteteacute 2 fois

TA19 La seacutequence TA doit ecirctre preacutesente de 1 agrave 9 fois

TAM10 La seacutequence TAM nrsquoexiste pas ou reacutepeacuteteacutee 10 fois

LI1 La seacutequence LI doit ecirctre reacutepeacuteteacutee au moins une fois

Base de repreacutesentation des donneacutees

46

Les expressions reacuteguliegraveres en python Utilisation des expressions reacuteguliegravere

import re

print rematch(rGR()S GRIS)

lt_sreSRE_Match object at 0x02019DE0gt

Une utilisation freacutequente consiste en la validation des valeurs des emails saisis

Utilisation des expressions reacuteguliegravere

import re

mails = [lsquomtamaligmailcomrsquorsquoutmbuniv-bechardzrsquo lsquo8freefrrsquo lsquouniv-bechardzrsquo lsquotamalicdtarsquo]

regex = recompile(rrsquo^[a-z0-9_-]+[a-z0-9_-]+[(com|fr|dz)]+rsquo

for mail in mails

if regexmatch(mail) is not None

print Ce mail s est valide mail

else

print Erreur ce mail s est non valide mail

Ce mail mtamaligmailcom est valide

Ce mail utmbuniv-bechardz est valide

Ce mail 8freefr est valide

Erreur ce mail univ-bechardz est non valide

Erreur ce mail tamalicdta est non valide

Base de repreacutesentation des donneacutees

47

Les fichiers Creacuteer lire et eacutecrire dans un fichier en python Utilisation des expressions reacuteguliegravere

fichier = open(donneestxt r)

print fichier

ltopen file lsquodonneestxt mode r at 0x7ff6cf3fe4b0gt

Le descripteur permet de renseigner la machine sur la maniegravere avec laquelle le fichier est utiliseacute

r pour ouverture en mode READ

w pour ouverture en mode WRITE chaque fois le contenu du fichier est eacutecraseacute sinon python le creacutee

a pour ajout lsquoAPPENDrsquo Si le fichier nexiste pas python le creacutee

b Ouverture en mode Binaire

t Ouverture en mode Texte

x creacutee un nouveau fichier et louvrir pour eacutecriture

proceacutedure geacuteneacuterale pour lrsquoutilisation drsquoun fichier

fichier = open(lsquodonneestxtrsquo r)

print fichierread()

fichierclose()

Lrsquoinstruction WITH peut ecirctre utiliseacutee sans besoin de la fonction CLOSE

with open(datatxt r) as fichier

print fichierread()

Base de repreacutesentation des donneacutees

48

49

Le langage Python est un langage script interpreacuteteacute Le programme portant lrsquoune des extension py pyw ou pwc est

structureacute selon le canevas suivant

Les codifications

usrbinpython27

--codingencodage -

Les imports des librairies

Les instructions

Le langage Python passe pour ecirctre exeacutecuteacute sur deux eacutetapes la premiegravere UNE PRECOMPILATION geacuteneacuteration du code

machine et finalement un eacutecriture en code machine exeacutecutable (selon la machine)

Lrsquoenvironnement drsquoexeacutecution des scripts eacutecrits en Python regroupe les avantages des TRADUCTEURS (travaille en ligne par

ligne) et les COMPILATEURS (puissance de la structure algorithmique)

La bibliothegraveque cx_Freeze sert agrave transformer les fichiers scripts Pyhon py en exeacutecutable exe

Structures algorithmique du python

50

51

Matrices amp Systegravemes lineacuteaires

52

53

54

55

56

57

Le calcul scientifique

Reacutefeacuterences L-V Bertallanfy lsquoGeneral System Theoryrsquo Edition MASSON 1972

58

Page 24: Chap XIII : calcul scientifique avec python

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D (Python CAD FreeCAD)

Bioinformatique et manipulation du geacutenome

POO avec Python (Programmation

Orienteacutee Objet) Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

class Rocket()

Rocket simule une roquette pour un jeu

ou une simulation de physique

def __init__(self)

Each rocket has an (xy) position

selfx = 0

selfy = 0

def move_up(self)

Increacutementation de la position y de la roquette

selfy += 1

Deacutefinir une ensemble de 5 roquettes les stocker dans une liste

my_rockets = []

for x in range(05)

new_rocket = Rocket()

my_rocketsappend(new_rocket)

A remarquer que chaque roquette est un objet agrave part entiegravere

for rocket in my_rockets

print(rocket)

Deacutefinition drsquoune

nouvelle Classe

Instantiation

Meacutethode Constructeur

__init__

24

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D (Python CAD FreeCAD)

Bioinformatique et manipulation

du geacutenome Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

25

from Bio import SeqIO

for seq_record in SeqIOparse(ls_orchidgbk genbank)

print(seq_recordid)

print(repr(seq_recordseq))

print(len(seq_record))

Z785331

Seq(CGTAACAAGGTTTCCGTAGGTGAACCTGCGGAAGGATCATTGATGAGACCGTGGCGC

IUPACAmbiguousDNA())

740

Z784391

Seq(CATTGTTGAGATCACATAATAATTGATCGAGTTAATCTGGAGGATCTGTTTACTGCC

IUPACAmbiguousDNA())

592

Sinon dans une Terminal Python

gtgtgt from BioSeq import Seq

gtgtgt from BioAlphabet import generic_dna

gtgtgt gene = Seq(GTGAAAAAGATGCAATCTATCGTACTCGCACTTTCCCTGGTTCTGGTCGCTCCCATGGCA +

GCACAGGCTGCGGAAATTACGTTAGTCCCGTCAGTAAAATTACAGATAGGCGATCGTGAT +

AATCGTGGCTATTACTGGGATGGAGGTCACTGGCGCGACCACGGCTGGTGGAAACAACAT +

TATGAATGGCGAGGCAATCGCTGGCACCTACACGGACCGCCGCCACCGCCGCGCCACCAT +

AAGAAAGCTCCTCATGATCATCACGGCGGTCATGGTCCAGGCAAACATCACCGCTAA

generic_dna)

gtgtgt genetranslate(table=Bacterial)

Seq(VKKMQSIVLALSLVLVAPMAAQAAEITLVPSVKLQIGDRDNRGYYWDGGHWRDHHR

HasStopCodon(ExtendedIUPACProtein() )

gtgtgt genetranslate(table=Bacterial to_stop=True)

Seq(VKKMQSIVLALSLVLVAPMAAQAAEITLVPSVKLQIGDRDNRGYYWDGGHWRDHHHR

ExtendedIUPACProtein())

Logo de

BioPython Seacutequence drsquoADN

Importation

librairie BIO

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D (Python CAD FreeCAD)

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

26

Installer agrave partir de PyPI

$ pip install mezzanine

Instantier un projet

$ mezzanine-project monproject

$ cd monproject

Instantier une Base de donneacutees

$ python managepy createdb

Lancer le serveur Web

$ python managepy runserver

Installation en mode

commande

URL du site instantieacute

Version Mobile Menu

Version Administration

Sites Web fait avec

Mezzanine

Version Normal

Les environnements de deacuteveloppement inteacutegreacutes de code Python sont nombreux des solutions proprieacutetaires agrave celles portant le

label GPL

Ils sont de trois grandes cateacutegories

Les applications bureaux (Desktop)

Les consoles de commande en ligne Les interfaces orienteacutees Web

Outils drsquoeacutelaboration de code Python (IDE)

27

Les environnements de deacuteveloppement inteacutegreacutes de code Python sont nombreux des solutions proprieacutetaires agrave celles portant le

label GPL Ils sont de trois grandes cateacutegories

Les applications bureaux (Desktop)

Les consoles de commande en ligne

Les interfaces orienteacutees Web

Outils drsquoeacutelaboration de code Python (IDE)

28

Les environnements de deacuteveloppement inteacutegreacutes de code Python sont nombreux des solutions proprieacutetaires agrave celles portant le

label GPL Ils sont de trois grandes cateacutegories

Les applications bureaux (Desktop)

Les consoles de commande en ligne

Les interfaces orienteacutees Web

Outils drsquoeacutelaboration de code Python (IDE)

29

30

Nom de Symbole Les noms de variables en Python peuvent contenir des caractegraveres alphanumeacuteriques a-z A-Z 0-

9 et certains caractegraveres speacuteciaux tel que _ Les noms de variables normales doivent commencer par une lettre

Par convention les noms de variables commencent par une lettre minuscule et les noms de classe commencent par

une lettre majuscule En outre il y a un certain nombre de mots-cleacutes Python qui ne peuvent pas ecirctre utiliseacutes comme

noms de variables Ces mots-cleacutes sont les suivants

and as assert break class continue def del elif else except exec finally for from global if import in

is lambda not or pass print raise return try while with yield

Affectation assignment de variable

x = 10

my_variable = 122

type(x) fonction TYPE retourne le type de la variable entre parenthegravese

builtinsfloat

Verification de type x = 10

veacuterifier si la variable est reacuteelle

type(x) is float

isinstance(x float)

True

z = complex(x)

print(z type(z))

(1+0j) ltclass complexlsquogt

Base de repreacutesentation des donneacutees

31

Operateurs et comparaisons Opeacuterateurs arithmeacutetiques + - (division entiegravere) puissance

30 20

10

NB operators puissance en python nrsquoest pas ^ mais

2 2

4

Les opeacuterateurs de comparaison sont gtltgt=lt===

objects identiques

x1 = x2 = [12]

x1 is x2

True

2 gt= 2 2 lt= 2

(True True)

Chaines de caractegraveres les liste et les dictionnaires s = Hello world

type(s)

builtinsstr

length of the string the number of characters

len(s)

11

replace a substring in a string with somethign else

s2 = sreplace(world test)

print(s2)

Hello test

s[0]

H

Base de repreacutesentation des donneacutees

32

Chaines de caractegraveres les liste et les dictionnaires s = Hello worldldquo

replace a substring in a string with somethign else

s2 = sreplace(world test)

Hello test

print(s2)

s[05]

Hellolsquo

s[05]

Hellolsquo

s[]

Hello worldlsquo

print(value = f 10) Formatage C des variables

value = 1000000

s2 = value1 = 2f value2 = d (31415 15)

print(s2)

value1 = 314 value2 = 1

Listes l = [1234]

print(type(l))

print(l)

ltclass listgt

[1 2 3 4]

l = [1 a 10 1-1j] peuvent ecirctre heacuteteacuterogegravene

print(l)

[1 a 10 (1-1j)]

Base de repreacutesentation des donneacutees

33

Listes start = 10

stop = 30

step = 2

range(start stop step)

range(10 30 2)

list(range(start stop step))

[10 12 14 16 18 20 22 24 26 28]

s2 = list(s)

S2

[H e l l o w o r l d]

Tri de la liste

s2sort()

print(s2)

[ H d e l l l o o r w]

l = []

lappend(A)

lappend(d)

lappend(d)

print(l)

[A d d]

Tuples Ce sont des variables comme les listes mais pas alteacuterables

point = (10 20)

print(point type(point))

(10 20) ltclass tuplegt

Base de repreacutesentation des donneacutees

34

Tuples x y = point

print(x = x)

print(y = y)

x = 10

y = 20

Dictionaries params = parameter1 10 parameter2 20 parameter3 30

print(type(params))

print(params)

ltclass dictgt

fparameter2 20 parameter3 30 parameter1 10

params[parameter1] = A

params[parameter2] = B

Ajouter une nouvelle entreacutee

params[parameter4] = D

print(paramegravetre = + str(params[parameter1]))

print(paramegravetre = + str(params[parameter2]))

print(paramegravetre = + str(params[parameter3]))

print(paramegravetre = + str(params[parameter4]))

paramegravetre = A

paramegravetre = B

paramegravetre = 30

paramegravetre = D

Base de repreacutesentation des donneacutees

35

36

Affectation amp Controcircle conditionnel de flue statement1 = False Crsquoest une affectation

statement2 = False

if statement1 Test valideacute condition (statement1) est VRAIE

print(statement1 is True)

elif statement2 Exeacutecuteacutee condition (statement2) est VRAIE

print(statement2 is True)

else Exeacutecuteacutee sinon

print(statement1 and statement2 are False)

Boucles for x in [123] [123] peut ecirctre deacutesigneacute par range(3) avec print(x+1)

print(x)

1

2

3

for word in [scientific computing with python]

print(word) condition de reacutepeacutetition deacutependante du contenu de la liste

scientific

computing

with

python

l1 = [x2 for x in range(05)] agrave remarquer la compaciteacute du Python

print(l1)

[0 1 4 9 16]

Base de repreacutesentation des donneacutees

37

Boucles var = 0

while var = 1

print jlsquoeacutecris mon programme ici

choix = raw_input(voulez vous recommencer ( on ) )

if choix == n

var = 1

else

lsquovous allez ecirctre renvoyeacute au deacutebut du programmersquo

X = y 2

while x gt 1

If y x == 0

print y lsquo est facteur de rsquo x

break

x -= 1

else

print y lsquo est premierlsquo

Lrsquoutilisation de zip et map peut srsquoaveacutereacutee encore plus efficace

l1 = [1 2 3]

l2 = [4 5 6]

for (x y) in zip(l1 l2)

print x y -- x + y

1 4 -- 5

2 5 -- 7

3 6 -- 9

Base de repreacutesentation des donneacutees

38

s=0123456789

print map(int s)

[0 1 2 3 4 5 6 7 8 9]

Utilisation et

puissance de MAP

Utilisation de ZIP

Intervales range(start stop step)

range(5 10)

5 jusqursquoagrave 10 (exclue) avec un pas de 1

range(0 10 3)

0 3 6 9

range(-10 -100 -30)

-10 -40 -70

Test conditionnel binaire x = 5

y = 10

if x gt y

print(x est grand que y)

else

print(ldquox nrsquoest pas grand que yrdquo)

Dans Python on peut compliquer les chose

x = 5

y = 10

Z = 12

if z gt x gt y

print(lsquoy est petit que x et x est petit que z)

Base de repreacutesentation des donneacutees

39

Boucle avec test conditionnel binaire break continue et else dans une boucle for

for n in range(2 10)

for x in range(2 n)

if n x == 0

print(n lsquoest eacutegal agrave x nx)

break

else

print(n lsquoest premier)

Utilisation de lrsquoinstruction continue

for num in range(2 10)

if num 2 == 0 le symbole deacutesigne lrsquoopeacuteration RESTE de la division

print(ldquoNombre paire trouveacute num)

continue

print(ldquoNombre non premier num)

Base de repreacutesentation des donneacutees

40

Deacutefinition de fonction (proceacutedure avec retour) def fib(n) Ecrire la suite de Fibonacci jusqursquoagrave n

a b = 0 1

while a lt n

print(a end= )

a b = b a+b

print()

fib(2000)

0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597

f = fib deacutesignation par reacutefeacuterence f agrave la fonction fib

f(100)

0 1 1 2 3 5 8 13 21 34 55 89

autre type de deacutefinition de fonction

def ask_ok(prompt retries=4 complaint=Oui or Non srsquoil vou plait )

while True

ok = input(prompt)

if ok in (lsquoo lsquooui lsquoOui)

return True

if ok in (lsquon no non lsquoNon)

return False

retries = retries - 1

if retries lt 0

raise OSError(lsquoUtilisateur non coopeacuteratif)

print(complaint)

Base de repreacutesentation des donneacutees

41

Lrsquoinstruction lambda def make_incrementeur(n)

return lambda x x + n

f = make_incrementeur(42)

f(0)

42

f(1)

43

un autre cas drsquoutilisation

pairs = [(1 one) (2 two) (3 three) (4 four)]

pairssort(key=lambda pair pair[1])

pairs

[(4 four) (1 one) (3 three) (2 two)]

Les annotations dans une fonction Les annotations deacutefinissent des messages de preacutesentation

def f(chiken str eggs str = eggs) -gt str remarquer que la fonction est de type STR

print(Annotations f__annotations__)

print(Arguments chiken eggs)

return chiken + and + eggs

f(spam)

Annotations chiken ltclass strgt return ltclass strgt eggs ltclass strgt

Arguments spam eggs

spam and eggslsquo

Base de repreacutesentation des donneacutees

42

Les deacutecorateurs python Notre deacutecorateur

def decorate(func)

print uJe suis dans la fonction decorate et je deacutecore s func__name__

print uExeacutecution de la fonction s func__name__

return func

Fonction cible utiliseacutee avec DECORATOR

decorate

def foobar(args)

print join(args)

Exemple drsquoappel de la fonction

foobar(A B C D)

Je suis dans la fonction decorate et je deacutecore foobar

Exeacutecution de la fonction foobar

A B C D

Il est posible drsquoattribuer plusieurs deacutecorateurs agrave une seule fonction

decorateur1

decorateur2

def ma_fonction()

instructions

Base de repreacutesentation des donneacutees

43

Manipulation des listes a = [6625 333 333 1 12345]

print(acount(333) acount(6625) acount(x))

2 1 0

ainsert(2 -1)

aappend(333)

a

[6625 333 -1 333 1 12345 333]

aindex(333)

1

aremove(333)

a

[6625 -1 333 1 12345 333]

areverse()

a

[333 12345 1 333 -1 6625]

asort()

a

[-1 1 6625 333 333 12345]

apop()

12345

a

[-1 1 6625 333 333]

Base de repreacutesentation des donneacutees

44

Puissance du langage Python Lrsquoensemble des lignes suiantes peut ecirctre compacteacute par ce qui suit

combs = []

for x in [123]

for y in [314]

if x = y

combsappend((x y))

Combs

Ou bien

[(x y) for x in [123] for y in [314] if x = y]

Donne le mecircme reacutesultat

[(1 3) (1 4) (2 3) (2 1) (2 4) (3 1) (3 4)]

Calcul de la valeur de PI arrondie

from math import pi

[str(round(pi i)) for i in range(1 6)]

[31 314 3142 31416 314159]

Geacuteneacuterateur avec utilisation de YIELD

def generateur()

yield a

yield b

yield cldquo

i=generateur()

for v in i

print v

a

b

c

Base de repreacutesentation des donneacutees

45

Les expressions reacuteguliegraveres en python Les expressions reacuteguliegravere sont utiliseacutees pour veacuterifier la conformiteacute des expressions de

chaines de caractegraveres par rapport agrave un motif Les symboles suivants sont utiliseacutes

^ $ + [ ] | ( )

Le point correspond agrave nimporte quel caractegravere

^ Indique un commencement de segment mais signifie aussi contraire de

$ Fin de segment

[xy] Une liste de segment possible Exemple [abc] eacutequivaut agrave a b ou c

(x|y) Indique un choix multiple type (ps|ump) eacutequivaut agrave ps OU UMP

d le segment est composeacute uniquement de chiffre ce qui eacutequivaut agrave [0-9]

D le segment nest pas composeacute de chiffre ce qui eacutequivaut agrave [^0-9]

s Un espace ce qui eacutequivaut agrave [ tnrfv]

S Pas despace ce qui eacutequivaut agrave [^ tnrfv]

w Preacutesence alphanumeacuterique ce qui eacutequivaut agrave [a-zA-Z0-9_]

W Pas de preacutesence alphanumeacuterique [^a-zA-Z0-9_]

Est un caractegravere deacutechappement T2 Le T soit reacutepeacuteteacute 2 fois

TA19 La seacutequence TA doit ecirctre preacutesente de 1 agrave 9 fois

TAM10 La seacutequence TAM nrsquoexiste pas ou reacutepeacuteteacutee 10 fois

LI1 La seacutequence LI doit ecirctre reacutepeacuteteacutee au moins une fois

Base de repreacutesentation des donneacutees

46

Les expressions reacuteguliegraveres en python Utilisation des expressions reacuteguliegravere

import re

print rematch(rGR()S GRIS)

lt_sreSRE_Match object at 0x02019DE0gt

Une utilisation freacutequente consiste en la validation des valeurs des emails saisis

Utilisation des expressions reacuteguliegravere

import re

mails = [lsquomtamaligmailcomrsquorsquoutmbuniv-bechardzrsquo lsquo8freefrrsquo lsquouniv-bechardzrsquo lsquotamalicdtarsquo]

regex = recompile(rrsquo^[a-z0-9_-]+[a-z0-9_-]+[(com|fr|dz)]+rsquo

for mail in mails

if regexmatch(mail) is not None

print Ce mail s est valide mail

else

print Erreur ce mail s est non valide mail

Ce mail mtamaligmailcom est valide

Ce mail utmbuniv-bechardz est valide

Ce mail 8freefr est valide

Erreur ce mail univ-bechardz est non valide

Erreur ce mail tamalicdta est non valide

Base de repreacutesentation des donneacutees

47

Les fichiers Creacuteer lire et eacutecrire dans un fichier en python Utilisation des expressions reacuteguliegravere

fichier = open(donneestxt r)

print fichier

ltopen file lsquodonneestxt mode r at 0x7ff6cf3fe4b0gt

Le descripteur permet de renseigner la machine sur la maniegravere avec laquelle le fichier est utiliseacute

r pour ouverture en mode READ

w pour ouverture en mode WRITE chaque fois le contenu du fichier est eacutecraseacute sinon python le creacutee

a pour ajout lsquoAPPENDrsquo Si le fichier nexiste pas python le creacutee

b Ouverture en mode Binaire

t Ouverture en mode Texte

x creacutee un nouveau fichier et louvrir pour eacutecriture

proceacutedure geacuteneacuterale pour lrsquoutilisation drsquoun fichier

fichier = open(lsquodonneestxtrsquo r)

print fichierread()

fichierclose()

Lrsquoinstruction WITH peut ecirctre utiliseacutee sans besoin de la fonction CLOSE

with open(datatxt r) as fichier

print fichierread()

Base de repreacutesentation des donneacutees

48

49

Le langage Python est un langage script interpreacuteteacute Le programme portant lrsquoune des extension py pyw ou pwc est

structureacute selon le canevas suivant

Les codifications

usrbinpython27

--codingencodage -

Les imports des librairies

Les instructions

Le langage Python passe pour ecirctre exeacutecuteacute sur deux eacutetapes la premiegravere UNE PRECOMPILATION geacuteneacuteration du code

machine et finalement un eacutecriture en code machine exeacutecutable (selon la machine)

Lrsquoenvironnement drsquoexeacutecution des scripts eacutecrits en Python regroupe les avantages des TRADUCTEURS (travaille en ligne par

ligne) et les COMPILATEURS (puissance de la structure algorithmique)

La bibliothegraveque cx_Freeze sert agrave transformer les fichiers scripts Pyhon py en exeacutecutable exe

Structures algorithmique du python

50

51

Matrices amp Systegravemes lineacuteaires

52

53

54

55

56

57

Le calcul scientifique

Reacutefeacuterences L-V Bertallanfy lsquoGeneral System Theoryrsquo Edition MASSON 1972

58

Page 25: Chap XIII : calcul scientifique avec python

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D (Python CAD FreeCAD)

Bioinformatique et manipulation

du geacutenome Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

25

from Bio import SeqIO

for seq_record in SeqIOparse(ls_orchidgbk genbank)

print(seq_recordid)

print(repr(seq_recordseq))

print(len(seq_record))

Z785331

Seq(CGTAACAAGGTTTCCGTAGGTGAACCTGCGGAAGGATCATTGATGAGACCGTGGCGC

IUPACAmbiguousDNA())

740

Z784391

Seq(CATTGTTGAGATCACATAATAATTGATCGAGTTAATCTGGAGGATCTGTTTACTGCC

IUPACAmbiguousDNA())

592

Sinon dans une Terminal Python

gtgtgt from BioSeq import Seq

gtgtgt from BioAlphabet import generic_dna

gtgtgt gene = Seq(GTGAAAAAGATGCAATCTATCGTACTCGCACTTTCCCTGGTTCTGGTCGCTCCCATGGCA +

GCACAGGCTGCGGAAATTACGTTAGTCCCGTCAGTAAAATTACAGATAGGCGATCGTGAT +

AATCGTGGCTATTACTGGGATGGAGGTCACTGGCGCGACCACGGCTGGTGGAAACAACAT +

TATGAATGGCGAGGCAATCGCTGGCACCTACACGGACCGCCGCCACCGCCGCGCCACCAT +

AAGAAAGCTCCTCATGATCATCACGGCGGTCATGGTCCAGGCAAACATCACCGCTAA

generic_dna)

gtgtgt genetranslate(table=Bacterial)

Seq(VKKMQSIVLALSLVLVAPMAAQAAEITLVPSVKLQIGDRDNRGYYWDGGHWRDHHR

HasStopCodon(ExtendedIUPACProtein() )

gtgtgt genetranslate(table=Bacterial to_stop=True)

Seq(VKKMQSIVLALSLVLVAPMAAQAAEITLVPSVKLQIGDRDNRGYYWDGGHWRDHHHR

ExtendedIUPACProtein())

Logo de

BioPython Seacutequence drsquoADN

Importation

librairie BIO

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D (Python CAD FreeCAD)

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

26

Installer agrave partir de PyPI

$ pip install mezzanine

Instantier un projet

$ mezzanine-project monproject

$ cd monproject

Instantier une Base de donneacutees

$ python managepy createdb

Lancer le serveur Web

$ python managepy runserver

Installation en mode

commande

URL du site instantieacute

Version Mobile Menu

Version Administration

Sites Web fait avec

Mezzanine

Version Normal

Les environnements de deacuteveloppement inteacutegreacutes de code Python sont nombreux des solutions proprieacutetaires agrave celles portant le

label GPL

Ils sont de trois grandes cateacutegories

Les applications bureaux (Desktop)

Les consoles de commande en ligne Les interfaces orienteacutees Web

Outils drsquoeacutelaboration de code Python (IDE)

27

Les environnements de deacuteveloppement inteacutegreacutes de code Python sont nombreux des solutions proprieacutetaires agrave celles portant le

label GPL Ils sont de trois grandes cateacutegories

Les applications bureaux (Desktop)

Les consoles de commande en ligne

Les interfaces orienteacutees Web

Outils drsquoeacutelaboration de code Python (IDE)

28

Les environnements de deacuteveloppement inteacutegreacutes de code Python sont nombreux des solutions proprieacutetaires agrave celles portant le

label GPL Ils sont de trois grandes cateacutegories

Les applications bureaux (Desktop)

Les consoles de commande en ligne

Les interfaces orienteacutees Web

Outils drsquoeacutelaboration de code Python (IDE)

29

30

Nom de Symbole Les noms de variables en Python peuvent contenir des caractegraveres alphanumeacuteriques a-z A-Z 0-

9 et certains caractegraveres speacuteciaux tel que _ Les noms de variables normales doivent commencer par une lettre

Par convention les noms de variables commencent par une lettre minuscule et les noms de classe commencent par

une lettre majuscule En outre il y a un certain nombre de mots-cleacutes Python qui ne peuvent pas ecirctre utiliseacutes comme

noms de variables Ces mots-cleacutes sont les suivants

and as assert break class continue def del elif else except exec finally for from global if import in

is lambda not or pass print raise return try while with yield

Affectation assignment de variable

x = 10

my_variable = 122

type(x) fonction TYPE retourne le type de la variable entre parenthegravese

builtinsfloat

Verification de type x = 10

veacuterifier si la variable est reacuteelle

type(x) is float

isinstance(x float)

True

z = complex(x)

print(z type(z))

(1+0j) ltclass complexlsquogt

Base de repreacutesentation des donneacutees

31

Operateurs et comparaisons Opeacuterateurs arithmeacutetiques + - (division entiegravere) puissance

30 20

10

NB operators puissance en python nrsquoest pas ^ mais

2 2

4

Les opeacuterateurs de comparaison sont gtltgt=lt===

objects identiques

x1 = x2 = [12]

x1 is x2

True

2 gt= 2 2 lt= 2

(True True)

Chaines de caractegraveres les liste et les dictionnaires s = Hello world

type(s)

builtinsstr

length of the string the number of characters

len(s)

11

replace a substring in a string with somethign else

s2 = sreplace(world test)

print(s2)

Hello test

s[0]

H

Base de repreacutesentation des donneacutees

32

Chaines de caractegraveres les liste et les dictionnaires s = Hello worldldquo

replace a substring in a string with somethign else

s2 = sreplace(world test)

Hello test

print(s2)

s[05]

Hellolsquo

s[05]

Hellolsquo

s[]

Hello worldlsquo

print(value = f 10) Formatage C des variables

value = 1000000

s2 = value1 = 2f value2 = d (31415 15)

print(s2)

value1 = 314 value2 = 1

Listes l = [1234]

print(type(l))

print(l)

ltclass listgt

[1 2 3 4]

l = [1 a 10 1-1j] peuvent ecirctre heacuteteacuterogegravene

print(l)

[1 a 10 (1-1j)]

Base de repreacutesentation des donneacutees

33

Listes start = 10

stop = 30

step = 2

range(start stop step)

range(10 30 2)

list(range(start stop step))

[10 12 14 16 18 20 22 24 26 28]

s2 = list(s)

S2

[H e l l o w o r l d]

Tri de la liste

s2sort()

print(s2)

[ H d e l l l o o r w]

l = []

lappend(A)

lappend(d)

lappend(d)

print(l)

[A d d]

Tuples Ce sont des variables comme les listes mais pas alteacuterables

point = (10 20)

print(point type(point))

(10 20) ltclass tuplegt

Base de repreacutesentation des donneacutees

34

Tuples x y = point

print(x = x)

print(y = y)

x = 10

y = 20

Dictionaries params = parameter1 10 parameter2 20 parameter3 30

print(type(params))

print(params)

ltclass dictgt

fparameter2 20 parameter3 30 parameter1 10

params[parameter1] = A

params[parameter2] = B

Ajouter une nouvelle entreacutee

params[parameter4] = D

print(paramegravetre = + str(params[parameter1]))

print(paramegravetre = + str(params[parameter2]))

print(paramegravetre = + str(params[parameter3]))

print(paramegravetre = + str(params[parameter4]))

paramegravetre = A

paramegravetre = B

paramegravetre = 30

paramegravetre = D

Base de repreacutesentation des donneacutees

35

36

Affectation amp Controcircle conditionnel de flue statement1 = False Crsquoest une affectation

statement2 = False

if statement1 Test valideacute condition (statement1) est VRAIE

print(statement1 is True)

elif statement2 Exeacutecuteacutee condition (statement2) est VRAIE

print(statement2 is True)

else Exeacutecuteacutee sinon

print(statement1 and statement2 are False)

Boucles for x in [123] [123] peut ecirctre deacutesigneacute par range(3) avec print(x+1)

print(x)

1

2

3

for word in [scientific computing with python]

print(word) condition de reacutepeacutetition deacutependante du contenu de la liste

scientific

computing

with

python

l1 = [x2 for x in range(05)] agrave remarquer la compaciteacute du Python

print(l1)

[0 1 4 9 16]

Base de repreacutesentation des donneacutees

37

Boucles var = 0

while var = 1

print jlsquoeacutecris mon programme ici

choix = raw_input(voulez vous recommencer ( on ) )

if choix == n

var = 1

else

lsquovous allez ecirctre renvoyeacute au deacutebut du programmersquo

X = y 2

while x gt 1

If y x == 0

print y lsquo est facteur de rsquo x

break

x -= 1

else

print y lsquo est premierlsquo

Lrsquoutilisation de zip et map peut srsquoaveacutereacutee encore plus efficace

l1 = [1 2 3]

l2 = [4 5 6]

for (x y) in zip(l1 l2)

print x y -- x + y

1 4 -- 5

2 5 -- 7

3 6 -- 9

Base de repreacutesentation des donneacutees

38

s=0123456789

print map(int s)

[0 1 2 3 4 5 6 7 8 9]

Utilisation et

puissance de MAP

Utilisation de ZIP

Intervales range(start stop step)

range(5 10)

5 jusqursquoagrave 10 (exclue) avec un pas de 1

range(0 10 3)

0 3 6 9

range(-10 -100 -30)

-10 -40 -70

Test conditionnel binaire x = 5

y = 10

if x gt y

print(x est grand que y)

else

print(ldquox nrsquoest pas grand que yrdquo)

Dans Python on peut compliquer les chose

x = 5

y = 10

Z = 12

if z gt x gt y

print(lsquoy est petit que x et x est petit que z)

Base de repreacutesentation des donneacutees

39

Boucle avec test conditionnel binaire break continue et else dans une boucle for

for n in range(2 10)

for x in range(2 n)

if n x == 0

print(n lsquoest eacutegal agrave x nx)

break

else

print(n lsquoest premier)

Utilisation de lrsquoinstruction continue

for num in range(2 10)

if num 2 == 0 le symbole deacutesigne lrsquoopeacuteration RESTE de la division

print(ldquoNombre paire trouveacute num)

continue

print(ldquoNombre non premier num)

Base de repreacutesentation des donneacutees

40

Deacutefinition de fonction (proceacutedure avec retour) def fib(n) Ecrire la suite de Fibonacci jusqursquoagrave n

a b = 0 1

while a lt n

print(a end= )

a b = b a+b

print()

fib(2000)

0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597

f = fib deacutesignation par reacutefeacuterence f agrave la fonction fib

f(100)

0 1 1 2 3 5 8 13 21 34 55 89

autre type de deacutefinition de fonction

def ask_ok(prompt retries=4 complaint=Oui or Non srsquoil vou plait )

while True

ok = input(prompt)

if ok in (lsquoo lsquooui lsquoOui)

return True

if ok in (lsquon no non lsquoNon)

return False

retries = retries - 1

if retries lt 0

raise OSError(lsquoUtilisateur non coopeacuteratif)

print(complaint)

Base de repreacutesentation des donneacutees

41

Lrsquoinstruction lambda def make_incrementeur(n)

return lambda x x + n

f = make_incrementeur(42)

f(0)

42

f(1)

43

un autre cas drsquoutilisation

pairs = [(1 one) (2 two) (3 three) (4 four)]

pairssort(key=lambda pair pair[1])

pairs

[(4 four) (1 one) (3 three) (2 two)]

Les annotations dans une fonction Les annotations deacutefinissent des messages de preacutesentation

def f(chiken str eggs str = eggs) -gt str remarquer que la fonction est de type STR

print(Annotations f__annotations__)

print(Arguments chiken eggs)

return chiken + and + eggs

f(spam)

Annotations chiken ltclass strgt return ltclass strgt eggs ltclass strgt

Arguments spam eggs

spam and eggslsquo

Base de repreacutesentation des donneacutees

42

Les deacutecorateurs python Notre deacutecorateur

def decorate(func)

print uJe suis dans la fonction decorate et je deacutecore s func__name__

print uExeacutecution de la fonction s func__name__

return func

Fonction cible utiliseacutee avec DECORATOR

decorate

def foobar(args)

print join(args)

Exemple drsquoappel de la fonction

foobar(A B C D)

Je suis dans la fonction decorate et je deacutecore foobar

Exeacutecution de la fonction foobar

A B C D

Il est posible drsquoattribuer plusieurs deacutecorateurs agrave une seule fonction

decorateur1

decorateur2

def ma_fonction()

instructions

Base de repreacutesentation des donneacutees

43

Manipulation des listes a = [6625 333 333 1 12345]

print(acount(333) acount(6625) acount(x))

2 1 0

ainsert(2 -1)

aappend(333)

a

[6625 333 -1 333 1 12345 333]

aindex(333)

1

aremove(333)

a

[6625 -1 333 1 12345 333]

areverse()

a

[333 12345 1 333 -1 6625]

asort()

a

[-1 1 6625 333 333 12345]

apop()

12345

a

[-1 1 6625 333 333]

Base de repreacutesentation des donneacutees

44

Puissance du langage Python Lrsquoensemble des lignes suiantes peut ecirctre compacteacute par ce qui suit

combs = []

for x in [123]

for y in [314]

if x = y

combsappend((x y))

Combs

Ou bien

[(x y) for x in [123] for y in [314] if x = y]

Donne le mecircme reacutesultat

[(1 3) (1 4) (2 3) (2 1) (2 4) (3 1) (3 4)]

Calcul de la valeur de PI arrondie

from math import pi

[str(round(pi i)) for i in range(1 6)]

[31 314 3142 31416 314159]

Geacuteneacuterateur avec utilisation de YIELD

def generateur()

yield a

yield b

yield cldquo

i=generateur()

for v in i

print v

a

b

c

Base de repreacutesentation des donneacutees

45

Les expressions reacuteguliegraveres en python Les expressions reacuteguliegravere sont utiliseacutees pour veacuterifier la conformiteacute des expressions de

chaines de caractegraveres par rapport agrave un motif Les symboles suivants sont utiliseacutes

^ $ + [ ] | ( )

Le point correspond agrave nimporte quel caractegravere

^ Indique un commencement de segment mais signifie aussi contraire de

$ Fin de segment

[xy] Une liste de segment possible Exemple [abc] eacutequivaut agrave a b ou c

(x|y) Indique un choix multiple type (ps|ump) eacutequivaut agrave ps OU UMP

d le segment est composeacute uniquement de chiffre ce qui eacutequivaut agrave [0-9]

D le segment nest pas composeacute de chiffre ce qui eacutequivaut agrave [^0-9]

s Un espace ce qui eacutequivaut agrave [ tnrfv]

S Pas despace ce qui eacutequivaut agrave [^ tnrfv]

w Preacutesence alphanumeacuterique ce qui eacutequivaut agrave [a-zA-Z0-9_]

W Pas de preacutesence alphanumeacuterique [^a-zA-Z0-9_]

Est un caractegravere deacutechappement T2 Le T soit reacutepeacuteteacute 2 fois

TA19 La seacutequence TA doit ecirctre preacutesente de 1 agrave 9 fois

TAM10 La seacutequence TAM nrsquoexiste pas ou reacutepeacuteteacutee 10 fois

LI1 La seacutequence LI doit ecirctre reacutepeacuteteacutee au moins une fois

Base de repreacutesentation des donneacutees

46

Les expressions reacuteguliegraveres en python Utilisation des expressions reacuteguliegravere

import re

print rematch(rGR()S GRIS)

lt_sreSRE_Match object at 0x02019DE0gt

Une utilisation freacutequente consiste en la validation des valeurs des emails saisis

Utilisation des expressions reacuteguliegravere

import re

mails = [lsquomtamaligmailcomrsquorsquoutmbuniv-bechardzrsquo lsquo8freefrrsquo lsquouniv-bechardzrsquo lsquotamalicdtarsquo]

regex = recompile(rrsquo^[a-z0-9_-]+[a-z0-9_-]+[(com|fr|dz)]+rsquo

for mail in mails

if regexmatch(mail) is not None

print Ce mail s est valide mail

else

print Erreur ce mail s est non valide mail

Ce mail mtamaligmailcom est valide

Ce mail utmbuniv-bechardz est valide

Ce mail 8freefr est valide

Erreur ce mail univ-bechardz est non valide

Erreur ce mail tamalicdta est non valide

Base de repreacutesentation des donneacutees

47

Les fichiers Creacuteer lire et eacutecrire dans un fichier en python Utilisation des expressions reacuteguliegravere

fichier = open(donneestxt r)

print fichier

ltopen file lsquodonneestxt mode r at 0x7ff6cf3fe4b0gt

Le descripteur permet de renseigner la machine sur la maniegravere avec laquelle le fichier est utiliseacute

r pour ouverture en mode READ

w pour ouverture en mode WRITE chaque fois le contenu du fichier est eacutecraseacute sinon python le creacutee

a pour ajout lsquoAPPENDrsquo Si le fichier nexiste pas python le creacutee

b Ouverture en mode Binaire

t Ouverture en mode Texte

x creacutee un nouveau fichier et louvrir pour eacutecriture

proceacutedure geacuteneacuterale pour lrsquoutilisation drsquoun fichier

fichier = open(lsquodonneestxtrsquo r)

print fichierread()

fichierclose()

Lrsquoinstruction WITH peut ecirctre utiliseacutee sans besoin de la fonction CLOSE

with open(datatxt r) as fichier

print fichierread()

Base de repreacutesentation des donneacutees

48

49

Le langage Python est un langage script interpreacuteteacute Le programme portant lrsquoune des extension py pyw ou pwc est

structureacute selon le canevas suivant

Les codifications

usrbinpython27

--codingencodage -

Les imports des librairies

Les instructions

Le langage Python passe pour ecirctre exeacutecuteacute sur deux eacutetapes la premiegravere UNE PRECOMPILATION geacuteneacuteration du code

machine et finalement un eacutecriture en code machine exeacutecutable (selon la machine)

Lrsquoenvironnement drsquoexeacutecution des scripts eacutecrits en Python regroupe les avantages des TRADUCTEURS (travaille en ligne par

ligne) et les COMPILATEURS (puissance de la structure algorithmique)

La bibliothegraveque cx_Freeze sert agrave transformer les fichiers scripts Pyhon py en exeacutecutable exe

Structures algorithmique du python

50

51

Matrices amp Systegravemes lineacuteaires

52

53

54

55

56

57

Le calcul scientifique

Reacutefeacuterences L-V Bertallanfy lsquoGeneral System Theoryrsquo Edition MASSON 1972

58

Page 26: Chap XIII : calcul scientifique avec python

Les domaines utilisant le langage script Python sont nombreux

Calcul scientifique de base (Modegravele (Non-) lineacuteaire)

Python pour traitement du signal

Calcul de probabiliteacute et statistiques

Deacuteveloppement de graphiques interactive avec Plotly

Visualisation des donneacutees avec Lightning

Lissage et reacutegression non Parameacutetrique

Solveur drsquoeacutequations diffeacuterentielles partielles

Librairie Python drsquoanalyse sonore du coran

Analyse de Big-Data en python

Machine Learning sous Python avec le package scikit-learn

Economeacutetrie sous Python avec le package StatsModels

Introduction agrave la programmation parallegravele avec MPI Python

Theacuteorie des graphes

Commande de processus et systegravemes embarqueacutes

Plateforme CAD 2D3D (Python CAD FreeCAD)

Bioinformatique et manipulation du geacutenome

Deacuteveloppement de sites Web (Framework Django)

Domaines drsquoutilisation

26

Installer agrave partir de PyPI

$ pip install mezzanine

Instantier un projet

$ mezzanine-project monproject

$ cd monproject

Instantier une Base de donneacutees

$ python managepy createdb

Lancer le serveur Web

$ python managepy runserver

Installation en mode

commande

URL du site instantieacute

Version Mobile Menu

Version Administration

Sites Web fait avec

Mezzanine

Version Normal

Les environnements de deacuteveloppement inteacutegreacutes de code Python sont nombreux des solutions proprieacutetaires agrave celles portant le

label GPL

Ils sont de trois grandes cateacutegories

Les applications bureaux (Desktop)

Les consoles de commande en ligne Les interfaces orienteacutees Web

Outils drsquoeacutelaboration de code Python (IDE)

27

Les environnements de deacuteveloppement inteacutegreacutes de code Python sont nombreux des solutions proprieacutetaires agrave celles portant le

label GPL Ils sont de trois grandes cateacutegories

Les applications bureaux (Desktop)

Les consoles de commande en ligne

Les interfaces orienteacutees Web

Outils drsquoeacutelaboration de code Python (IDE)

28

Les environnements de deacuteveloppement inteacutegreacutes de code Python sont nombreux des solutions proprieacutetaires agrave celles portant le

label GPL Ils sont de trois grandes cateacutegories

Les applications bureaux (Desktop)

Les consoles de commande en ligne

Les interfaces orienteacutees Web

Outils drsquoeacutelaboration de code Python (IDE)

29

30

Nom de Symbole Les noms de variables en Python peuvent contenir des caractegraveres alphanumeacuteriques a-z A-Z 0-

9 et certains caractegraveres speacuteciaux tel que _ Les noms de variables normales doivent commencer par une lettre

Par convention les noms de variables commencent par une lettre minuscule et les noms de classe commencent par

une lettre majuscule En outre il y a un certain nombre de mots-cleacutes Python qui ne peuvent pas ecirctre utiliseacutes comme

noms de variables Ces mots-cleacutes sont les suivants

and as assert break class continue def del elif else except exec finally for from global if import in

is lambda not or pass print raise return try while with yield

Affectation assignment de variable

x = 10

my_variable = 122

type(x) fonction TYPE retourne le type de la variable entre parenthegravese

builtinsfloat

Verification de type x = 10

veacuterifier si la variable est reacuteelle

type(x) is float

isinstance(x float)

True

z = complex(x)

print(z type(z))

(1+0j) ltclass complexlsquogt

Base de repreacutesentation des donneacutees

31

Operateurs et comparaisons Opeacuterateurs arithmeacutetiques + - (division entiegravere) puissance

30 20

10

NB operators puissance en python nrsquoest pas ^ mais

2 2

4

Les opeacuterateurs de comparaison sont gtltgt=lt===

objects identiques

x1 = x2 = [12]

x1 is x2

True

2 gt= 2 2 lt= 2

(True True)

Chaines de caractegraveres les liste et les dictionnaires s = Hello world

type(s)

builtinsstr

length of the string the number of characters

len(s)

11

replace a substring in a string with somethign else

s2 = sreplace(world test)

print(s2)

Hello test

s[0]

H

Base de repreacutesentation des donneacutees

32

Chaines de caractegraveres les liste et les dictionnaires s = Hello worldldquo

replace a substring in a string with somethign else

s2 = sreplace(world test)

Hello test

print(s2)

s[05]

Hellolsquo

s[05]

Hellolsquo

s[]

Hello worldlsquo

print(value = f 10) Formatage C des variables

value = 1000000

s2 = value1 = 2f value2 = d (31415 15)

print(s2)

value1 = 314 value2 = 1

Listes l = [1234]

print(type(l))

print(l)

ltclass listgt

[1 2 3 4]

l = [1 a 10 1-1j] peuvent ecirctre heacuteteacuterogegravene

print(l)

[1 a 10 (1-1j)]

Base de repreacutesentation des donneacutees

33

Listes start = 10

stop = 30

step = 2

range(start stop step)

range(10 30 2)

list(range(start stop step))

[10 12 14 16 18 20 22 24 26 28]

s2 = list(s)

S2

[H e l l o w o r l d]

Tri de la liste

s2sort()

print(s2)

[ H d e l l l o o r w]

l = []

lappend(A)

lappend(d)

lappend(d)

print(l)

[A d d]

Tuples Ce sont des variables comme les listes mais pas alteacuterables

point = (10 20)

print(point type(point))

(10 20) ltclass tuplegt

Base de repreacutesentation des donneacutees

34

Tuples x y = point

print(x = x)

print(y = y)

x = 10

y = 20

Dictionaries params = parameter1 10 parameter2 20 parameter3 30

print(type(params))

print(params)

ltclass dictgt

fparameter2 20 parameter3 30 parameter1 10

params[parameter1] = A

params[parameter2] = B

Ajouter une nouvelle entreacutee

params[parameter4] = D

print(paramegravetre = + str(params[parameter1]))

print(paramegravetre = + str(params[parameter2]))

print(paramegravetre = + str(params[parameter3]))

print(paramegravetre = + str(params[parameter4]))

paramegravetre = A

paramegravetre = B

paramegravetre = 30

paramegravetre = D

Base de repreacutesentation des donneacutees

35

36

Affectation amp Controcircle conditionnel de flue statement1 = False Crsquoest une affectation

statement2 = False

if statement1 Test valideacute condition (statement1) est VRAIE

print(statement1 is True)

elif statement2 Exeacutecuteacutee condition (statement2) est VRAIE

print(statement2 is True)

else Exeacutecuteacutee sinon

print(statement1 and statement2 are False)

Boucles for x in [123] [123] peut ecirctre deacutesigneacute par range(3) avec print(x+1)

print(x)

1

2

3

for word in [scientific computing with python]

print(word) condition de reacutepeacutetition deacutependante du contenu de la liste

scientific

computing

with

python

l1 = [x2 for x in range(05)] agrave remarquer la compaciteacute du Python

print(l1)

[0 1 4 9 16]

Base de repreacutesentation des donneacutees

37

Boucles var = 0

while var = 1

print jlsquoeacutecris mon programme ici

choix = raw_input(voulez vous recommencer ( on ) )

if choix == n

var = 1

else

lsquovous allez ecirctre renvoyeacute au deacutebut du programmersquo

X = y 2

while x gt 1

If y x == 0

print y lsquo est facteur de rsquo x

break

x -= 1

else

print y lsquo est premierlsquo

Lrsquoutilisation de zip et map peut srsquoaveacutereacutee encore plus efficace

l1 = [1 2 3]

l2 = [4 5 6]

for (x y) in zip(l1 l2)

print x y -- x + y

1 4 -- 5

2 5 -- 7

3 6 -- 9

Base de repreacutesentation des donneacutees

38

s=0123456789

print map(int s)

[0 1 2 3 4 5 6 7 8 9]

Utilisation et

puissance de MAP

Utilisation de ZIP

Intervales range(start stop step)

range(5 10)

5 jusqursquoagrave 10 (exclue) avec un pas de 1

range(0 10 3)

0 3 6 9

range(-10 -100 -30)

-10 -40 -70

Test conditionnel binaire x = 5

y = 10

if x gt y

print(x est grand que y)

else

print(ldquox nrsquoest pas grand que yrdquo)

Dans Python on peut compliquer les chose

x = 5

y = 10

Z = 12

if z gt x gt y

print(lsquoy est petit que x et x est petit que z)

Base de repreacutesentation des donneacutees

39

Boucle avec test conditionnel binaire break continue et else dans une boucle for

for n in range(2 10)

for x in range(2 n)

if n x == 0

print(n lsquoest eacutegal agrave x nx)

break

else

print(n lsquoest premier)

Utilisation de lrsquoinstruction continue

for num in range(2 10)

if num 2 == 0 le symbole deacutesigne lrsquoopeacuteration RESTE de la division

print(ldquoNombre paire trouveacute num)

continue

print(ldquoNombre non premier num)

Base de repreacutesentation des donneacutees

40

Deacutefinition de fonction (proceacutedure avec retour) def fib(n) Ecrire la suite de Fibonacci jusqursquoagrave n

a b = 0 1

while a lt n

print(a end= )

a b = b a+b

print()

fib(2000)

0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597

f = fib deacutesignation par reacutefeacuterence f agrave la fonction fib

f(100)

0 1 1 2 3 5 8 13 21 34 55 89

autre type de deacutefinition de fonction

def ask_ok(prompt retries=4 complaint=Oui or Non srsquoil vou plait )

while True

ok = input(prompt)

if ok in (lsquoo lsquooui lsquoOui)

return True

if ok in (lsquon no non lsquoNon)

return False

retries = retries - 1

if retries lt 0

raise OSError(lsquoUtilisateur non coopeacuteratif)

print(complaint)

Base de repreacutesentation des donneacutees

41

Lrsquoinstruction lambda def make_incrementeur(n)

return lambda x x + n

f = make_incrementeur(42)

f(0)

42

f(1)

43

un autre cas drsquoutilisation

pairs = [(1 one) (2 two) (3 three) (4 four)]

pairssort(key=lambda pair pair[1])

pairs

[(4 four) (1 one) (3 three) (2 two)]

Les annotations dans une fonction Les annotations deacutefinissent des messages de preacutesentation

def f(chiken str eggs str = eggs) -gt str remarquer que la fonction est de type STR

print(Annotations f__annotations__)

print(Arguments chiken eggs)

return chiken + and + eggs

f(spam)

Annotations chiken ltclass strgt return ltclass strgt eggs ltclass strgt

Arguments spam eggs

spam and eggslsquo

Base de repreacutesentation des donneacutees

42

Les deacutecorateurs python Notre deacutecorateur

def decorate(func)

print uJe suis dans la fonction decorate et je deacutecore s func__name__

print uExeacutecution de la fonction s func__name__

return func

Fonction cible utiliseacutee avec DECORATOR

decorate

def foobar(args)

print join(args)

Exemple drsquoappel de la fonction

foobar(A B C D)

Je suis dans la fonction decorate et je deacutecore foobar

Exeacutecution de la fonction foobar

A B C D

Il est posible drsquoattribuer plusieurs deacutecorateurs agrave une seule fonction

decorateur1

decorateur2

def ma_fonction()

instructions

Base de repreacutesentation des donneacutees

43

Manipulation des listes a = [6625 333 333 1 12345]

print(acount(333) acount(6625) acount(x))

2 1 0

ainsert(2 -1)

aappend(333)

a

[6625 333 -1 333 1 12345 333]

aindex(333)

1

aremove(333)

a

[6625 -1 333 1 12345 333]

areverse()

a

[333 12345 1 333 -1 6625]

asort()

a

[-1 1 6625 333 333 12345]

apop()

12345

a

[-1 1 6625 333 333]

Base de repreacutesentation des donneacutees

44

Puissance du langage Python Lrsquoensemble des lignes suiantes peut ecirctre compacteacute par ce qui suit

combs = []

for x in [123]

for y in [314]

if x = y

combsappend((x y))

Combs

Ou bien

[(x y) for x in [123] for y in [314] if x = y]

Donne le mecircme reacutesultat

[(1 3) (1 4) (2 3) (2 1) (2 4) (3 1) (3 4)]

Calcul de la valeur de PI arrondie

from math import pi

[str(round(pi i)) for i in range(1 6)]

[31 314 3142 31416 314159]

Geacuteneacuterateur avec utilisation de YIELD

def generateur()

yield a

yield b

yield cldquo

i=generateur()

for v in i

print v

a

b

c

Base de repreacutesentation des donneacutees

45

Les expressions reacuteguliegraveres en python Les expressions reacuteguliegravere sont utiliseacutees pour veacuterifier la conformiteacute des expressions de

chaines de caractegraveres par rapport agrave un motif Les symboles suivants sont utiliseacutes

^ $ + [ ] | ( )

Le point correspond agrave nimporte quel caractegravere

^ Indique un commencement de segment mais signifie aussi contraire de

$ Fin de segment

[xy] Une liste de segment possible Exemple [abc] eacutequivaut agrave a b ou c

(x|y) Indique un choix multiple type (ps|ump) eacutequivaut agrave ps OU UMP

d le segment est composeacute uniquement de chiffre ce qui eacutequivaut agrave [0-9]

D le segment nest pas composeacute de chiffre ce qui eacutequivaut agrave [^0-9]

s Un espace ce qui eacutequivaut agrave [ tnrfv]

S Pas despace ce qui eacutequivaut agrave [^ tnrfv]

w Preacutesence alphanumeacuterique ce qui eacutequivaut agrave [a-zA-Z0-9_]

W Pas de preacutesence alphanumeacuterique [^a-zA-Z0-9_]

Est un caractegravere deacutechappement T2 Le T soit reacutepeacuteteacute 2 fois

TA19 La seacutequence TA doit ecirctre preacutesente de 1 agrave 9 fois

TAM10 La seacutequence TAM nrsquoexiste pas ou reacutepeacuteteacutee 10 fois

LI1 La seacutequence LI doit ecirctre reacutepeacuteteacutee au moins une fois

Base de repreacutesentation des donneacutees

46

Les expressions reacuteguliegraveres en python Utilisation des expressions reacuteguliegravere

import re

print rematch(rGR()S GRIS)

lt_sreSRE_Match object at 0x02019DE0gt

Une utilisation freacutequente consiste en la validation des valeurs des emails saisis

Utilisation des expressions reacuteguliegravere

import re

mails = [lsquomtamaligmailcomrsquorsquoutmbuniv-bechardzrsquo lsquo8freefrrsquo lsquouniv-bechardzrsquo lsquotamalicdtarsquo]

regex = recompile(rrsquo^[a-z0-9_-]+[a-z0-9_-]+[(com|fr|dz)]+rsquo

for mail in mails

if regexmatch(mail) is not None

print Ce mail s est valide mail

else

print Erreur ce mail s est non valide mail

Ce mail mtamaligmailcom est valide

Ce mail utmbuniv-bechardz est valide

Ce mail 8freefr est valide

Erreur ce mail univ-bechardz est non valide

Erreur ce mail tamalicdta est non valide

Base de repreacutesentation des donneacutees

47

Les fichiers Creacuteer lire et eacutecrire dans un fichier en python Utilisation des expressions reacuteguliegravere

fichier = open(donneestxt r)

print fichier

ltopen file lsquodonneestxt mode r at 0x7ff6cf3fe4b0gt

Le descripteur permet de renseigner la machine sur la maniegravere avec laquelle le fichier est utiliseacute

r pour ouverture en mode READ

w pour ouverture en mode WRITE chaque fois le contenu du fichier est eacutecraseacute sinon python le creacutee

a pour ajout lsquoAPPENDrsquo Si le fichier nexiste pas python le creacutee

b Ouverture en mode Binaire

t Ouverture en mode Texte

x creacutee un nouveau fichier et louvrir pour eacutecriture

proceacutedure geacuteneacuterale pour lrsquoutilisation drsquoun fichier

fichier = open(lsquodonneestxtrsquo r)

print fichierread()

fichierclose()

Lrsquoinstruction WITH peut ecirctre utiliseacutee sans besoin de la fonction CLOSE

with open(datatxt r) as fichier

print fichierread()

Base de repreacutesentation des donneacutees

48

49

Le langage Python est un langage script interpreacuteteacute Le programme portant lrsquoune des extension py pyw ou pwc est

structureacute selon le canevas suivant

Les codifications

usrbinpython27

--codingencodage -

Les imports des librairies

Les instructions

Le langage Python passe pour ecirctre exeacutecuteacute sur deux eacutetapes la premiegravere UNE PRECOMPILATION geacuteneacuteration du code

machine et finalement un eacutecriture en code machine exeacutecutable (selon la machine)

Lrsquoenvironnement drsquoexeacutecution des scripts eacutecrits en Python regroupe les avantages des TRADUCTEURS (travaille en ligne par

ligne) et les COMPILATEURS (puissance de la structure algorithmique)

La bibliothegraveque cx_Freeze sert agrave transformer les fichiers scripts Pyhon py en exeacutecutable exe

Structures algorithmique du python

50

51

Matrices amp Systegravemes lineacuteaires

52

53

54

55

56

57

Le calcul scientifique

Reacutefeacuterences L-V Bertallanfy lsquoGeneral System Theoryrsquo Edition MASSON 1972

58

Page 27: Chap XIII : calcul scientifique avec python

Les environnements de deacuteveloppement inteacutegreacutes de code Python sont nombreux des solutions proprieacutetaires agrave celles portant le

label GPL

Ils sont de trois grandes cateacutegories

Les applications bureaux (Desktop)

Les consoles de commande en ligne Les interfaces orienteacutees Web

Outils drsquoeacutelaboration de code Python (IDE)

27

Les environnements de deacuteveloppement inteacutegreacutes de code Python sont nombreux des solutions proprieacutetaires agrave celles portant le

label GPL Ils sont de trois grandes cateacutegories

Les applications bureaux (Desktop)

Les consoles de commande en ligne

Les interfaces orienteacutees Web

Outils drsquoeacutelaboration de code Python (IDE)

28

Les environnements de deacuteveloppement inteacutegreacutes de code Python sont nombreux des solutions proprieacutetaires agrave celles portant le

label GPL Ils sont de trois grandes cateacutegories

Les applications bureaux (Desktop)

Les consoles de commande en ligne

Les interfaces orienteacutees Web

Outils drsquoeacutelaboration de code Python (IDE)

29

30

Nom de Symbole Les noms de variables en Python peuvent contenir des caractegraveres alphanumeacuteriques a-z A-Z 0-

9 et certains caractegraveres speacuteciaux tel que _ Les noms de variables normales doivent commencer par une lettre

Par convention les noms de variables commencent par une lettre minuscule et les noms de classe commencent par

une lettre majuscule En outre il y a un certain nombre de mots-cleacutes Python qui ne peuvent pas ecirctre utiliseacutes comme

noms de variables Ces mots-cleacutes sont les suivants

and as assert break class continue def del elif else except exec finally for from global if import in

is lambda not or pass print raise return try while with yield

Affectation assignment de variable

x = 10

my_variable = 122

type(x) fonction TYPE retourne le type de la variable entre parenthegravese

builtinsfloat

Verification de type x = 10

veacuterifier si la variable est reacuteelle

type(x) is float

isinstance(x float)

True

z = complex(x)

print(z type(z))

(1+0j) ltclass complexlsquogt

Base de repreacutesentation des donneacutees

31

Operateurs et comparaisons Opeacuterateurs arithmeacutetiques + - (division entiegravere) puissance

30 20

10

NB operators puissance en python nrsquoest pas ^ mais

2 2

4

Les opeacuterateurs de comparaison sont gtltgt=lt===

objects identiques

x1 = x2 = [12]

x1 is x2

True

2 gt= 2 2 lt= 2

(True True)

Chaines de caractegraveres les liste et les dictionnaires s = Hello world

type(s)

builtinsstr

length of the string the number of characters

len(s)

11

replace a substring in a string with somethign else

s2 = sreplace(world test)

print(s2)

Hello test

s[0]

H

Base de repreacutesentation des donneacutees

32

Chaines de caractegraveres les liste et les dictionnaires s = Hello worldldquo

replace a substring in a string with somethign else

s2 = sreplace(world test)

Hello test

print(s2)

s[05]

Hellolsquo

s[05]

Hellolsquo

s[]

Hello worldlsquo

print(value = f 10) Formatage C des variables

value = 1000000

s2 = value1 = 2f value2 = d (31415 15)

print(s2)

value1 = 314 value2 = 1

Listes l = [1234]

print(type(l))

print(l)

ltclass listgt

[1 2 3 4]

l = [1 a 10 1-1j] peuvent ecirctre heacuteteacuterogegravene

print(l)

[1 a 10 (1-1j)]

Base de repreacutesentation des donneacutees

33

Listes start = 10

stop = 30

step = 2

range(start stop step)

range(10 30 2)

list(range(start stop step))

[10 12 14 16 18 20 22 24 26 28]

s2 = list(s)

S2

[H e l l o w o r l d]

Tri de la liste

s2sort()

print(s2)

[ H d e l l l o o r w]

l = []

lappend(A)

lappend(d)

lappend(d)

print(l)

[A d d]

Tuples Ce sont des variables comme les listes mais pas alteacuterables

point = (10 20)

print(point type(point))

(10 20) ltclass tuplegt

Base de repreacutesentation des donneacutees

34

Tuples x y = point

print(x = x)

print(y = y)

x = 10

y = 20

Dictionaries params = parameter1 10 parameter2 20 parameter3 30

print(type(params))

print(params)

ltclass dictgt

fparameter2 20 parameter3 30 parameter1 10

params[parameter1] = A

params[parameter2] = B

Ajouter une nouvelle entreacutee

params[parameter4] = D

print(paramegravetre = + str(params[parameter1]))

print(paramegravetre = + str(params[parameter2]))

print(paramegravetre = + str(params[parameter3]))

print(paramegravetre = + str(params[parameter4]))

paramegravetre = A

paramegravetre = B

paramegravetre = 30

paramegravetre = D

Base de repreacutesentation des donneacutees

35

36

Affectation amp Controcircle conditionnel de flue statement1 = False Crsquoest une affectation

statement2 = False

if statement1 Test valideacute condition (statement1) est VRAIE

print(statement1 is True)

elif statement2 Exeacutecuteacutee condition (statement2) est VRAIE

print(statement2 is True)

else Exeacutecuteacutee sinon

print(statement1 and statement2 are False)

Boucles for x in [123] [123] peut ecirctre deacutesigneacute par range(3) avec print(x+1)

print(x)

1

2

3

for word in [scientific computing with python]

print(word) condition de reacutepeacutetition deacutependante du contenu de la liste

scientific

computing

with

python

l1 = [x2 for x in range(05)] agrave remarquer la compaciteacute du Python

print(l1)

[0 1 4 9 16]

Base de repreacutesentation des donneacutees

37

Boucles var = 0

while var = 1

print jlsquoeacutecris mon programme ici

choix = raw_input(voulez vous recommencer ( on ) )

if choix == n

var = 1

else

lsquovous allez ecirctre renvoyeacute au deacutebut du programmersquo

X = y 2

while x gt 1

If y x == 0

print y lsquo est facteur de rsquo x

break

x -= 1

else

print y lsquo est premierlsquo

Lrsquoutilisation de zip et map peut srsquoaveacutereacutee encore plus efficace

l1 = [1 2 3]

l2 = [4 5 6]

for (x y) in zip(l1 l2)

print x y -- x + y

1 4 -- 5

2 5 -- 7

3 6 -- 9

Base de repreacutesentation des donneacutees

38

s=0123456789

print map(int s)

[0 1 2 3 4 5 6 7 8 9]

Utilisation et

puissance de MAP

Utilisation de ZIP

Intervales range(start stop step)

range(5 10)

5 jusqursquoagrave 10 (exclue) avec un pas de 1

range(0 10 3)

0 3 6 9

range(-10 -100 -30)

-10 -40 -70

Test conditionnel binaire x = 5

y = 10

if x gt y

print(x est grand que y)

else

print(ldquox nrsquoest pas grand que yrdquo)

Dans Python on peut compliquer les chose

x = 5

y = 10

Z = 12

if z gt x gt y

print(lsquoy est petit que x et x est petit que z)

Base de repreacutesentation des donneacutees

39

Boucle avec test conditionnel binaire break continue et else dans une boucle for

for n in range(2 10)

for x in range(2 n)

if n x == 0

print(n lsquoest eacutegal agrave x nx)

break

else

print(n lsquoest premier)

Utilisation de lrsquoinstruction continue

for num in range(2 10)

if num 2 == 0 le symbole deacutesigne lrsquoopeacuteration RESTE de la division

print(ldquoNombre paire trouveacute num)

continue

print(ldquoNombre non premier num)

Base de repreacutesentation des donneacutees

40

Deacutefinition de fonction (proceacutedure avec retour) def fib(n) Ecrire la suite de Fibonacci jusqursquoagrave n

a b = 0 1

while a lt n

print(a end= )

a b = b a+b

print()

fib(2000)

0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597

f = fib deacutesignation par reacutefeacuterence f agrave la fonction fib

f(100)

0 1 1 2 3 5 8 13 21 34 55 89

autre type de deacutefinition de fonction

def ask_ok(prompt retries=4 complaint=Oui or Non srsquoil vou plait )

while True

ok = input(prompt)

if ok in (lsquoo lsquooui lsquoOui)

return True

if ok in (lsquon no non lsquoNon)

return False

retries = retries - 1

if retries lt 0

raise OSError(lsquoUtilisateur non coopeacuteratif)

print(complaint)

Base de repreacutesentation des donneacutees

41

Lrsquoinstruction lambda def make_incrementeur(n)

return lambda x x + n

f = make_incrementeur(42)

f(0)

42

f(1)

43

un autre cas drsquoutilisation

pairs = [(1 one) (2 two) (3 three) (4 four)]

pairssort(key=lambda pair pair[1])

pairs

[(4 four) (1 one) (3 three) (2 two)]

Les annotations dans une fonction Les annotations deacutefinissent des messages de preacutesentation

def f(chiken str eggs str = eggs) -gt str remarquer que la fonction est de type STR

print(Annotations f__annotations__)

print(Arguments chiken eggs)

return chiken + and + eggs

f(spam)

Annotations chiken ltclass strgt return ltclass strgt eggs ltclass strgt

Arguments spam eggs

spam and eggslsquo

Base de repreacutesentation des donneacutees

42

Les deacutecorateurs python Notre deacutecorateur

def decorate(func)

print uJe suis dans la fonction decorate et je deacutecore s func__name__

print uExeacutecution de la fonction s func__name__

return func

Fonction cible utiliseacutee avec DECORATOR

decorate

def foobar(args)

print join(args)

Exemple drsquoappel de la fonction

foobar(A B C D)

Je suis dans la fonction decorate et je deacutecore foobar

Exeacutecution de la fonction foobar

A B C D

Il est posible drsquoattribuer plusieurs deacutecorateurs agrave une seule fonction

decorateur1

decorateur2

def ma_fonction()

instructions

Base de repreacutesentation des donneacutees

43

Manipulation des listes a = [6625 333 333 1 12345]

print(acount(333) acount(6625) acount(x))

2 1 0

ainsert(2 -1)

aappend(333)

a

[6625 333 -1 333 1 12345 333]

aindex(333)

1

aremove(333)

a

[6625 -1 333 1 12345 333]

areverse()

a

[333 12345 1 333 -1 6625]

asort()

a

[-1 1 6625 333 333 12345]

apop()

12345

a

[-1 1 6625 333 333]

Base de repreacutesentation des donneacutees

44

Puissance du langage Python Lrsquoensemble des lignes suiantes peut ecirctre compacteacute par ce qui suit

combs = []

for x in [123]

for y in [314]

if x = y

combsappend((x y))

Combs

Ou bien

[(x y) for x in [123] for y in [314] if x = y]

Donne le mecircme reacutesultat

[(1 3) (1 4) (2 3) (2 1) (2 4) (3 1) (3 4)]

Calcul de la valeur de PI arrondie

from math import pi

[str(round(pi i)) for i in range(1 6)]

[31 314 3142 31416 314159]

Geacuteneacuterateur avec utilisation de YIELD

def generateur()

yield a

yield b

yield cldquo

i=generateur()

for v in i

print v

a

b

c

Base de repreacutesentation des donneacutees

45

Les expressions reacuteguliegraveres en python Les expressions reacuteguliegravere sont utiliseacutees pour veacuterifier la conformiteacute des expressions de

chaines de caractegraveres par rapport agrave un motif Les symboles suivants sont utiliseacutes

^ $ + [ ] | ( )

Le point correspond agrave nimporte quel caractegravere

^ Indique un commencement de segment mais signifie aussi contraire de

$ Fin de segment

[xy] Une liste de segment possible Exemple [abc] eacutequivaut agrave a b ou c

(x|y) Indique un choix multiple type (ps|ump) eacutequivaut agrave ps OU UMP

d le segment est composeacute uniquement de chiffre ce qui eacutequivaut agrave [0-9]

D le segment nest pas composeacute de chiffre ce qui eacutequivaut agrave [^0-9]

s Un espace ce qui eacutequivaut agrave [ tnrfv]

S Pas despace ce qui eacutequivaut agrave [^ tnrfv]

w Preacutesence alphanumeacuterique ce qui eacutequivaut agrave [a-zA-Z0-9_]

W Pas de preacutesence alphanumeacuterique [^a-zA-Z0-9_]

Est un caractegravere deacutechappement T2 Le T soit reacutepeacuteteacute 2 fois

TA19 La seacutequence TA doit ecirctre preacutesente de 1 agrave 9 fois

TAM10 La seacutequence TAM nrsquoexiste pas ou reacutepeacuteteacutee 10 fois

LI1 La seacutequence LI doit ecirctre reacutepeacuteteacutee au moins une fois

Base de repreacutesentation des donneacutees

46

Les expressions reacuteguliegraveres en python Utilisation des expressions reacuteguliegravere

import re

print rematch(rGR()S GRIS)

lt_sreSRE_Match object at 0x02019DE0gt

Une utilisation freacutequente consiste en la validation des valeurs des emails saisis

Utilisation des expressions reacuteguliegravere

import re

mails = [lsquomtamaligmailcomrsquorsquoutmbuniv-bechardzrsquo lsquo8freefrrsquo lsquouniv-bechardzrsquo lsquotamalicdtarsquo]

regex = recompile(rrsquo^[a-z0-9_-]+[a-z0-9_-]+[(com|fr|dz)]+rsquo

for mail in mails

if regexmatch(mail) is not None

print Ce mail s est valide mail

else

print Erreur ce mail s est non valide mail

Ce mail mtamaligmailcom est valide

Ce mail utmbuniv-bechardz est valide

Ce mail 8freefr est valide

Erreur ce mail univ-bechardz est non valide

Erreur ce mail tamalicdta est non valide

Base de repreacutesentation des donneacutees

47

Les fichiers Creacuteer lire et eacutecrire dans un fichier en python Utilisation des expressions reacuteguliegravere

fichier = open(donneestxt r)

print fichier

ltopen file lsquodonneestxt mode r at 0x7ff6cf3fe4b0gt

Le descripteur permet de renseigner la machine sur la maniegravere avec laquelle le fichier est utiliseacute

r pour ouverture en mode READ

w pour ouverture en mode WRITE chaque fois le contenu du fichier est eacutecraseacute sinon python le creacutee

a pour ajout lsquoAPPENDrsquo Si le fichier nexiste pas python le creacutee

b Ouverture en mode Binaire

t Ouverture en mode Texte

x creacutee un nouveau fichier et louvrir pour eacutecriture

proceacutedure geacuteneacuterale pour lrsquoutilisation drsquoun fichier

fichier = open(lsquodonneestxtrsquo r)

print fichierread()

fichierclose()

Lrsquoinstruction WITH peut ecirctre utiliseacutee sans besoin de la fonction CLOSE

with open(datatxt r) as fichier

print fichierread()

Base de repreacutesentation des donneacutees

48

49

Le langage Python est un langage script interpreacuteteacute Le programme portant lrsquoune des extension py pyw ou pwc est

structureacute selon le canevas suivant

Les codifications

usrbinpython27

--codingencodage -

Les imports des librairies

Les instructions

Le langage Python passe pour ecirctre exeacutecuteacute sur deux eacutetapes la premiegravere UNE PRECOMPILATION geacuteneacuteration du code

machine et finalement un eacutecriture en code machine exeacutecutable (selon la machine)

Lrsquoenvironnement drsquoexeacutecution des scripts eacutecrits en Python regroupe les avantages des TRADUCTEURS (travaille en ligne par

ligne) et les COMPILATEURS (puissance de la structure algorithmique)

La bibliothegraveque cx_Freeze sert agrave transformer les fichiers scripts Pyhon py en exeacutecutable exe

Structures algorithmique du python

50

51

Matrices amp Systegravemes lineacuteaires

52

53

54

55

56

57

Le calcul scientifique

Reacutefeacuterences L-V Bertallanfy lsquoGeneral System Theoryrsquo Edition MASSON 1972

58

Page 28: Chap XIII : calcul scientifique avec python

Les environnements de deacuteveloppement inteacutegreacutes de code Python sont nombreux des solutions proprieacutetaires agrave celles portant le

label GPL Ils sont de trois grandes cateacutegories

Les applications bureaux (Desktop)

Les consoles de commande en ligne

Les interfaces orienteacutees Web

Outils drsquoeacutelaboration de code Python (IDE)

28

Les environnements de deacuteveloppement inteacutegreacutes de code Python sont nombreux des solutions proprieacutetaires agrave celles portant le

label GPL Ils sont de trois grandes cateacutegories

Les applications bureaux (Desktop)

Les consoles de commande en ligne

Les interfaces orienteacutees Web

Outils drsquoeacutelaboration de code Python (IDE)

29

30

Nom de Symbole Les noms de variables en Python peuvent contenir des caractegraveres alphanumeacuteriques a-z A-Z 0-

9 et certains caractegraveres speacuteciaux tel que _ Les noms de variables normales doivent commencer par une lettre

Par convention les noms de variables commencent par une lettre minuscule et les noms de classe commencent par

une lettre majuscule En outre il y a un certain nombre de mots-cleacutes Python qui ne peuvent pas ecirctre utiliseacutes comme

noms de variables Ces mots-cleacutes sont les suivants

and as assert break class continue def del elif else except exec finally for from global if import in

is lambda not or pass print raise return try while with yield

Affectation assignment de variable

x = 10

my_variable = 122

type(x) fonction TYPE retourne le type de la variable entre parenthegravese

builtinsfloat

Verification de type x = 10

veacuterifier si la variable est reacuteelle

type(x) is float

isinstance(x float)

True

z = complex(x)

print(z type(z))

(1+0j) ltclass complexlsquogt

Base de repreacutesentation des donneacutees

31

Operateurs et comparaisons Opeacuterateurs arithmeacutetiques + - (division entiegravere) puissance

30 20

10

NB operators puissance en python nrsquoest pas ^ mais

2 2

4

Les opeacuterateurs de comparaison sont gtltgt=lt===

objects identiques

x1 = x2 = [12]

x1 is x2

True

2 gt= 2 2 lt= 2

(True True)

Chaines de caractegraveres les liste et les dictionnaires s = Hello world

type(s)

builtinsstr

length of the string the number of characters

len(s)

11

replace a substring in a string with somethign else

s2 = sreplace(world test)

print(s2)

Hello test

s[0]

H

Base de repreacutesentation des donneacutees

32

Chaines de caractegraveres les liste et les dictionnaires s = Hello worldldquo

replace a substring in a string with somethign else

s2 = sreplace(world test)

Hello test

print(s2)

s[05]

Hellolsquo

s[05]

Hellolsquo

s[]

Hello worldlsquo

print(value = f 10) Formatage C des variables

value = 1000000

s2 = value1 = 2f value2 = d (31415 15)

print(s2)

value1 = 314 value2 = 1

Listes l = [1234]

print(type(l))

print(l)

ltclass listgt

[1 2 3 4]

l = [1 a 10 1-1j] peuvent ecirctre heacuteteacuterogegravene

print(l)

[1 a 10 (1-1j)]

Base de repreacutesentation des donneacutees

33

Listes start = 10

stop = 30

step = 2

range(start stop step)

range(10 30 2)

list(range(start stop step))

[10 12 14 16 18 20 22 24 26 28]

s2 = list(s)

S2

[H e l l o w o r l d]

Tri de la liste

s2sort()

print(s2)

[ H d e l l l o o r w]

l = []

lappend(A)

lappend(d)

lappend(d)

print(l)

[A d d]

Tuples Ce sont des variables comme les listes mais pas alteacuterables

point = (10 20)

print(point type(point))

(10 20) ltclass tuplegt

Base de repreacutesentation des donneacutees

34

Tuples x y = point

print(x = x)

print(y = y)

x = 10

y = 20

Dictionaries params = parameter1 10 parameter2 20 parameter3 30

print(type(params))

print(params)

ltclass dictgt

fparameter2 20 parameter3 30 parameter1 10

params[parameter1] = A

params[parameter2] = B

Ajouter une nouvelle entreacutee

params[parameter4] = D

print(paramegravetre = + str(params[parameter1]))

print(paramegravetre = + str(params[parameter2]))

print(paramegravetre = + str(params[parameter3]))

print(paramegravetre = + str(params[parameter4]))

paramegravetre = A

paramegravetre = B

paramegravetre = 30

paramegravetre = D

Base de repreacutesentation des donneacutees

35

36

Affectation amp Controcircle conditionnel de flue statement1 = False Crsquoest une affectation

statement2 = False

if statement1 Test valideacute condition (statement1) est VRAIE

print(statement1 is True)

elif statement2 Exeacutecuteacutee condition (statement2) est VRAIE

print(statement2 is True)

else Exeacutecuteacutee sinon

print(statement1 and statement2 are False)

Boucles for x in [123] [123] peut ecirctre deacutesigneacute par range(3) avec print(x+1)

print(x)

1

2

3

for word in [scientific computing with python]

print(word) condition de reacutepeacutetition deacutependante du contenu de la liste

scientific

computing

with

python

l1 = [x2 for x in range(05)] agrave remarquer la compaciteacute du Python

print(l1)

[0 1 4 9 16]

Base de repreacutesentation des donneacutees

37

Boucles var = 0

while var = 1

print jlsquoeacutecris mon programme ici

choix = raw_input(voulez vous recommencer ( on ) )

if choix == n

var = 1

else

lsquovous allez ecirctre renvoyeacute au deacutebut du programmersquo

X = y 2

while x gt 1

If y x == 0

print y lsquo est facteur de rsquo x

break

x -= 1

else

print y lsquo est premierlsquo

Lrsquoutilisation de zip et map peut srsquoaveacutereacutee encore plus efficace

l1 = [1 2 3]

l2 = [4 5 6]

for (x y) in zip(l1 l2)

print x y -- x + y

1 4 -- 5

2 5 -- 7

3 6 -- 9

Base de repreacutesentation des donneacutees

38

s=0123456789

print map(int s)

[0 1 2 3 4 5 6 7 8 9]

Utilisation et

puissance de MAP

Utilisation de ZIP

Intervales range(start stop step)

range(5 10)

5 jusqursquoagrave 10 (exclue) avec un pas de 1

range(0 10 3)

0 3 6 9

range(-10 -100 -30)

-10 -40 -70

Test conditionnel binaire x = 5

y = 10

if x gt y

print(x est grand que y)

else

print(ldquox nrsquoest pas grand que yrdquo)

Dans Python on peut compliquer les chose

x = 5

y = 10

Z = 12

if z gt x gt y

print(lsquoy est petit que x et x est petit que z)

Base de repreacutesentation des donneacutees

39

Boucle avec test conditionnel binaire break continue et else dans une boucle for

for n in range(2 10)

for x in range(2 n)

if n x == 0

print(n lsquoest eacutegal agrave x nx)

break

else

print(n lsquoest premier)

Utilisation de lrsquoinstruction continue

for num in range(2 10)

if num 2 == 0 le symbole deacutesigne lrsquoopeacuteration RESTE de la division

print(ldquoNombre paire trouveacute num)

continue

print(ldquoNombre non premier num)

Base de repreacutesentation des donneacutees

40

Deacutefinition de fonction (proceacutedure avec retour) def fib(n) Ecrire la suite de Fibonacci jusqursquoagrave n

a b = 0 1

while a lt n

print(a end= )

a b = b a+b

print()

fib(2000)

0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597

f = fib deacutesignation par reacutefeacuterence f agrave la fonction fib

f(100)

0 1 1 2 3 5 8 13 21 34 55 89

autre type de deacutefinition de fonction

def ask_ok(prompt retries=4 complaint=Oui or Non srsquoil vou plait )

while True

ok = input(prompt)

if ok in (lsquoo lsquooui lsquoOui)

return True

if ok in (lsquon no non lsquoNon)

return False

retries = retries - 1

if retries lt 0

raise OSError(lsquoUtilisateur non coopeacuteratif)

print(complaint)

Base de repreacutesentation des donneacutees

41

Lrsquoinstruction lambda def make_incrementeur(n)

return lambda x x + n

f = make_incrementeur(42)

f(0)

42

f(1)

43

un autre cas drsquoutilisation

pairs = [(1 one) (2 two) (3 three) (4 four)]

pairssort(key=lambda pair pair[1])

pairs

[(4 four) (1 one) (3 three) (2 two)]

Les annotations dans une fonction Les annotations deacutefinissent des messages de preacutesentation

def f(chiken str eggs str = eggs) -gt str remarquer que la fonction est de type STR

print(Annotations f__annotations__)

print(Arguments chiken eggs)

return chiken + and + eggs

f(spam)

Annotations chiken ltclass strgt return ltclass strgt eggs ltclass strgt

Arguments spam eggs

spam and eggslsquo

Base de repreacutesentation des donneacutees

42

Les deacutecorateurs python Notre deacutecorateur

def decorate(func)

print uJe suis dans la fonction decorate et je deacutecore s func__name__

print uExeacutecution de la fonction s func__name__

return func

Fonction cible utiliseacutee avec DECORATOR

decorate

def foobar(args)

print join(args)

Exemple drsquoappel de la fonction

foobar(A B C D)

Je suis dans la fonction decorate et je deacutecore foobar

Exeacutecution de la fonction foobar

A B C D

Il est posible drsquoattribuer plusieurs deacutecorateurs agrave une seule fonction

decorateur1

decorateur2

def ma_fonction()

instructions

Base de repreacutesentation des donneacutees

43

Manipulation des listes a = [6625 333 333 1 12345]

print(acount(333) acount(6625) acount(x))

2 1 0

ainsert(2 -1)

aappend(333)

a

[6625 333 -1 333 1 12345 333]

aindex(333)

1

aremove(333)

a

[6625 -1 333 1 12345 333]

areverse()

a

[333 12345 1 333 -1 6625]

asort()

a

[-1 1 6625 333 333 12345]

apop()

12345

a

[-1 1 6625 333 333]

Base de repreacutesentation des donneacutees

44

Puissance du langage Python Lrsquoensemble des lignes suiantes peut ecirctre compacteacute par ce qui suit

combs = []

for x in [123]

for y in [314]

if x = y

combsappend((x y))

Combs

Ou bien

[(x y) for x in [123] for y in [314] if x = y]

Donne le mecircme reacutesultat

[(1 3) (1 4) (2 3) (2 1) (2 4) (3 1) (3 4)]

Calcul de la valeur de PI arrondie

from math import pi

[str(round(pi i)) for i in range(1 6)]

[31 314 3142 31416 314159]

Geacuteneacuterateur avec utilisation de YIELD

def generateur()

yield a

yield b

yield cldquo

i=generateur()

for v in i

print v

a

b

c

Base de repreacutesentation des donneacutees

45

Les expressions reacuteguliegraveres en python Les expressions reacuteguliegravere sont utiliseacutees pour veacuterifier la conformiteacute des expressions de

chaines de caractegraveres par rapport agrave un motif Les symboles suivants sont utiliseacutes

^ $ + [ ] | ( )

Le point correspond agrave nimporte quel caractegravere

^ Indique un commencement de segment mais signifie aussi contraire de

$ Fin de segment

[xy] Une liste de segment possible Exemple [abc] eacutequivaut agrave a b ou c

(x|y) Indique un choix multiple type (ps|ump) eacutequivaut agrave ps OU UMP

d le segment est composeacute uniquement de chiffre ce qui eacutequivaut agrave [0-9]

D le segment nest pas composeacute de chiffre ce qui eacutequivaut agrave [^0-9]

s Un espace ce qui eacutequivaut agrave [ tnrfv]

S Pas despace ce qui eacutequivaut agrave [^ tnrfv]

w Preacutesence alphanumeacuterique ce qui eacutequivaut agrave [a-zA-Z0-9_]

W Pas de preacutesence alphanumeacuterique [^a-zA-Z0-9_]

Est un caractegravere deacutechappement T2 Le T soit reacutepeacuteteacute 2 fois

TA19 La seacutequence TA doit ecirctre preacutesente de 1 agrave 9 fois

TAM10 La seacutequence TAM nrsquoexiste pas ou reacutepeacuteteacutee 10 fois

LI1 La seacutequence LI doit ecirctre reacutepeacuteteacutee au moins une fois

Base de repreacutesentation des donneacutees

46

Les expressions reacuteguliegraveres en python Utilisation des expressions reacuteguliegravere

import re

print rematch(rGR()S GRIS)

lt_sreSRE_Match object at 0x02019DE0gt

Une utilisation freacutequente consiste en la validation des valeurs des emails saisis

Utilisation des expressions reacuteguliegravere

import re

mails = [lsquomtamaligmailcomrsquorsquoutmbuniv-bechardzrsquo lsquo8freefrrsquo lsquouniv-bechardzrsquo lsquotamalicdtarsquo]

regex = recompile(rrsquo^[a-z0-9_-]+[a-z0-9_-]+[(com|fr|dz)]+rsquo

for mail in mails

if regexmatch(mail) is not None

print Ce mail s est valide mail

else

print Erreur ce mail s est non valide mail

Ce mail mtamaligmailcom est valide

Ce mail utmbuniv-bechardz est valide

Ce mail 8freefr est valide

Erreur ce mail univ-bechardz est non valide

Erreur ce mail tamalicdta est non valide

Base de repreacutesentation des donneacutees

47

Les fichiers Creacuteer lire et eacutecrire dans un fichier en python Utilisation des expressions reacuteguliegravere

fichier = open(donneestxt r)

print fichier

ltopen file lsquodonneestxt mode r at 0x7ff6cf3fe4b0gt

Le descripteur permet de renseigner la machine sur la maniegravere avec laquelle le fichier est utiliseacute

r pour ouverture en mode READ

w pour ouverture en mode WRITE chaque fois le contenu du fichier est eacutecraseacute sinon python le creacutee

a pour ajout lsquoAPPENDrsquo Si le fichier nexiste pas python le creacutee

b Ouverture en mode Binaire

t Ouverture en mode Texte

x creacutee un nouveau fichier et louvrir pour eacutecriture

proceacutedure geacuteneacuterale pour lrsquoutilisation drsquoun fichier

fichier = open(lsquodonneestxtrsquo r)

print fichierread()

fichierclose()

Lrsquoinstruction WITH peut ecirctre utiliseacutee sans besoin de la fonction CLOSE

with open(datatxt r) as fichier

print fichierread()

Base de repreacutesentation des donneacutees

48

49

Le langage Python est un langage script interpreacuteteacute Le programme portant lrsquoune des extension py pyw ou pwc est

structureacute selon le canevas suivant

Les codifications

usrbinpython27

--codingencodage -

Les imports des librairies

Les instructions

Le langage Python passe pour ecirctre exeacutecuteacute sur deux eacutetapes la premiegravere UNE PRECOMPILATION geacuteneacuteration du code

machine et finalement un eacutecriture en code machine exeacutecutable (selon la machine)

Lrsquoenvironnement drsquoexeacutecution des scripts eacutecrits en Python regroupe les avantages des TRADUCTEURS (travaille en ligne par

ligne) et les COMPILATEURS (puissance de la structure algorithmique)

La bibliothegraveque cx_Freeze sert agrave transformer les fichiers scripts Pyhon py en exeacutecutable exe

Structures algorithmique du python

50

51

Matrices amp Systegravemes lineacuteaires

52

53

54

55

56

57

Le calcul scientifique

Reacutefeacuterences L-V Bertallanfy lsquoGeneral System Theoryrsquo Edition MASSON 1972

58

Page 29: Chap XIII : calcul scientifique avec python

Les environnements de deacuteveloppement inteacutegreacutes de code Python sont nombreux des solutions proprieacutetaires agrave celles portant le

label GPL Ils sont de trois grandes cateacutegories

Les applications bureaux (Desktop)

Les consoles de commande en ligne

Les interfaces orienteacutees Web

Outils drsquoeacutelaboration de code Python (IDE)

29

30

Nom de Symbole Les noms de variables en Python peuvent contenir des caractegraveres alphanumeacuteriques a-z A-Z 0-

9 et certains caractegraveres speacuteciaux tel que _ Les noms de variables normales doivent commencer par une lettre

Par convention les noms de variables commencent par une lettre minuscule et les noms de classe commencent par

une lettre majuscule En outre il y a un certain nombre de mots-cleacutes Python qui ne peuvent pas ecirctre utiliseacutes comme

noms de variables Ces mots-cleacutes sont les suivants

and as assert break class continue def del elif else except exec finally for from global if import in

is lambda not or pass print raise return try while with yield

Affectation assignment de variable

x = 10

my_variable = 122

type(x) fonction TYPE retourne le type de la variable entre parenthegravese

builtinsfloat

Verification de type x = 10

veacuterifier si la variable est reacuteelle

type(x) is float

isinstance(x float)

True

z = complex(x)

print(z type(z))

(1+0j) ltclass complexlsquogt

Base de repreacutesentation des donneacutees

31

Operateurs et comparaisons Opeacuterateurs arithmeacutetiques + - (division entiegravere) puissance

30 20

10

NB operators puissance en python nrsquoest pas ^ mais

2 2

4

Les opeacuterateurs de comparaison sont gtltgt=lt===

objects identiques

x1 = x2 = [12]

x1 is x2

True

2 gt= 2 2 lt= 2

(True True)

Chaines de caractegraveres les liste et les dictionnaires s = Hello world

type(s)

builtinsstr

length of the string the number of characters

len(s)

11

replace a substring in a string with somethign else

s2 = sreplace(world test)

print(s2)

Hello test

s[0]

H

Base de repreacutesentation des donneacutees

32

Chaines de caractegraveres les liste et les dictionnaires s = Hello worldldquo

replace a substring in a string with somethign else

s2 = sreplace(world test)

Hello test

print(s2)

s[05]

Hellolsquo

s[05]

Hellolsquo

s[]

Hello worldlsquo

print(value = f 10) Formatage C des variables

value = 1000000

s2 = value1 = 2f value2 = d (31415 15)

print(s2)

value1 = 314 value2 = 1

Listes l = [1234]

print(type(l))

print(l)

ltclass listgt

[1 2 3 4]

l = [1 a 10 1-1j] peuvent ecirctre heacuteteacuterogegravene

print(l)

[1 a 10 (1-1j)]

Base de repreacutesentation des donneacutees

33

Listes start = 10

stop = 30

step = 2

range(start stop step)

range(10 30 2)

list(range(start stop step))

[10 12 14 16 18 20 22 24 26 28]

s2 = list(s)

S2

[H e l l o w o r l d]

Tri de la liste

s2sort()

print(s2)

[ H d e l l l o o r w]

l = []

lappend(A)

lappend(d)

lappend(d)

print(l)

[A d d]

Tuples Ce sont des variables comme les listes mais pas alteacuterables

point = (10 20)

print(point type(point))

(10 20) ltclass tuplegt

Base de repreacutesentation des donneacutees

34

Tuples x y = point

print(x = x)

print(y = y)

x = 10

y = 20

Dictionaries params = parameter1 10 parameter2 20 parameter3 30

print(type(params))

print(params)

ltclass dictgt

fparameter2 20 parameter3 30 parameter1 10

params[parameter1] = A

params[parameter2] = B

Ajouter une nouvelle entreacutee

params[parameter4] = D

print(paramegravetre = + str(params[parameter1]))

print(paramegravetre = + str(params[parameter2]))

print(paramegravetre = + str(params[parameter3]))

print(paramegravetre = + str(params[parameter4]))

paramegravetre = A

paramegravetre = B

paramegravetre = 30

paramegravetre = D

Base de repreacutesentation des donneacutees

35

36

Affectation amp Controcircle conditionnel de flue statement1 = False Crsquoest une affectation

statement2 = False

if statement1 Test valideacute condition (statement1) est VRAIE

print(statement1 is True)

elif statement2 Exeacutecuteacutee condition (statement2) est VRAIE

print(statement2 is True)

else Exeacutecuteacutee sinon

print(statement1 and statement2 are False)

Boucles for x in [123] [123] peut ecirctre deacutesigneacute par range(3) avec print(x+1)

print(x)

1

2

3

for word in [scientific computing with python]

print(word) condition de reacutepeacutetition deacutependante du contenu de la liste

scientific

computing

with

python

l1 = [x2 for x in range(05)] agrave remarquer la compaciteacute du Python

print(l1)

[0 1 4 9 16]

Base de repreacutesentation des donneacutees

37

Boucles var = 0

while var = 1

print jlsquoeacutecris mon programme ici

choix = raw_input(voulez vous recommencer ( on ) )

if choix == n

var = 1

else

lsquovous allez ecirctre renvoyeacute au deacutebut du programmersquo

X = y 2

while x gt 1

If y x == 0

print y lsquo est facteur de rsquo x

break

x -= 1

else

print y lsquo est premierlsquo

Lrsquoutilisation de zip et map peut srsquoaveacutereacutee encore plus efficace

l1 = [1 2 3]

l2 = [4 5 6]

for (x y) in zip(l1 l2)

print x y -- x + y

1 4 -- 5

2 5 -- 7

3 6 -- 9

Base de repreacutesentation des donneacutees

38

s=0123456789

print map(int s)

[0 1 2 3 4 5 6 7 8 9]

Utilisation et

puissance de MAP

Utilisation de ZIP

Intervales range(start stop step)

range(5 10)

5 jusqursquoagrave 10 (exclue) avec un pas de 1

range(0 10 3)

0 3 6 9

range(-10 -100 -30)

-10 -40 -70

Test conditionnel binaire x = 5

y = 10

if x gt y

print(x est grand que y)

else

print(ldquox nrsquoest pas grand que yrdquo)

Dans Python on peut compliquer les chose

x = 5

y = 10

Z = 12

if z gt x gt y

print(lsquoy est petit que x et x est petit que z)

Base de repreacutesentation des donneacutees

39

Boucle avec test conditionnel binaire break continue et else dans une boucle for

for n in range(2 10)

for x in range(2 n)

if n x == 0

print(n lsquoest eacutegal agrave x nx)

break

else

print(n lsquoest premier)

Utilisation de lrsquoinstruction continue

for num in range(2 10)

if num 2 == 0 le symbole deacutesigne lrsquoopeacuteration RESTE de la division

print(ldquoNombre paire trouveacute num)

continue

print(ldquoNombre non premier num)

Base de repreacutesentation des donneacutees

40

Deacutefinition de fonction (proceacutedure avec retour) def fib(n) Ecrire la suite de Fibonacci jusqursquoagrave n

a b = 0 1

while a lt n

print(a end= )

a b = b a+b

print()

fib(2000)

0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597

f = fib deacutesignation par reacutefeacuterence f agrave la fonction fib

f(100)

0 1 1 2 3 5 8 13 21 34 55 89

autre type de deacutefinition de fonction

def ask_ok(prompt retries=4 complaint=Oui or Non srsquoil vou plait )

while True

ok = input(prompt)

if ok in (lsquoo lsquooui lsquoOui)

return True

if ok in (lsquon no non lsquoNon)

return False

retries = retries - 1

if retries lt 0

raise OSError(lsquoUtilisateur non coopeacuteratif)

print(complaint)

Base de repreacutesentation des donneacutees

41

Lrsquoinstruction lambda def make_incrementeur(n)

return lambda x x + n

f = make_incrementeur(42)

f(0)

42

f(1)

43

un autre cas drsquoutilisation

pairs = [(1 one) (2 two) (3 three) (4 four)]

pairssort(key=lambda pair pair[1])

pairs

[(4 four) (1 one) (3 three) (2 two)]

Les annotations dans une fonction Les annotations deacutefinissent des messages de preacutesentation

def f(chiken str eggs str = eggs) -gt str remarquer que la fonction est de type STR

print(Annotations f__annotations__)

print(Arguments chiken eggs)

return chiken + and + eggs

f(spam)

Annotations chiken ltclass strgt return ltclass strgt eggs ltclass strgt

Arguments spam eggs

spam and eggslsquo

Base de repreacutesentation des donneacutees

42

Les deacutecorateurs python Notre deacutecorateur

def decorate(func)

print uJe suis dans la fonction decorate et je deacutecore s func__name__

print uExeacutecution de la fonction s func__name__

return func

Fonction cible utiliseacutee avec DECORATOR

decorate

def foobar(args)

print join(args)

Exemple drsquoappel de la fonction

foobar(A B C D)

Je suis dans la fonction decorate et je deacutecore foobar

Exeacutecution de la fonction foobar

A B C D

Il est posible drsquoattribuer plusieurs deacutecorateurs agrave une seule fonction

decorateur1

decorateur2

def ma_fonction()

instructions

Base de repreacutesentation des donneacutees

43

Manipulation des listes a = [6625 333 333 1 12345]

print(acount(333) acount(6625) acount(x))

2 1 0

ainsert(2 -1)

aappend(333)

a

[6625 333 -1 333 1 12345 333]

aindex(333)

1

aremove(333)

a

[6625 -1 333 1 12345 333]

areverse()

a

[333 12345 1 333 -1 6625]

asort()

a

[-1 1 6625 333 333 12345]

apop()

12345

a

[-1 1 6625 333 333]

Base de repreacutesentation des donneacutees

44

Puissance du langage Python Lrsquoensemble des lignes suiantes peut ecirctre compacteacute par ce qui suit

combs = []

for x in [123]

for y in [314]

if x = y

combsappend((x y))

Combs

Ou bien

[(x y) for x in [123] for y in [314] if x = y]

Donne le mecircme reacutesultat

[(1 3) (1 4) (2 3) (2 1) (2 4) (3 1) (3 4)]

Calcul de la valeur de PI arrondie

from math import pi

[str(round(pi i)) for i in range(1 6)]

[31 314 3142 31416 314159]

Geacuteneacuterateur avec utilisation de YIELD

def generateur()

yield a

yield b

yield cldquo

i=generateur()

for v in i

print v

a

b

c

Base de repreacutesentation des donneacutees

45

Les expressions reacuteguliegraveres en python Les expressions reacuteguliegravere sont utiliseacutees pour veacuterifier la conformiteacute des expressions de

chaines de caractegraveres par rapport agrave un motif Les symboles suivants sont utiliseacutes

^ $ + [ ] | ( )

Le point correspond agrave nimporte quel caractegravere

^ Indique un commencement de segment mais signifie aussi contraire de

$ Fin de segment

[xy] Une liste de segment possible Exemple [abc] eacutequivaut agrave a b ou c

(x|y) Indique un choix multiple type (ps|ump) eacutequivaut agrave ps OU UMP

d le segment est composeacute uniquement de chiffre ce qui eacutequivaut agrave [0-9]

D le segment nest pas composeacute de chiffre ce qui eacutequivaut agrave [^0-9]

s Un espace ce qui eacutequivaut agrave [ tnrfv]

S Pas despace ce qui eacutequivaut agrave [^ tnrfv]

w Preacutesence alphanumeacuterique ce qui eacutequivaut agrave [a-zA-Z0-9_]

W Pas de preacutesence alphanumeacuterique [^a-zA-Z0-9_]

Est un caractegravere deacutechappement T2 Le T soit reacutepeacuteteacute 2 fois

TA19 La seacutequence TA doit ecirctre preacutesente de 1 agrave 9 fois

TAM10 La seacutequence TAM nrsquoexiste pas ou reacutepeacuteteacutee 10 fois

LI1 La seacutequence LI doit ecirctre reacutepeacuteteacutee au moins une fois

Base de repreacutesentation des donneacutees

46

Les expressions reacuteguliegraveres en python Utilisation des expressions reacuteguliegravere

import re

print rematch(rGR()S GRIS)

lt_sreSRE_Match object at 0x02019DE0gt

Une utilisation freacutequente consiste en la validation des valeurs des emails saisis

Utilisation des expressions reacuteguliegravere

import re

mails = [lsquomtamaligmailcomrsquorsquoutmbuniv-bechardzrsquo lsquo8freefrrsquo lsquouniv-bechardzrsquo lsquotamalicdtarsquo]

regex = recompile(rrsquo^[a-z0-9_-]+[a-z0-9_-]+[(com|fr|dz)]+rsquo

for mail in mails

if regexmatch(mail) is not None

print Ce mail s est valide mail

else

print Erreur ce mail s est non valide mail

Ce mail mtamaligmailcom est valide

Ce mail utmbuniv-bechardz est valide

Ce mail 8freefr est valide

Erreur ce mail univ-bechardz est non valide

Erreur ce mail tamalicdta est non valide

Base de repreacutesentation des donneacutees

47

Les fichiers Creacuteer lire et eacutecrire dans un fichier en python Utilisation des expressions reacuteguliegravere

fichier = open(donneestxt r)

print fichier

ltopen file lsquodonneestxt mode r at 0x7ff6cf3fe4b0gt

Le descripteur permet de renseigner la machine sur la maniegravere avec laquelle le fichier est utiliseacute

r pour ouverture en mode READ

w pour ouverture en mode WRITE chaque fois le contenu du fichier est eacutecraseacute sinon python le creacutee

a pour ajout lsquoAPPENDrsquo Si le fichier nexiste pas python le creacutee

b Ouverture en mode Binaire

t Ouverture en mode Texte

x creacutee un nouveau fichier et louvrir pour eacutecriture

proceacutedure geacuteneacuterale pour lrsquoutilisation drsquoun fichier

fichier = open(lsquodonneestxtrsquo r)

print fichierread()

fichierclose()

Lrsquoinstruction WITH peut ecirctre utiliseacutee sans besoin de la fonction CLOSE

with open(datatxt r) as fichier

print fichierread()

Base de repreacutesentation des donneacutees

48

49

Le langage Python est un langage script interpreacuteteacute Le programme portant lrsquoune des extension py pyw ou pwc est

structureacute selon le canevas suivant

Les codifications

usrbinpython27

--codingencodage -

Les imports des librairies

Les instructions

Le langage Python passe pour ecirctre exeacutecuteacute sur deux eacutetapes la premiegravere UNE PRECOMPILATION geacuteneacuteration du code

machine et finalement un eacutecriture en code machine exeacutecutable (selon la machine)

Lrsquoenvironnement drsquoexeacutecution des scripts eacutecrits en Python regroupe les avantages des TRADUCTEURS (travaille en ligne par

ligne) et les COMPILATEURS (puissance de la structure algorithmique)

La bibliothegraveque cx_Freeze sert agrave transformer les fichiers scripts Pyhon py en exeacutecutable exe

Structures algorithmique du python

50

51

Matrices amp Systegravemes lineacuteaires

52

53

54

55

56

57

Le calcul scientifique

Reacutefeacuterences L-V Bertallanfy lsquoGeneral System Theoryrsquo Edition MASSON 1972

58

Page 30: Chap XIII : calcul scientifique avec python

30

Nom de Symbole Les noms de variables en Python peuvent contenir des caractegraveres alphanumeacuteriques a-z A-Z 0-

9 et certains caractegraveres speacuteciaux tel que _ Les noms de variables normales doivent commencer par une lettre

Par convention les noms de variables commencent par une lettre minuscule et les noms de classe commencent par

une lettre majuscule En outre il y a un certain nombre de mots-cleacutes Python qui ne peuvent pas ecirctre utiliseacutes comme

noms de variables Ces mots-cleacutes sont les suivants

and as assert break class continue def del elif else except exec finally for from global if import in

is lambda not or pass print raise return try while with yield

Affectation assignment de variable

x = 10

my_variable = 122

type(x) fonction TYPE retourne le type de la variable entre parenthegravese

builtinsfloat

Verification de type x = 10

veacuterifier si la variable est reacuteelle

type(x) is float

isinstance(x float)

True

z = complex(x)

print(z type(z))

(1+0j) ltclass complexlsquogt

Base de repreacutesentation des donneacutees

31

Operateurs et comparaisons Opeacuterateurs arithmeacutetiques + - (division entiegravere) puissance

30 20

10

NB operators puissance en python nrsquoest pas ^ mais

2 2

4

Les opeacuterateurs de comparaison sont gtltgt=lt===

objects identiques

x1 = x2 = [12]

x1 is x2

True

2 gt= 2 2 lt= 2

(True True)

Chaines de caractegraveres les liste et les dictionnaires s = Hello world

type(s)

builtinsstr

length of the string the number of characters

len(s)

11

replace a substring in a string with somethign else

s2 = sreplace(world test)

print(s2)

Hello test

s[0]

H

Base de repreacutesentation des donneacutees

32

Chaines de caractegraveres les liste et les dictionnaires s = Hello worldldquo

replace a substring in a string with somethign else

s2 = sreplace(world test)

Hello test

print(s2)

s[05]

Hellolsquo

s[05]

Hellolsquo

s[]

Hello worldlsquo

print(value = f 10) Formatage C des variables

value = 1000000

s2 = value1 = 2f value2 = d (31415 15)

print(s2)

value1 = 314 value2 = 1

Listes l = [1234]

print(type(l))

print(l)

ltclass listgt

[1 2 3 4]

l = [1 a 10 1-1j] peuvent ecirctre heacuteteacuterogegravene

print(l)

[1 a 10 (1-1j)]

Base de repreacutesentation des donneacutees

33

Listes start = 10

stop = 30

step = 2

range(start stop step)

range(10 30 2)

list(range(start stop step))

[10 12 14 16 18 20 22 24 26 28]

s2 = list(s)

S2

[H e l l o w o r l d]

Tri de la liste

s2sort()

print(s2)

[ H d e l l l o o r w]

l = []

lappend(A)

lappend(d)

lappend(d)

print(l)

[A d d]

Tuples Ce sont des variables comme les listes mais pas alteacuterables

point = (10 20)

print(point type(point))

(10 20) ltclass tuplegt

Base de repreacutesentation des donneacutees

34

Tuples x y = point

print(x = x)

print(y = y)

x = 10

y = 20

Dictionaries params = parameter1 10 parameter2 20 parameter3 30

print(type(params))

print(params)

ltclass dictgt

fparameter2 20 parameter3 30 parameter1 10

params[parameter1] = A

params[parameter2] = B

Ajouter une nouvelle entreacutee

params[parameter4] = D

print(paramegravetre = + str(params[parameter1]))

print(paramegravetre = + str(params[parameter2]))

print(paramegravetre = + str(params[parameter3]))

print(paramegravetre = + str(params[parameter4]))

paramegravetre = A

paramegravetre = B

paramegravetre = 30

paramegravetre = D

Base de repreacutesentation des donneacutees

35

36

Affectation amp Controcircle conditionnel de flue statement1 = False Crsquoest une affectation

statement2 = False

if statement1 Test valideacute condition (statement1) est VRAIE

print(statement1 is True)

elif statement2 Exeacutecuteacutee condition (statement2) est VRAIE

print(statement2 is True)

else Exeacutecuteacutee sinon

print(statement1 and statement2 are False)

Boucles for x in [123] [123] peut ecirctre deacutesigneacute par range(3) avec print(x+1)

print(x)

1

2

3

for word in [scientific computing with python]

print(word) condition de reacutepeacutetition deacutependante du contenu de la liste

scientific

computing

with

python

l1 = [x2 for x in range(05)] agrave remarquer la compaciteacute du Python

print(l1)

[0 1 4 9 16]

Base de repreacutesentation des donneacutees

37

Boucles var = 0

while var = 1

print jlsquoeacutecris mon programme ici

choix = raw_input(voulez vous recommencer ( on ) )

if choix == n

var = 1

else

lsquovous allez ecirctre renvoyeacute au deacutebut du programmersquo

X = y 2

while x gt 1

If y x == 0

print y lsquo est facteur de rsquo x

break

x -= 1

else

print y lsquo est premierlsquo

Lrsquoutilisation de zip et map peut srsquoaveacutereacutee encore plus efficace

l1 = [1 2 3]

l2 = [4 5 6]

for (x y) in zip(l1 l2)

print x y -- x + y

1 4 -- 5

2 5 -- 7

3 6 -- 9

Base de repreacutesentation des donneacutees

38

s=0123456789

print map(int s)

[0 1 2 3 4 5 6 7 8 9]

Utilisation et

puissance de MAP

Utilisation de ZIP

Intervales range(start stop step)

range(5 10)

5 jusqursquoagrave 10 (exclue) avec un pas de 1

range(0 10 3)

0 3 6 9

range(-10 -100 -30)

-10 -40 -70

Test conditionnel binaire x = 5

y = 10

if x gt y

print(x est grand que y)

else

print(ldquox nrsquoest pas grand que yrdquo)

Dans Python on peut compliquer les chose

x = 5

y = 10

Z = 12

if z gt x gt y

print(lsquoy est petit que x et x est petit que z)

Base de repreacutesentation des donneacutees

39

Boucle avec test conditionnel binaire break continue et else dans une boucle for

for n in range(2 10)

for x in range(2 n)

if n x == 0

print(n lsquoest eacutegal agrave x nx)

break

else

print(n lsquoest premier)

Utilisation de lrsquoinstruction continue

for num in range(2 10)

if num 2 == 0 le symbole deacutesigne lrsquoopeacuteration RESTE de la division

print(ldquoNombre paire trouveacute num)

continue

print(ldquoNombre non premier num)

Base de repreacutesentation des donneacutees

40

Deacutefinition de fonction (proceacutedure avec retour) def fib(n) Ecrire la suite de Fibonacci jusqursquoagrave n

a b = 0 1

while a lt n

print(a end= )

a b = b a+b

print()

fib(2000)

0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597

f = fib deacutesignation par reacutefeacuterence f agrave la fonction fib

f(100)

0 1 1 2 3 5 8 13 21 34 55 89

autre type de deacutefinition de fonction

def ask_ok(prompt retries=4 complaint=Oui or Non srsquoil vou plait )

while True

ok = input(prompt)

if ok in (lsquoo lsquooui lsquoOui)

return True

if ok in (lsquon no non lsquoNon)

return False

retries = retries - 1

if retries lt 0

raise OSError(lsquoUtilisateur non coopeacuteratif)

print(complaint)

Base de repreacutesentation des donneacutees

41

Lrsquoinstruction lambda def make_incrementeur(n)

return lambda x x + n

f = make_incrementeur(42)

f(0)

42

f(1)

43

un autre cas drsquoutilisation

pairs = [(1 one) (2 two) (3 three) (4 four)]

pairssort(key=lambda pair pair[1])

pairs

[(4 four) (1 one) (3 three) (2 two)]

Les annotations dans une fonction Les annotations deacutefinissent des messages de preacutesentation

def f(chiken str eggs str = eggs) -gt str remarquer que la fonction est de type STR

print(Annotations f__annotations__)

print(Arguments chiken eggs)

return chiken + and + eggs

f(spam)

Annotations chiken ltclass strgt return ltclass strgt eggs ltclass strgt

Arguments spam eggs

spam and eggslsquo

Base de repreacutesentation des donneacutees

42

Les deacutecorateurs python Notre deacutecorateur

def decorate(func)

print uJe suis dans la fonction decorate et je deacutecore s func__name__

print uExeacutecution de la fonction s func__name__

return func

Fonction cible utiliseacutee avec DECORATOR

decorate

def foobar(args)

print join(args)

Exemple drsquoappel de la fonction

foobar(A B C D)

Je suis dans la fonction decorate et je deacutecore foobar

Exeacutecution de la fonction foobar

A B C D

Il est posible drsquoattribuer plusieurs deacutecorateurs agrave une seule fonction

decorateur1

decorateur2

def ma_fonction()

instructions

Base de repreacutesentation des donneacutees

43

Manipulation des listes a = [6625 333 333 1 12345]

print(acount(333) acount(6625) acount(x))

2 1 0

ainsert(2 -1)

aappend(333)

a

[6625 333 -1 333 1 12345 333]

aindex(333)

1

aremove(333)

a

[6625 -1 333 1 12345 333]

areverse()

a

[333 12345 1 333 -1 6625]

asort()

a

[-1 1 6625 333 333 12345]

apop()

12345

a

[-1 1 6625 333 333]

Base de repreacutesentation des donneacutees

44

Puissance du langage Python Lrsquoensemble des lignes suiantes peut ecirctre compacteacute par ce qui suit

combs = []

for x in [123]

for y in [314]

if x = y

combsappend((x y))

Combs

Ou bien

[(x y) for x in [123] for y in [314] if x = y]

Donne le mecircme reacutesultat

[(1 3) (1 4) (2 3) (2 1) (2 4) (3 1) (3 4)]

Calcul de la valeur de PI arrondie

from math import pi

[str(round(pi i)) for i in range(1 6)]

[31 314 3142 31416 314159]

Geacuteneacuterateur avec utilisation de YIELD

def generateur()

yield a

yield b

yield cldquo

i=generateur()

for v in i

print v

a

b

c

Base de repreacutesentation des donneacutees

45

Les expressions reacuteguliegraveres en python Les expressions reacuteguliegravere sont utiliseacutees pour veacuterifier la conformiteacute des expressions de

chaines de caractegraveres par rapport agrave un motif Les symboles suivants sont utiliseacutes

^ $ + [ ] | ( )

Le point correspond agrave nimporte quel caractegravere

^ Indique un commencement de segment mais signifie aussi contraire de

$ Fin de segment

[xy] Une liste de segment possible Exemple [abc] eacutequivaut agrave a b ou c

(x|y) Indique un choix multiple type (ps|ump) eacutequivaut agrave ps OU UMP

d le segment est composeacute uniquement de chiffre ce qui eacutequivaut agrave [0-9]

D le segment nest pas composeacute de chiffre ce qui eacutequivaut agrave [^0-9]

s Un espace ce qui eacutequivaut agrave [ tnrfv]

S Pas despace ce qui eacutequivaut agrave [^ tnrfv]

w Preacutesence alphanumeacuterique ce qui eacutequivaut agrave [a-zA-Z0-9_]

W Pas de preacutesence alphanumeacuterique [^a-zA-Z0-9_]

Est un caractegravere deacutechappement T2 Le T soit reacutepeacuteteacute 2 fois

TA19 La seacutequence TA doit ecirctre preacutesente de 1 agrave 9 fois

TAM10 La seacutequence TAM nrsquoexiste pas ou reacutepeacuteteacutee 10 fois

LI1 La seacutequence LI doit ecirctre reacutepeacuteteacutee au moins une fois

Base de repreacutesentation des donneacutees

46

Les expressions reacuteguliegraveres en python Utilisation des expressions reacuteguliegravere

import re

print rematch(rGR()S GRIS)

lt_sreSRE_Match object at 0x02019DE0gt

Une utilisation freacutequente consiste en la validation des valeurs des emails saisis

Utilisation des expressions reacuteguliegravere

import re

mails = [lsquomtamaligmailcomrsquorsquoutmbuniv-bechardzrsquo lsquo8freefrrsquo lsquouniv-bechardzrsquo lsquotamalicdtarsquo]

regex = recompile(rrsquo^[a-z0-9_-]+[a-z0-9_-]+[(com|fr|dz)]+rsquo

for mail in mails

if regexmatch(mail) is not None

print Ce mail s est valide mail

else

print Erreur ce mail s est non valide mail

Ce mail mtamaligmailcom est valide

Ce mail utmbuniv-bechardz est valide

Ce mail 8freefr est valide

Erreur ce mail univ-bechardz est non valide

Erreur ce mail tamalicdta est non valide

Base de repreacutesentation des donneacutees

47

Les fichiers Creacuteer lire et eacutecrire dans un fichier en python Utilisation des expressions reacuteguliegravere

fichier = open(donneestxt r)

print fichier

ltopen file lsquodonneestxt mode r at 0x7ff6cf3fe4b0gt

Le descripteur permet de renseigner la machine sur la maniegravere avec laquelle le fichier est utiliseacute

r pour ouverture en mode READ

w pour ouverture en mode WRITE chaque fois le contenu du fichier est eacutecraseacute sinon python le creacutee

a pour ajout lsquoAPPENDrsquo Si le fichier nexiste pas python le creacutee

b Ouverture en mode Binaire

t Ouverture en mode Texte

x creacutee un nouveau fichier et louvrir pour eacutecriture

proceacutedure geacuteneacuterale pour lrsquoutilisation drsquoun fichier

fichier = open(lsquodonneestxtrsquo r)

print fichierread()

fichierclose()

Lrsquoinstruction WITH peut ecirctre utiliseacutee sans besoin de la fonction CLOSE

with open(datatxt r) as fichier

print fichierread()

Base de repreacutesentation des donneacutees

48

49

Le langage Python est un langage script interpreacuteteacute Le programme portant lrsquoune des extension py pyw ou pwc est

structureacute selon le canevas suivant

Les codifications

usrbinpython27

--codingencodage -

Les imports des librairies

Les instructions

Le langage Python passe pour ecirctre exeacutecuteacute sur deux eacutetapes la premiegravere UNE PRECOMPILATION geacuteneacuteration du code

machine et finalement un eacutecriture en code machine exeacutecutable (selon la machine)

Lrsquoenvironnement drsquoexeacutecution des scripts eacutecrits en Python regroupe les avantages des TRADUCTEURS (travaille en ligne par

ligne) et les COMPILATEURS (puissance de la structure algorithmique)

La bibliothegraveque cx_Freeze sert agrave transformer les fichiers scripts Pyhon py en exeacutecutable exe

Structures algorithmique du python

50

51

Matrices amp Systegravemes lineacuteaires

52

53

54

55

56

57

Le calcul scientifique

Reacutefeacuterences L-V Bertallanfy lsquoGeneral System Theoryrsquo Edition MASSON 1972

58

Page 31: Chap XIII : calcul scientifique avec python

Nom de Symbole Les noms de variables en Python peuvent contenir des caractegraveres alphanumeacuteriques a-z A-Z 0-

9 et certains caractegraveres speacuteciaux tel que _ Les noms de variables normales doivent commencer par une lettre

Par convention les noms de variables commencent par une lettre minuscule et les noms de classe commencent par

une lettre majuscule En outre il y a un certain nombre de mots-cleacutes Python qui ne peuvent pas ecirctre utiliseacutes comme

noms de variables Ces mots-cleacutes sont les suivants

and as assert break class continue def del elif else except exec finally for from global if import in

is lambda not or pass print raise return try while with yield

Affectation assignment de variable

x = 10

my_variable = 122

type(x) fonction TYPE retourne le type de la variable entre parenthegravese

builtinsfloat

Verification de type x = 10

veacuterifier si la variable est reacuteelle

type(x) is float

isinstance(x float)

True

z = complex(x)

print(z type(z))

(1+0j) ltclass complexlsquogt

Base de repreacutesentation des donneacutees

31

Operateurs et comparaisons Opeacuterateurs arithmeacutetiques + - (division entiegravere) puissance

30 20

10

NB operators puissance en python nrsquoest pas ^ mais

2 2

4

Les opeacuterateurs de comparaison sont gtltgt=lt===

objects identiques

x1 = x2 = [12]

x1 is x2

True

2 gt= 2 2 lt= 2

(True True)

Chaines de caractegraveres les liste et les dictionnaires s = Hello world

type(s)

builtinsstr

length of the string the number of characters

len(s)

11

replace a substring in a string with somethign else

s2 = sreplace(world test)

print(s2)

Hello test

s[0]

H

Base de repreacutesentation des donneacutees

32

Chaines de caractegraveres les liste et les dictionnaires s = Hello worldldquo

replace a substring in a string with somethign else

s2 = sreplace(world test)

Hello test

print(s2)

s[05]

Hellolsquo

s[05]

Hellolsquo

s[]

Hello worldlsquo

print(value = f 10) Formatage C des variables

value = 1000000

s2 = value1 = 2f value2 = d (31415 15)

print(s2)

value1 = 314 value2 = 1

Listes l = [1234]

print(type(l))

print(l)

ltclass listgt

[1 2 3 4]

l = [1 a 10 1-1j] peuvent ecirctre heacuteteacuterogegravene

print(l)

[1 a 10 (1-1j)]

Base de repreacutesentation des donneacutees

33

Listes start = 10

stop = 30

step = 2

range(start stop step)

range(10 30 2)

list(range(start stop step))

[10 12 14 16 18 20 22 24 26 28]

s2 = list(s)

S2

[H e l l o w o r l d]

Tri de la liste

s2sort()

print(s2)

[ H d e l l l o o r w]

l = []

lappend(A)

lappend(d)

lappend(d)

print(l)

[A d d]

Tuples Ce sont des variables comme les listes mais pas alteacuterables

point = (10 20)

print(point type(point))

(10 20) ltclass tuplegt

Base de repreacutesentation des donneacutees

34

Tuples x y = point

print(x = x)

print(y = y)

x = 10

y = 20

Dictionaries params = parameter1 10 parameter2 20 parameter3 30

print(type(params))

print(params)

ltclass dictgt

fparameter2 20 parameter3 30 parameter1 10

params[parameter1] = A

params[parameter2] = B

Ajouter une nouvelle entreacutee

params[parameter4] = D

print(paramegravetre = + str(params[parameter1]))

print(paramegravetre = + str(params[parameter2]))

print(paramegravetre = + str(params[parameter3]))

print(paramegravetre = + str(params[parameter4]))

paramegravetre = A

paramegravetre = B

paramegravetre = 30

paramegravetre = D

Base de repreacutesentation des donneacutees

35

36

Affectation amp Controcircle conditionnel de flue statement1 = False Crsquoest une affectation

statement2 = False

if statement1 Test valideacute condition (statement1) est VRAIE

print(statement1 is True)

elif statement2 Exeacutecuteacutee condition (statement2) est VRAIE

print(statement2 is True)

else Exeacutecuteacutee sinon

print(statement1 and statement2 are False)

Boucles for x in [123] [123] peut ecirctre deacutesigneacute par range(3) avec print(x+1)

print(x)

1

2

3

for word in [scientific computing with python]

print(word) condition de reacutepeacutetition deacutependante du contenu de la liste

scientific

computing

with

python

l1 = [x2 for x in range(05)] agrave remarquer la compaciteacute du Python

print(l1)

[0 1 4 9 16]

Base de repreacutesentation des donneacutees

37

Boucles var = 0

while var = 1

print jlsquoeacutecris mon programme ici

choix = raw_input(voulez vous recommencer ( on ) )

if choix == n

var = 1

else

lsquovous allez ecirctre renvoyeacute au deacutebut du programmersquo

X = y 2

while x gt 1

If y x == 0

print y lsquo est facteur de rsquo x

break

x -= 1

else

print y lsquo est premierlsquo

Lrsquoutilisation de zip et map peut srsquoaveacutereacutee encore plus efficace

l1 = [1 2 3]

l2 = [4 5 6]

for (x y) in zip(l1 l2)

print x y -- x + y

1 4 -- 5

2 5 -- 7

3 6 -- 9

Base de repreacutesentation des donneacutees

38

s=0123456789

print map(int s)

[0 1 2 3 4 5 6 7 8 9]

Utilisation et

puissance de MAP

Utilisation de ZIP

Intervales range(start stop step)

range(5 10)

5 jusqursquoagrave 10 (exclue) avec un pas de 1

range(0 10 3)

0 3 6 9

range(-10 -100 -30)

-10 -40 -70

Test conditionnel binaire x = 5

y = 10

if x gt y

print(x est grand que y)

else

print(ldquox nrsquoest pas grand que yrdquo)

Dans Python on peut compliquer les chose

x = 5

y = 10

Z = 12

if z gt x gt y

print(lsquoy est petit que x et x est petit que z)

Base de repreacutesentation des donneacutees

39

Boucle avec test conditionnel binaire break continue et else dans une boucle for

for n in range(2 10)

for x in range(2 n)

if n x == 0

print(n lsquoest eacutegal agrave x nx)

break

else

print(n lsquoest premier)

Utilisation de lrsquoinstruction continue

for num in range(2 10)

if num 2 == 0 le symbole deacutesigne lrsquoopeacuteration RESTE de la division

print(ldquoNombre paire trouveacute num)

continue

print(ldquoNombre non premier num)

Base de repreacutesentation des donneacutees

40

Deacutefinition de fonction (proceacutedure avec retour) def fib(n) Ecrire la suite de Fibonacci jusqursquoagrave n

a b = 0 1

while a lt n

print(a end= )

a b = b a+b

print()

fib(2000)

0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597

f = fib deacutesignation par reacutefeacuterence f agrave la fonction fib

f(100)

0 1 1 2 3 5 8 13 21 34 55 89

autre type de deacutefinition de fonction

def ask_ok(prompt retries=4 complaint=Oui or Non srsquoil vou plait )

while True

ok = input(prompt)

if ok in (lsquoo lsquooui lsquoOui)

return True

if ok in (lsquon no non lsquoNon)

return False

retries = retries - 1

if retries lt 0

raise OSError(lsquoUtilisateur non coopeacuteratif)

print(complaint)

Base de repreacutesentation des donneacutees

41

Lrsquoinstruction lambda def make_incrementeur(n)

return lambda x x + n

f = make_incrementeur(42)

f(0)

42

f(1)

43

un autre cas drsquoutilisation

pairs = [(1 one) (2 two) (3 three) (4 four)]

pairssort(key=lambda pair pair[1])

pairs

[(4 four) (1 one) (3 three) (2 two)]

Les annotations dans une fonction Les annotations deacutefinissent des messages de preacutesentation

def f(chiken str eggs str = eggs) -gt str remarquer que la fonction est de type STR

print(Annotations f__annotations__)

print(Arguments chiken eggs)

return chiken + and + eggs

f(spam)

Annotations chiken ltclass strgt return ltclass strgt eggs ltclass strgt

Arguments spam eggs

spam and eggslsquo

Base de repreacutesentation des donneacutees

42

Les deacutecorateurs python Notre deacutecorateur

def decorate(func)

print uJe suis dans la fonction decorate et je deacutecore s func__name__

print uExeacutecution de la fonction s func__name__

return func

Fonction cible utiliseacutee avec DECORATOR

decorate

def foobar(args)

print join(args)

Exemple drsquoappel de la fonction

foobar(A B C D)

Je suis dans la fonction decorate et je deacutecore foobar

Exeacutecution de la fonction foobar

A B C D

Il est posible drsquoattribuer plusieurs deacutecorateurs agrave une seule fonction

decorateur1

decorateur2

def ma_fonction()

instructions

Base de repreacutesentation des donneacutees

43

Manipulation des listes a = [6625 333 333 1 12345]

print(acount(333) acount(6625) acount(x))

2 1 0

ainsert(2 -1)

aappend(333)

a

[6625 333 -1 333 1 12345 333]

aindex(333)

1

aremove(333)

a

[6625 -1 333 1 12345 333]

areverse()

a

[333 12345 1 333 -1 6625]

asort()

a

[-1 1 6625 333 333 12345]

apop()

12345

a

[-1 1 6625 333 333]

Base de repreacutesentation des donneacutees

44

Puissance du langage Python Lrsquoensemble des lignes suiantes peut ecirctre compacteacute par ce qui suit

combs = []

for x in [123]

for y in [314]

if x = y

combsappend((x y))

Combs

Ou bien

[(x y) for x in [123] for y in [314] if x = y]

Donne le mecircme reacutesultat

[(1 3) (1 4) (2 3) (2 1) (2 4) (3 1) (3 4)]

Calcul de la valeur de PI arrondie

from math import pi

[str(round(pi i)) for i in range(1 6)]

[31 314 3142 31416 314159]

Geacuteneacuterateur avec utilisation de YIELD

def generateur()

yield a

yield b

yield cldquo

i=generateur()

for v in i

print v

a

b

c

Base de repreacutesentation des donneacutees

45

Les expressions reacuteguliegraveres en python Les expressions reacuteguliegravere sont utiliseacutees pour veacuterifier la conformiteacute des expressions de

chaines de caractegraveres par rapport agrave un motif Les symboles suivants sont utiliseacutes

^ $ + [ ] | ( )

Le point correspond agrave nimporte quel caractegravere

^ Indique un commencement de segment mais signifie aussi contraire de

$ Fin de segment

[xy] Une liste de segment possible Exemple [abc] eacutequivaut agrave a b ou c

(x|y) Indique un choix multiple type (ps|ump) eacutequivaut agrave ps OU UMP

d le segment est composeacute uniquement de chiffre ce qui eacutequivaut agrave [0-9]

D le segment nest pas composeacute de chiffre ce qui eacutequivaut agrave [^0-9]

s Un espace ce qui eacutequivaut agrave [ tnrfv]

S Pas despace ce qui eacutequivaut agrave [^ tnrfv]

w Preacutesence alphanumeacuterique ce qui eacutequivaut agrave [a-zA-Z0-9_]

W Pas de preacutesence alphanumeacuterique [^a-zA-Z0-9_]

Est un caractegravere deacutechappement T2 Le T soit reacutepeacuteteacute 2 fois

TA19 La seacutequence TA doit ecirctre preacutesente de 1 agrave 9 fois

TAM10 La seacutequence TAM nrsquoexiste pas ou reacutepeacuteteacutee 10 fois

LI1 La seacutequence LI doit ecirctre reacutepeacuteteacutee au moins une fois

Base de repreacutesentation des donneacutees

46

Les expressions reacuteguliegraveres en python Utilisation des expressions reacuteguliegravere

import re

print rematch(rGR()S GRIS)

lt_sreSRE_Match object at 0x02019DE0gt

Une utilisation freacutequente consiste en la validation des valeurs des emails saisis

Utilisation des expressions reacuteguliegravere

import re

mails = [lsquomtamaligmailcomrsquorsquoutmbuniv-bechardzrsquo lsquo8freefrrsquo lsquouniv-bechardzrsquo lsquotamalicdtarsquo]

regex = recompile(rrsquo^[a-z0-9_-]+[a-z0-9_-]+[(com|fr|dz)]+rsquo

for mail in mails

if regexmatch(mail) is not None

print Ce mail s est valide mail

else

print Erreur ce mail s est non valide mail

Ce mail mtamaligmailcom est valide

Ce mail utmbuniv-bechardz est valide

Ce mail 8freefr est valide

Erreur ce mail univ-bechardz est non valide

Erreur ce mail tamalicdta est non valide

Base de repreacutesentation des donneacutees

47

Les fichiers Creacuteer lire et eacutecrire dans un fichier en python Utilisation des expressions reacuteguliegravere

fichier = open(donneestxt r)

print fichier

ltopen file lsquodonneestxt mode r at 0x7ff6cf3fe4b0gt

Le descripteur permet de renseigner la machine sur la maniegravere avec laquelle le fichier est utiliseacute

r pour ouverture en mode READ

w pour ouverture en mode WRITE chaque fois le contenu du fichier est eacutecraseacute sinon python le creacutee

a pour ajout lsquoAPPENDrsquo Si le fichier nexiste pas python le creacutee

b Ouverture en mode Binaire

t Ouverture en mode Texte

x creacutee un nouveau fichier et louvrir pour eacutecriture

proceacutedure geacuteneacuterale pour lrsquoutilisation drsquoun fichier

fichier = open(lsquodonneestxtrsquo r)

print fichierread()

fichierclose()

Lrsquoinstruction WITH peut ecirctre utiliseacutee sans besoin de la fonction CLOSE

with open(datatxt r) as fichier

print fichierread()

Base de repreacutesentation des donneacutees

48

49

Le langage Python est un langage script interpreacuteteacute Le programme portant lrsquoune des extension py pyw ou pwc est

structureacute selon le canevas suivant

Les codifications

usrbinpython27

--codingencodage -

Les imports des librairies

Les instructions

Le langage Python passe pour ecirctre exeacutecuteacute sur deux eacutetapes la premiegravere UNE PRECOMPILATION geacuteneacuteration du code

machine et finalement un eacutecriture en code machine exeacutecutable (selon la machine)

Lrsquoenvironnement drsquoexeacutecution des scripts eacutecrits en Python regroupe les avantages des TRADUCTEURS (travaille en ligne par

ligne) et les COMPILATEURS (puissance de la structure algorithmique)

La bibliothegraveque cx_Freeze sert agrave transformer les fichiers scripts Pyhon py en exeacutecutable exe

Structures algorithmique du python

50

51

Matrices amp Systegravemes lineacuteaires

52

53

54

55

56

57

Le calcul scientifique

Reacutefeacuterences L-V Bertallanfy lsquoGeneral System Theoryrsquo Edition MASSON 1972

58

Page 32: Chap XIII : calcul scientifique avec python

Operateurs et comparaisons Opeacuterateurs arithmeacutetiques + - (division entiegravere) puissance

30 20

10

NB operators puissance en python nrsquoest pas ^ mais

2 2

4

Les opeacuterateurs de comparaison sont gtltgt=lt===

objects identiques

x1 = x2 = [12]

x1 is x2

True

2 gt= 2 2 lt= 2

(True True)

Chaines de caractegraveres les liste et les dictionnaires s = Hello world

type(s)

builtinsstr

length of the string the number of characters

len(s)

11

replace a substring in a string with somethign else

s2 = sreplace(world test)

print(s2)

Hello test

s[0]

H

Base de repreacutesentation des donneacutees

32

Chaines de caractegraveres les liste et les dictionnaires s = Hello worldldquo

replace a substring in a string with somethign else

s2 = sreplace(world test)

Hello test

print(s2)

s[05]

Hellolsquo

s[05]

Hellolsquo

s[]

Hello worldlsquo

print(value = f 10) Formatage C des variables

value = 1000000

s2 = value1 = 2f value2 = d (31415 15)

print(s2)

value1 = 314 value2 = 1

Listes l = [1234]

print(type(l))

print(l)

ltclass listgt

[1 2 3 4]

l = [1 a 10 1-1j] peuvent ecirctre heacuteteacuterogegravene

print(l)

[1 a 10 (1-1j)]

Base de repreacutesentation des donneacutees

33

Listes start = 10

stop = 30

step = 2

range(start stop step)

range(10 30 2)

list(range(start stop step))

[10 12 14 16 18 20 22 24 26 28]

s2 = list(s)

S2

[H e l l o w o r l d]

Tri de la liste

s2sort()

print(s2)

[ H d e l l l o o r w]

l = []

lappend(A)

lappend(d)

lappend(d)

print(l)

[A d d]

Tuples Ce sont des variables comme les listes mais pas alteacuterables

point = (10 20)

print(point type(point))

(10 20) ltclass tuplegt

Base de repreacutesentation des donneacutees

34

Tuples x y = point

print(x = x)

print(y = y)

x = 10

y = 20

Dictionaries params = parameter1 10 parameter2 20 parameter3 30

print(type(params))

print(params)

ltclass dictgt

fparameter2 20 parameter3 30 parameter1 10

params[parameter1] = A

params[parameter2] = B

Ajouter une nouvelle entreacutee

params[parameter4] = D

print(paramegravetre = + str(params[parameter1]))

print(paramegravetre = + str(params[parameter2]))

print(paramegravetre = + str(params[parameter3]))

print(paramegravetre = + str(params[parameter4]))

paramegravetre = A

paramegravetre = B

paramegravetre = 30

paramegravetre = D

Base de repreacutesentation des donneacutees

35

36

Affectation amp Controcircle conditionnel de flue statement1 = False Crsquoest une affectation

statement2 = False

if statement1 Test valideacute condition (statement1) est VRAIE

print(statement1 is True)

elif statement2 Exeacutecuteacutee condition (statement2) est VRAIE

print(statement2 is True)

else Exeacutecuteacutee sinon

print(statement1 and statement2 are False)

Boucles for x in [123] [123] peut ecirctre deacutesigneacute par range(3) avec print(x+1)

print(x)

1

2

3

for word in [scientific computing with python]

print(word) condition de reacutepeacutetition deacutependante du contenu de la liste

scientific

computing

with

python

l1 = [x2 for x in range(05)] agrave remarquer la compaciteacute du Python

print(l1)

[0 1 4 9 16]

Base de repreacutesentation des donneacutees

37

Boucles var = 0

while var = 1

print jlsquoeacutecris mon programme ici

choix = raw_input(voulez vous recommencer ( on ) )

if choix == n

var = 1

else

lsquovous allez ecirctre renvoyeacute au deacutebut du programmersquo

X = y 2

while x gt 1

If y x == 0

print y lsquo est facteur de rsquo x

break

x -= 1

else

print y lsquo est premierlsquo

Lrsquoutilisation de zip et map peut srsquoaveacutereacutee encore plus efficace

l1 = [1 2 3]

l2 = [4 5 6]

for (x y) in zip(l1 l2)

print x y -- x + y

1 4 -- 5

2 5 -- 7

3 6 -- 9

Base de repreacutesentation des donneacutees

38

s=0123456789

print map(int s)

[0 1 2 3 4 5 6 7 8 9]

Utilisation et

puissance de MAP

Utilisation de ZIP

Intervales range(start stop step)

range(5 10)

5 jusqursquoagrave 10 (exclue) avec un pas de 1

range(0 10 3)

0 3 6 9

range(-10 -100 -30)

-10 -40 -70

Test conditionnel binaire x = 5

y = 10

if x gt y

print(x est grand que y)

else

print(ldquox nrsquoest pas grand que yrdquo)

Dans Python on peut compliquer les chose

x = 5

y = 10

Z = 12

if z gt x gt y

print(lsquoy est petit que x et x est petit que z)

Base de repreacutesentation des donneacutees

39

Boucle avec test conditionnel binaire break continue et else dans une boucle for

for n in range(2 10)

for x in range(2 n)

if n x == 0

print(n lsquoest eacutegal agrave x nx)

break

else

print(n lsquoest premier)

Utilisation de lrsquoinstruction continue

for num in range(2 10)

if num 2 == 0 le symbole deacutesigne lrsquoopeacuteration RESTE de la division

print(ldquoNombre paire trouveacute num)

continue

print(ldquoNombre non premier num)

Base de repreacutesentation des donneacutees

40

Deacutefinition de fonction (proceacutedure avec retour) def fib(n) Ecrire la suite de Fibonacci jusqursquoagrave n

a b = 0 1

while a lt n

print(a end= )

a b = b a+b

print()

fib(2000)

0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597

f = fib deacutesignation par reacutefeacuterence f agrave la fonction fib

f(100)

0 1 1 2 3 5 8 13 21 34 55 89

autre type de deacutefinition de fonction

def ask_ok(prompt retries=4 complaint=Oui or Non srsquoil vou plait )

while True

ok = input(prompt)

if ok in (lsquoo lsquooui lsquoOui)

return True

if ok in (lsquon no non lsquoNon)

return False

retries = retries - 1

if retries lt 0

raise OSError(lsquoUtilisateur non coopeacuteratif)

print(complaint)

Base de repreacutesentation des donneacutees

41

Lrsquoinstruction lambda def make_incrementeur(n)

return lambda x x + n

f = make_incrementeur(42)

f(0)

42

f(1)

43

un autre cas drsquoutilisation

pairs = [(1 one) (2 two) (3 three) (4 four)]

pairssort(key=lambda pair pair[1])

pairs

[(4 four) (1 one) (3 three) (2 two)]

Les annotations dans une fonction Les annotations deacutefinissent des messages de preacutesentation

def f(chiken str eggs str = eggs) -gt str remarquer que la fonction est de type STR

print(Annotations f__annotations__)

print(Arguments chiken eggs)

return chiken + and + eggs

f(spam)

Annotations chiken ltclass strgt return ltclass strgt eggs ltclass strgt

Arguments spam eggs

spam and eggslsquo

Base de repreacutesentation des donneacutees

42

Les deacutecorateurs python Notre deacutecorateur

def decorate(func)

print uJe suis dans la fonction decorate et je deacutecore s func__name__

print uExeacutecution de la fonction s func__name__

return func

Fonction cible utiliseacutee avec DECORATOR

decorate

def foobar(args)

print join(args)

Exemple drsquoappel de la fonction

foobar(A B C D)

Je suis dans la fonction decorate et je deacutecore foobar

Exeacutecution de la fonction foobar

A B C D

Il est posible drsquoattribuer plusieurs deacutecorateurs agrave une seule fonction

decorateur1

decorateur2

def ma_fonction()

instructions

Base de repreacutesentation des donneacutees

43

Manipulation des listes a = [6625 333 333 1 12345]

print(acount(333) acount(6625) acount(x))

2 1 0

ainsert(2 -1)

aappend(333)

a

[6625 333 -1 333 1 12345 333]

aindex(333)

1

aremove(333)

a

[6625 -1 333 1 12345 333]

areverse()

a

[333 12345 1 333 -1 6625]

asort()

a

[-1 1 6625 333 333 12345]

apop()

12345

a

[-1 1 6625 333 333]

Base de repreacutesentation des donneacutees

44

Puissance du langage Python Lrsquoensemble des lignes suiantes peut ecirctre compacteacute par ce qui suit

combs = []

for x in [123]

for y in [314]

if x = y

combsappend((x y))

Combs

Ou bien

[(x y) for x in [123] for y in [314] if x = y]

Donne le mecircme reacutesultat

[(1 3) (1 4) (2 3) (2 1) (2 4) (3 1) (3 4)]

Calcul de la valeur de PI arrondie

from math import pi

[str(round(pi i)) for i in range(1 6)]

[31 314 3142 31416 314159]

Geacuteneacuterateur avec utilisation de YIELD

def generateur()

yield a

yield b

yield cldquo

i=generateur()

for v in i

print v

a

b

c

Base de repreacutesentation des donneacutees

45

Les expressions reacuteguliegraveres en python Les expressions reacuteguliegravere sont utiliseacutees pour veacuterifier la conformiteacute des expressions de

chaines de caractegraveres par rapport agrave un motif Les symboles suivants sont utiliseacutes

^ $ + [ ] | ( )

Le point correspond agrave nimporte quel caractegravere

^ Indique un commencement de segment mais signifie aussi contraire de

$ Fin de segment

[xy] Une liste de segment possible Exemple [abc] eacutequivaut agrave a b ou c

(x|y) Indique un choix multiple type (ps|ump) eacutequivaut agrave ps OU UMP

d le segment est composeacute uniquement de chiffre ce qui eacutequivaut agrave [0-9]

D le segment nest pas composeacute de chiffre ce qui eacutequivaut agrave [^0-9]

s Un espace ce qui eacutequivaut agrave [ tnrfv]

S Pas despace ce qui eacutequivaut agrave [^ tnrfv]

w Preacutesence alphanumeacuterique ce qui eacutequivaut agrave [a-zA-Z0-9_]

W Pas de preacutesence alphanumeacuterique [^a-zA-Z0-9_]

Est un caractegravere deacutechappement T2 Le T soit reacutepeacuteteacute 2 fois

TA19 La seacutequence TA doit ecirctre preacutesente de 1 agrave 9 fois

TAM10 La seacutequence TAM nrsquoexiste pas ou reacutepeacuteteacutee 10 fois

LI1 La seacutequence LI doit ecirctre reacutepeacuteteacutee au moins une fois

Base de repreacutesentation des donneacutees

46

Les expressions reacuteguliegraveres en python Utilisation des expressions reacuteguliegravere

import re

print rematch(rGR()S GRIS)

lt_sreSRE_Match object at 0x02019DE0gt

Une utilisation freacutequente consiste en la validation des valeurs des emails saisis

Utilisation des expressions reacuteguliegravere

import re

mails = [lsquomtamaligmailcomrsquorsquoutmbuniv-bechardzrsquo lsquo8freefrrsquo lsquouniv-bechardzrsquo lsquotamalicdtarsquo]

regex = recompile(rrsquo^[a-z0-9_-]+[a-z0-9_-]+[(com|fr|dz)]+rsquo

for mail in mails

if regexmatch(mail) is not None

print Ce mail s est valide mail

else

print Erreur ce mail s est non valide mail

Ce mail mtamaligmailcom est valide

Ce mail utmbuniv-bechardz est valide

Ce mail 8freefr est valide

Erreur ce mail univ-bechardz est non valide

Erreur ce mail tamalicdta est non valide

Base de repreacutesentation des donneacutees

47

Les fichiers Creacuteer lire et eacutecrire dans un fichier en python Utilisation des expressions reacuteguliegravere

fichier = open(donneestxt r)

print fichier

ltopen file lsquodonneestxt mode r at 0x7ff6cf3fe4b0gt

Le descripteur permet de renseigner la machine sur la maniegravere avec laquelle le fichier est utiliseacute

r pour ouverture en mode READ

w pour ouverture en mode WRITE chaque fois le contenu du fichier est eacutecraseacute sinon python le creacutee

a pour ajout lsquoAPPENDrsquo Si le fichier nexiste pas python le creacutee

b Ouverture en mode Binaire

t Ouverture en mode Texte

x creacutee un nouveau fichier et louvrir pour eacutecriture

proceacutedure geacuteneacuterale pour lrsquoutilisation drsquoun fichier

fichier = open(lsquodonneestxtrsquo r)

print fichierread()

fichierclose()

Lrsquoinstruction WITH peut ecirctre utiliseacutee sans besoin de la fonction CLOSE

with open(datatxt r) as fichier

print fichierread()

Base de repreacutesentation des donneacutees

48

49

Le langage Python est un langage script interpreacuteteacute Le programme portant lrsquoune des extension py pyw ou pwc est

structureacute selon le canevas suivant

Les codifications

usrbinpython27

--codingencodage -

Les imports des librairies

Les instructions

Le langage Python passe pour ecirctre exeacutecuteacute sur deux eacutetapes la premiegravere UNE PRECOMPILATION geacuteneacuteration du code

machine et finalement un eacutecriture en code machine exeacutecutable (selon la machine)

Lrsquoenvironnement drsquoexeacutecution des scripts eacutecrits en Python regroupe les avantages des TRADUCTEURS (travaille en ligne par

ligne) et les COMPILATEURS (puissance de la structure algorithmique)

La bibliothegraveque cx_Freeze sert agrave transformer les fichiers scripts Pyhon py en exeacutecutable exe

Structures algorithmique du python

50

51

Matrices amp Systegravemes lineacuteaires

52

53

54

55

56

57

Le calcul scientifique

Reacutefeacuterences L-V Bertallanfy lsquoGeneral System Theoryrsquo Edition MASSON 1972

58

Page 33: Chap XIII : calcul scientifique avec python

Chaines de caractegraveres les liste et les dictionnaires s = Hello worldldquo

replace a substring in a string with somethign else

s2 = sreplace(world test)

Hello test

print(s2)

s[05]

Hellolsquo

s[05]

Hellolsquo

s[]

Hello worldlsquo

print(value = f 10) Formatage C des variables

value = 1000000

s2 = value1 = 2f value2 = d (31415 15)

print(s2)

value1 = 314 value2 = 1

Listes l = [1234]

print(type(l))

print(l)

ltclass listgt

[1 2 3 4]

l = [1 a 10 1-1j] peuvent ecirctre heacuteteacuterogegravene

print(l)

[1 a 10 (1-1j)]

Base de repreacutesentation des donneacutees

33

Listes start = 10

stop = 30

step = 2

range(start stop step)

range(10 30 2)

list(range(start stop step))

[10 12 14 16 18 20 22 24 26 28]

s2 = list(s)

S2

[H e l l o w o r l d]

Tri de la liste

s2sort()

print(s2)

[ H d e l l l o o r w]

l = []

lappend(A)

lappend(d)

lappend(d)

print(l)

[A d d]

Tuples Ce sont des variables comme les listes mais pas alteacuterables

point = (10 20)

print(point type(point))

(10 20) ltclass tuplegt

Base de repreacutesentation des donneacutees

34

Tuples x y = point

print(x = x)

print(y = y)

x = 10

y = 20

Dictionaries params = parameter1 10 parameter2 20 parameter3 30

print(type(params))

print(params)

ltclass dictgt

fparameter2 20 parameter3 30 parameter1 10

params[parameter1] = A

params[parameter2] = B

Ajouter une nouvelle entreacutee

params[parameter4] = D

print(paramegravetre = + str(params[parameter1]))

print(paramegravetre = + str(params[parameter2]))

print(paramegravetre = + str(params[parameter3]))

print(paramegravetre = + str(params[parameter4]))

paramegravetre = A

paramegravetre = B

paramegravetre = 30

paramegravetre = D

Base de repreacutesentation des donneacutees

35

36

Affectation amp Controcircle conditionnel de flue statement1 = False Crsquoest une affectation

statement2 = False

if statement1 Test valideacute condition (statement1) est VRAIE

print(statement1 is True)

elif statement2 Exeacutecuteacutee condition (statement2) est VRAIE

print(statement2 is True)

else Exeacutecuteacutee sinon

print(statement1 and statement2 are False)

Boucles for x in [123] [123] peut ecirctre deacutesigneacute par range(3) avec print(x+1)

print(x)

1

2

3

for word in [scientific computing with python]

print(word) condition de reacutepeacutetition deacutependante du contenu de la liste

scientific

computing

with

python

l1 = [x2 for x in range(05)] agrave remarquer la compaciteacute du Python

print(l1)

[0 1 4 9 16]

Base de repreacutesentation des donneacutees

37

Boucles var = 0

while var = 1

print jlsquoeacutecris mon programme ici

choix = raw_input(voulez vous recommencer ( on ) )

if choix == n

var = 1

else

lsquovous allez ecirctre renvoyeacute au deacutebut du programmersquo

X = y 2

while x gt 1

If y x == 0

print y lsquo est facteur de rsquo x

break

x -= 1

else

print y lsquo est premierlsquo

Lrsquoutilisation de zip et map peut srsquoaveacutereacutee encore plus efficace

l1 = [1 2 3]

l2 = [4 5 6]

for (x y) in zip(l1 l2)

print x y -- x + y

1 4 -- 5

2 5 -- 7

3 6 -- 9

Base de repreacutesentation des donneacutees

38

s=0123456789

print map(int s)

[0 1 2 3 4 5 6 7 8 9]

Utilisation et

puissance de MAP

Utilisation de ZIP

Intervales range(start stop step)

range(5 10)

5 jusqursquoagrave 10 (exclue) avec un pas de 1

range(0 10 3)

0 3 6 9

range(-10 -100 -30)

-10 -40 -70

Test conditionnel binaire x = 5

y = 10

if x gt y

print(x est grand que y)

else

print(ldquox nrsquoest pas grand que yrdquo)

Dans Python on peut compliquer les chose

x = 5

y = 10

Z = 12

if z gt x gt y

print(lsquoy est petit que x et x est petit que z)

Base de repreacutesentation des donneacutees

39

Boucle avec test conditionnel binaire break continue et else dans une boucle for

for n in range(2 10)

for x in range(2 n)

if n x == 0

print(n lsquoest eacutegal agrave x nx)

break

else

print(n lsquoest premier)

Utilisation de lrsquoinstruction continue

for num in range(2 10)

if num 2 == 0 le symbole deacutesigne lrsquoopeacuteration RESTE de la division

print(ldquoNombre paire trouveacute num)

continue

print(ldquoNombre non premier num)

Base de repreacutesentation des donneacutees

40

Deacutefinition de fonction (proceacutedure avec retour) def fib(n) Ecrire la suite de Fibonacci jusqursquoagrave n

a b = 0 1

while a lt n

print(a end= )

a b = b a+b

print()

fib(2000)

0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597

f = fib deacutesignation par reacutefeacuterence f agrave la fonction fib

f(100)

0 1 1 2 3 5 8 13 21 34 55 89

autre type de deacutefinition de fonction

def ask_ok(prompt retries=4 complaint=Oui or Non srsquoil vou plait )

while True

ok = input(prompt)

if ok in (lsquoo lsquooui lsquoOui)

return True

if ok in (lsquon no non lsquoNon)

return False

retries = retries - 1

if retries lt 0

raise OSError(lsquoUtilisateur non coopeacuteratif)

print(complaint)

Base de repreacutesentation des donneacutees

41

Lrsquoinstruction lambda def make_incrementeur(n)

return lambda x x + n

f = make_incrementeur(42)

f(0)

42

f(1)

43

un autre cas drsquoutilisation

pairs = [(1 one) (2 two) (3 three) (4 four)]

pairssort(key=lambda pair pair[1])

pairs

[(4 four) (1 one) (3 three) (2 two)]

Les annotations dans une fonction Les annotations deacutefinissent des messages de preacutesentation

def f(chiken str eggs str = eggs) -gt str remarquer que la fonction est de type STR

print(Annotations f__annotations__)

print(Arguments chiken eggs)

return chiken + and + eggs

f(spam)

Annotations chiken ltclass strgt return ltclass strgt eggs ltclass strgt

Arguments spam eggs

spam and eggslsquo

Base de repreacutesentation des donneacutees

42

Les deacutecorateurs python Notre deacutecorateur

def decorate(func)

print uJe suis dans la fonction decorate et je deacutecore s func__name__

print uExeacutecution de la fonction s func__name__

return func

Fonction cible utiliseacutee avec DECORATOR

decorate

def foobar(args)

print join(args)

Exemple drsquoappel de la fonction

foobar(A B C D)

Je suis dans la fonction decorate et je deacutecore foobar

Exeacutecution de la fonction foobar

A B C D

Il est posible drsquoattribuer plusieurs deacutecorateurs agrave une seule fonction

decorateur1

decorateur2

def ma_fonction()

instructions

Base de repreacutesentation des donneacutees

43

Manipulation des listes a = [6625 333 333 1 12345]

print(acount(333) acount(6625) acount(x))

2 1 0

ainsert(2 -1)

aappend(333)

a

[6625 333 -1 333 1 12345 333]

aindex(333)

1

aremove(333)

a

[6625 -1 333 1 12345 333]

areverse()

a

[333 12345 1 333 -1 6625]

asort()

a

[-1 1 6625 333 333 12345]

apop()

12345

a

[-1 1 6625 333 333]

Base de repreacutesentation des donneacutees

44

Puissance du langage Python Lrsquoensemble des lignes suiantes peut ecirctre compacteacute par ce qui suit

combs = []

for x in [123]

for y in [314]

if x = y

combsappend((x y))

Combs

Ou bien

[(x y) for x in [123] for y in [314] if x = y]

Donne le mecircme reacutesultat

[(1 3) (1 4) (2 3) (2 1) (2 4) (3 1) (3 4)]

Calcul de la valeur de PI arrondie

from math import pi

[str(round(pi i)) for i in range(1 6)]

[31 314 3142 31416 314159]

Geacuteneacuterateur avec utilisation de YIELD

def generateur()

yield a

yield b

yield cldquo

i=generateur()

for v in i

print v

a

b

c

Base de repreacutesentation des donneacutees

45

Les expressions reacuteguliegraveres en python Les expressions reacuteguliegravere sont utiliseacutees pour veacuterifier la conformiteacute des expressions de

chaines de caractegraveres par rapport agrave un motif Les symboles suivants sont utiliseacutes

^ $ + [ ] | ( )

Le point correspond agrave nimporte quel caractegravere

^ Indique un commencement de segment mais signifie aussi contraire de

$ Fin de segment

[xy] Une liste de segment possible Exemple [abc] eacutequivaut agrave a b ou c

(x|y) Indique un choix multiple type (ps|ump) eacutequivaut agrave ps OU UMP

d le segment est composeacute uniquement de chiffre ce qui eacutequivaut agrave [0-9]

D le segment nest pas composeacute de chiffre ce qui eacutequivaut agrave [^0-9]

s Un espace ce qui eacutequivaut agrave [ tnrfv]

S Pas despace ce qui eacutequivaut agrave [^ tnrfv]

w Preacutesence alphanumeacuterique ce qui eacutequivaut agrave [a-zA-Z0-9_]

W Pas de preacutesence alphanumeacuterique [^a-zA-Z0-9_]

Est un caractegravere deacutechappement T2 Le T soit reacutepeacuteteacute 2 fois

TA19 La seacutequence TA doit ecirctre preacutesente de 1 agrave 9 fois

TAM10 La seacutequence TAM nrsquoexiste pas ou reacutepeacuteteacutee 10 fois

LI1 La seacutequence LI doit ecirctre reacutepeacuteteacutee au moins une fois

Base de repreacutesentation des donneacutees

46

Les expressions reacuteguliegraveres en python Utilisation des expressions reacuteguliegravere

import re

print rematch(rGR()S GRIS)

lt_sreSRE_Match object at 0x02019DE0gt

Une utilisation freacutequente consiste en la validation des valeurs des emails saisis

Utilisation des expressions reacuteguliegravere

import re

mails = [lsquomtamaligmailcomrsquorsquoutmbuniv-bechardzrsquo lsquo8freefrrsquo lsquouniv-bechardzrsquo lsquotamalicdtarsquo]

regex = recompile(rrsquo^[a-z0-9_-]+[a-z0-9_-]+[(com|fr|dz)]+rsquo

for mail in mails

if regexmatch(mail) is not None

print Ce mail s est valide mail

else

print Erreur ce mail s est non valide mail

Ce mail mtamaligmailcom est valide

Ce mail utmbuniv-bechardz est valide

Ce mail 8freefr est valide

Erreur ce mail univ-bechardz est non valide

Erreur ce mail tamalicdta est non valide

Base de repreacutesentation des donneacutees

47

Les fichiers Creacuteer lire et eacutecrire dans un fichier en python Utilisation des expressions reacuteguliegravere

fichier = open(donneestxt r)

print fichier

ltopen file lsquodonneestxt mode r at 0x7ff6cf3fe4b0gt

Le descripteur permet de renseigner la machine sur la maniegravere avec laquelle le fichier est utiliseacute

r pour ouverture en mode READ

w pour ouverture en mode WRITE chaque fois le contenu du fichier est eacutecraseacute sinon python le creacutee

a pour ajout lsquoAPPENDrsquo Si le fichier nexiste pas python le creacutee

b Ouverture en mode Binaire

t Ouverture en mode Texte

x creacutee un nouveau fichier et louvrir pour eacutecriture

proceacutedure geacuteneacuterale pour lrsquoutilisation drsquoun fichier

fichier = open(lsquodonneestxtrsquo r)

print fichierread()

fichierclose()

Lrsquoinstruction WITH peut ecirctre utiliseacutee sans besoin de la fonction CLOSE

with open(datatxt r) as fichier

print fichierread()

Base de repreacutesentation des donneacutees

48

49

Le langage Python est un langage script interpreacuteteacute Le programme portant lrsquoune des extension py pyw ou pwc est

structureacute selon le canevas suivant

Les codifications

usrbinpython27

--codingencodage -

Les imports des librairies

Les instructions

Le langage Python passe pour ecirctre exeacutecuteacute sur deux eacutetapes la premiegravere UNE PRECOMPILATION geacuteneacuteration du code

machine et finalement un eacutecriture en code machine exeacutecutable (selon la machine)

Lrsquoenvironnement drsquoexeacutecution des scripts eacutecrits en Python regroupe les avantages des TRADUCTEURS (travaille en ligne par

ligne) et les COMPILATEURS (puissance de la structure algorithmique)

La bibliothegraveque cx_Freeze sert agrave transformer les fichiers scripts Pyhon py en exeacutecutable exe

Structures algorithmique du python

50

51

Matrices amp Systegravemes lineacuteaires

52

53

54

55

56

57

Le calcul scientifique

Reacutefeacuterences L-V Bertallanfy lsquoGeneral System Theoryrsquo Edition MASSON 1972

58

Page 34: Chap XIII : calcul scientifique avec python

Listes start = 10

stop = 30

step = 2

range(start stop step)

range(10 30 2)

list(range(start stop step))

[10 12 14 16 18 20 22 24 26 28]

s2 = list(s)

S2

[H e l l o w o r l d]

Tri de la liste

s2sort()

print(s2)

[ H d e l l l o o r w]

l = []

lappend(A)

lappend(d)

lappend(d)

print(l)

[A d d]

Tuples Ce sont des variables comme les listes mais pas alteacuterables

point = (10 20)

print(point type(point))

(10 20) ltclass tuplegt

Base de repreacutesentation des donneacutees

34

Tuples x y = point

print(x = x)

print(y = y)

x = 10

y = 20

Dictionaries params = parameter1 10 parameter2 20 parameter3 30

print(type(params))

print(params)

ltclass dictgt

fparameter2 20 parameter3 30 parameter1 10

params[parameter1] = A

params[parameter2] = B

Ajouter une nouvelle entreacutee

params[parameter4] = D

print(paramegravetre = + str(params[parameter1]))

print(paramegravetre = + str(params[parameter2]))

print(paramegravetre = + str(params[parameter3]))

print(paramegravetre = + str(params[parameter4]))

paramegravetre = A

paramegravetre = B

paramegravetre = 30

paramegravetre = D

Base de repreacutesentation des donneacutees

35

36

Affectation amp Controcircle conditionnel de flue statement1 = False Crsquoest une affectation

statement2 = False

if statement1 Test valideacute condition (statement1) est VRAIE

print(statement1 is True)

elif statement2 Exeacutecuteacutee condition (statement2) est VRAIE

print(statement2 is True)

else Exeacutecuteacutee sinon

print(statement1 and statement2 are False)

Boucles for x in [123] [123] peut ecirctre deacutesigneacute par range(3) avec print(x+1)

print(x)

1

2

3

for word in [scientific computing with python]

print(word) condition de reacutepeacutetition deacutependante du contenu de la liste

scientific

computing

with

python

l1 = [x2 for x in range(05)] agrave remarquer la compaciteacute du Python

print(l1)

[0 1 4 9 16]

Base de repreacutesentation des donneacutees

37

Boucles var = 0

while var = 1

print jlsquoeacutecris mon programme ici

choix = raw_input(voulez vous recommencer ( on ) )

if choix == n

var = 1

else

lsquovous allez ecirctre renvoyeacute au deacutebut du programmersquo

X = y 2

while x gt 1

If y x == 0

print y lsquo est facteur de rsquo x

break

x -= 1

else

print y lsquo est premierlsquo

Lrsquoutilisation de zip et map peut srsquoaveacutereacutee encore plus efficace

l1 = [1 2 3]

l2 = [4 5 6]

for (x y) in zip(l1 l2)

print x y -- x + y

1 4 -- 5

2 5 -- 7

3 6 -- 9

Base de repreacutesentation des donneacutees

38

s=0123456789

print map(int s)

[0 1 2 3 4 5 6 7 8 9]

Utilisation et

puissance de MAP

Utilisation de ZIP

Intervales range(start stop step)

range(5 10)

5 jusqursquoagrave 10 (exclue) avec un pas de 1

range(0 10 3)

0 3 6 9

range(-10 -100 -30)

-10 -40 -70

Test conditionnel binaire x = 5

y = 10

if x gt y

print(x est grand que y)

else

print(ldquox nrsquoest pas grand que yrdquo)

Dans Python on peut compliquer les chose

x = 5

y = 10

Z = 12

if z gt x gt y

print(lsquoy est petit que x et x est petit que z)

Base de repreacutesentation des donneacutees

39

Boucle avec test conditionnel binaire break continue et else dans une boucle for

for n in range(2 10)

for x in range(2 n)

if n x == 0

print(n lsquoest eacutegal agrave x nx)

break

else

print(n lsquoest premier)

Utilisation de lrsquoinstruction continue

for num in range(2 10)

if num 2 == 0 le symbole deacutesigne lrsquoopeacuteration RESTE de la division

print(ldquoNombre paire trouveacute num)

continue

print(ldquoNombre non premier num)

Base de repreacutesentation des donneacutees

40

Deacutefinition de fonction (proceacutedure avec retour) def fib(n) Ecrire la suite de Fibonacci jusqursquoagrave n

a b = 0 1

while a lt n

print(a end= )

a b = b a+b

print()

fib(2000)

0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597

f = fib deacutesignation par reacutefeacuterence f agrave la fonction fib

f(100)

0 1 1 2 3 5 8 13 21 34 55 89

autre type de deacutefinition de fonction

def ask_ok(prompt retries=4 complaint=Oui or Non srsquoil vou plait )

while True

ok = input(prompt)

if ok in (lsquoo lsquooui lsquoOui)

return True

if ok in (lsquon no non lsquoNon)

return False

retries = retries - 1

if retries lt 0

raise OSError(lsquoUtilisateur non coopeacuteratif)

print(complaint)

Base de repreacutesentation des donneacutees

41

Lrsquoinstruction lambda def make_incrementeur(n)

return lambda x x + n

f = make_incrementeur(42)

f(0)

42

f(1)

43

un autre cas drsquoutilisation

pairs = [(1 one) (2 two) (3 three) (4 four)]

pairssort(key=lambda pair pair[1])

pairs

[(4 four) (1 one) (3 three) (2 two)]

Les annotations dans une fonction Les annotations deacutefinissent des messages de preacutesentation

def f(chiken str eggs str = eggs) -gt str remarquer que la fonction est de type STR

print(Annotations f__annotations__)

print(Arguments chiken eggs)

return chiken + and + eggs

f(spam)

Annotations chiken ltclass strgt return ltclass strgt eggs ltclass strgt

Arguments spam eggs

spam and eggslsquo

Base de repreacutesentation des donneacutees

42

Les deacutecorateurs python Notre deacutecorateur

def decorate(func)

print uJe suis dans la fonction decorate et je deacutecore s func__name__

print uExeacutecution de la fonction s func__name__

return func

Fonction cible utiliseacutee avec DECORATOR

decorate

def foobar(args)

print join(args)

Exemple drsquoappel de la fonction

foobar(A B C D)

Je suis dans la fonction decorate et je deacutecore foobar

Exeacutecution de la fonction foobar

A B C D

Il est posible drsquoattribuer plusieurs deacutecorateurs agrave une seule fonction

decorateur1

decorateur2

def ma_fonction()

instructions

Base de repreacutesentation des donneacutees

43

Manipulation des listes a = [6625 333 333 1 12345]

print(acount(333) acount(6625) acount(x))

2 1 0

ainsert(2 -1)

aappend(333)

a

[6625 333 -1 333 1 12345 333]

aindex(333)

1

aremove(333)

a

[6625 -1 333 1 12345 333]

areverse()

a

[333 12345 1 333 -1 6625]

asort()

a

[-1 1 6625 333 333 12345]

apop()

12345

a

[-1 1 6625 333 333]

Base de repreacutesentation des donneacutees

44

Puissance du langage Python Lrsquoensemble des lignes suiantes peut ecirctre compacteacute par ce qui suit

combs = []

for x in [123]

for y in [314]

if x = y

combsappend((x y))

Combs

Ou bien

[(x y) for x in [123] for y in [314] if x = y]

Donne le mecircme reacutesultat

[(1 3) (1 4) (2 3) (2 1) (2 4) (3 1) (3 4)]

Calcul de la valeur de PI arrondie

from math import pi

[str(round(pi i)) for i in range(1 6)]

[31 314 3142 31416 314159]

Geacuteneacuterateur avec utilisation de YIELD

def generateur()

yield a

yield b

yield cldquo

i=generateur()

for v in i

print v

a

b

c

Base de repreacutesentation des donneacutees

45

Les expressions reacuteguliegraveres en python Les expressions reacuteguliegravere sont utiliseacutees pour veacuterifier la conformiteacute des expressions de

chaines de caractegraveres par rapport agrave un motif Les symboles suivants sont utiliseacutes

^ $ + [ ] | ( )

Le point correspond agrave nimporte quel caractegravere

^ Indique un commencement de segment mais signifie aussi contraire de

$ Fin de segment

[xy] Une liste de segment possible Exemple [abc] eacutequivaut agrave a b ou c

(x|y) Indique un choix multiple type (ps|ump) eacutequivaut agrave ps OU UMP

d le segment est composeacute uniquement de chiffre ce qui eacutequivaut agrave [0-9]

D le segment nest pas composeacute de chiffre ce qui eacutequivaut agrave [^0-9]

s Un espace ce qui eacutequivaut agrave [ tnrfv]

S Pas despace ce qui eacutequivaut agrave [^ tnrfv]

w Preacutesence alphanumeacuterique ce qui eacutequivaut agrave [a-zA-Z0-9_]

W Pas de preacutesence alphanumeacuterique [^a-zA-Z0-9_]

Est un caractegravere deacutechappement T2 Le T soit reacutepeacuteteacute 2 fois

TA19 La seacutequence TA doit ecirctre preacutesente de 1 agrave 9 fois

TAM10 La seacutequence TAM nrsquoexiste pas ou reacutepeacuteteacutee 10 fois

LI1 La seacutequence LI doit ecirctre reacutepeacuteteacutee au moins une fois

Base de repreacutesentation des donneacutees

46

Les expressions reacuteguliegraveres en python Utilisation des expressions reacuteguliegravere

import re

print rematch(rGR()S GRIS)

lt_sreSRE_Match object at 0x02019DE0gt

Une utilisation freacutequente consiste en la validation des valeurs des emails saisis

Utilisation des expressions reacuteguliegravere

import re

mails = [lsquomtamaligmailcomrsquorsquoutmbuniv-bechardzrsquo lsquo8freefrrsquo lsquouniv-bechardzrsquo lsquotamalicdtarsquo]

regex = recompile(rrsquo^[a-z0-9_-]+[a-z0-9_-]+[(com|fr|dz)]+rsquo

for mail in mails

if regexmatch(mail) is not None

print Ce mail s est valide mail

else

print Erreur ce mail s est non valide mail

Ce mail mtamaligmailcom est valide

Ce mail utmbuniv-bechardz est valide

Ce mail 8freefr est valide

Erreur ce mail univ-bechardz est non valide

Erreur ce mail tamalicdta est non valide

Base de repreacutesentation des donneacutees

47

Les fichiers Creacuteer lire et eacutecrire dans un fichier en python Utilisation des expressions reacuteguliegravere

fichier = open(donneestxt r)

print fichier

ltopen file lsquodonneestxt mode r at 0x7ff6cf3fe4b0gt

Le descripteur permet de renseigner la machine sur la maniegravere avec laquelle le fichier est utiliseacute

r pour ouverture en mode READ

w pour ouverture en mode WRITE chaque fois le contenu du fichier est eacutecraseacute sinon python le creacutee

a pour ajout lsquoAPPENDrsquo Si le fichier nexiste pas python le creacutee

b Ouverture en mode Binaire

t Ouverture en mode Texte

x creacutee un nouveau fichier et louvrir pour eacutecriture

proceacutedure geacuteneacuterale pour lrsquoutilisation drsquoun fichier

fichier = open(lsquodonneestxtrsquo r)

print fichierread()

fichierclose()

Lrsquoinstruction WITH peut ecirctre utiliseacutee sans besoin de la fonction CLOSE

with open(datatxt r) as fichier

print fichierread()

Base de repreacutesentation des donneacutees

48

49

Le langage Python est un langage script interpreacuteteacute Le programme portant lrsquoune des extension py pyw ou pwc est

structureacute selon le canevas suivant

Les codifications

usrbinpython27

--codingencodage -

Les imports des librairies

Les instructions

Le langage Python passe pour ecirctre exeacutecuteacute sur deux eacutetapes la premiegravere UNE PRECOMPILATION geacuteneacuteration du code

machine et finalement un eacutecriture en code machine exeacutecutable (selon la machine)

Lrsquoenvironnement drsquoexeacutecution des scripts eacutecrits en Python regroupe les avantages des TRADUCTEURS (travaille en ligne par

ligne) et les COMPILATEURS (puissance de la structure algorithmique)

La bibliothegraveque cx_Freeze sert agrave transformer les fichiers scripts Pyhon py en exeacutecutable exe

Structures algorithmique du python

50

51

Matrices amp Systegravemes lineacuteaires

52

53

54

55

56

57

Le calcul scientifique

Reacutefeacuterences L-V Bertallanfy lsquoGeneral System Theoryrsquo Edition MASSON 1972

58

Page 35: Chap XIII : calcul scientifique avec python

Tuples x y = point

print(x = x)

print(y = y)

x = 10

y = 20

Dictionaries params = parameter1 10 parameter2 20 parameter3 30

print(type(params))

print(params)

ltclass dictgt

fparameter2 20 parameter3 30 parameter1 10

params[parameter1] = A

params[parameter2] = B

Ajouter une nouvelle entreacutee

params[parameter4] = D

print(paramegravetre = + str(params[parameter1]))

print(paramegravetre = + str(params[parameter2]))

print(paramegravetre = + str(params[parameter3]))

print(paramegravetre = + str(params[parameter4]))

paramegravetre = A

paramegravetre = B

paramegravetre = 30

paramegravetre = D

Base de repreacutesentation des donneacutees

35

36

Affectation amp Controcircle conditionnel de flue statement1 = False Crsquoest une affectation

statement2 = False

if statement1 Test valideacute condition (statement1) est VRAIE

print(statement1 is True)

elif statement2 Exeacutecuteacutee condition (statement2) est VRAIE

print(statement2 is True)

else Exeacutecuteacutee sinon

print(statement1 and statement2 are False)

Boucles for x in [123] [123] peut ecirctre deacutesigneacute par range(3) avec print(x+1)

print(x)

1

2

3

for word in [scientific computing with python]

print(word) condition de reacutepeacutetition deacutependante du contenu de la liste

scientific

computing

with

python

l1 = [x2 for x in range(05)] agrave remarquer la compaciteacute du Python

print(l1)

[0 1 4 9 16]

Base de repreacutesentation des donneacutees

37

Boucles var = 0

while var = 1

print jlsquoeacutecris mon programme ici

choix = raw_input(voulez vous recommencer ( on ) )

if choix == n

var = 1

else

lsquovous allez ecirctre renvoyeacute au deacutebut du programmersquo

X = y 2

while x gt 1

If y x == 0

print y lsquo est facteur de rsquo x

break

x -= 1

else

print y lsquo est premierlsquo

Lrsquoutilisation de zip et map peut srsquoaveacutereacutee encore plus efficace

l1 = [1 2 3]

l2 = [4 5 6]

for (x y) in zip(l1 l2)

print x y -- x + y

1 4 -- 5

2 5 -- 7

3 6 -- 9

Base de repreacutesentation des donneacutees

38

s=0123456789

print map(int s)

[0 1 2 3 4 5 6 7 8 9]

Utilisation et

puissance de MAP

Utilisation de ZIP

Intervales range(start stop step)

range(5 10)

5 jusqursquoagrave 10 (exclue) avec un pas de 1

range(0 10 3)

0 3 6 9

range(-10 -100 -30)

-10 -40 -70

Test conditionnel binaire x = 5

y = 10

if x gt y

print(x est grand que y)

else

print(ldquox nrsquoest pas grand que yrdquo)

Dans Python on peut compliquer les chose

x = 5

y = 10

Z = 12

if z gt x gt y

print(lsquoy est petit que x et x est petit que z)

Base de repreacutesentation des donneacutees

39

Boucle avec test conditionnel binaire break continue et else dans une boucle for

for n in range(2 10)

for x in range(2 n)

if n x == 0

print(n lsquoest eacutegal agrave x nx)

break

else

print(n lsquoest premier)

Utilisation de lrsquoinstruction continue

for num in range(2 10)

if num 2 == 0 le symbole deacutesigne lrsquoopeacuteration RESTE de la division

print(ldquoNombre paire trouveacute num)

continue

print(ldquoNombre non premier num)

Base de repreacutesentation des donneacutees

40

Deacutefinition de fonction (proceacutedure avec retour) def fib(n) Ecrire la suite de Fibonacci jusqursquoagrave n

a b = 0 1

while a lt n

print(a end= )

a b = b a+b

print()

fib(2000)

0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597

f = fib deacutesignation par reacutefeacuterence f agrave la fonction fib

f(100)

0 1 1 2 3 5 8 13 21 34 55 89

autre type de deacutefinition de fonction

def ask_ok(prompt retries=4 complaint=Oui or Non srsquoil vou plait )

while True

ok = input(prompt)

if ok in (lsquoo lsquooui lsquoOui)

return True

if ok in (lsquon no non lsquoNon)

return False

retries = retries - 1

if retries lt 0

raise OSError(lsquoUtilisateur non coopeacuteratif)

print(complaint)

Base de repreacutesentation des donneacutees

41

Lrsquoinstruction lambda def make_incrementeur(n)

return lambda x x + n

f = make_incrementeur(42)

f(0)

42

f(1)

43

un autre cas drsquoutilisation

pairs = [(1 one) (2 two) (3 three) (4 four)]

pairssort(key=lambda pair pair[1])

pairs

[(4 four) (1 one) (3 three) (2 two)]

Les annotations dans une fonction Les annotations deacutefinissent des messages de preacutesentation

def f(chiken str eggs str = eggs) -gt str remarquer que la fonction est de type STR

print(Annotations f__annotations__)

print(Arguments chiken eggs)

return chiken + and + eggs

f(spam)

Annotations chiken ltclass strgt return ltclass strgt eggs ltclass strgt

Arguments spam eggs

spam and eggslsquo

Base de repreacutesentation des donneacutees

42

Les deacutecorateurs python Notre deacutecorateur

def decorate(func)

print uJe suis dans la fonction decorate et je deacutecore s func__name__

print uExeacutecution de la fonction s func__name__

return func

Fonction cible utiliseacutee avec DECORATOR

decorate

def foobar(args)

print join(args)

Exemple drsquoappel de la fonction

foobar(A B C D)

Je suis dans la fonction decorate et je deacutecore foobar

Exeacutecution de la fonction foobar

A B C D

Il est posible drsquoattribuer plusieurs deacutecorateurs agrave une seule fonction

decorateur1

decorateur2

def ma_fonction()

instructions

Base de repreacutesentation des donneacutees

43

Manipulation des listes a = [6625 333 333 1 12345]

print(acount(333) acount(6625) acount(x))

2 1 0

ainsert(2 -1)

aappend(333)

a

[6625 333 -1 333 1 12345 333]

aindex(333)

1

aremove(333)

a

[6625 -1 333 1 12345 333]

areverse()

a

[333 12345 1 333 -1 6625]

asort()

a

[-1 1 6625 333 333 12345]

apop()

12345

a

[-1 1 6625 333 333]

Base de repreacutesentation des donneacutees

44

Puissance du langage Python Lrsquoensemble des lignes suiantes peut ecirctre compacteacute par ce qui suit

combs = []

for x in [123]

for y in [314]

if x = y

combsappend((x y))

Combs

Ou bien

[(x y) for x in [123] for y in [314] if x = y]

Donne le mecircme reacutesultat

[(1 3) (1 4) (2 3) (2 1) (2 4) (3 1) (3 4)]

Calcul de la valeur de PI arrondie

from math import pi

[str(round(pi i)) for i in range(1 6)]

[31 314 3142 31416 314159]

Geacuteneacuterateur avec utilisation de YIELD

def generateur()

yield a

yield b

yield cldquo

i=generateur()

for v in i

print v

a

b

c

Base de repreacutesentation des donneacutees

45

Les expressions reacuteguliegraveres en python Les expressions reacuteguliegravere sont utiliseacutees pour veacuterifier la conformiteacute des expressions de

chaines de caractegraveres par rapport agrave un motif Les symboles suivants sont utiliseacutes

^ $ + [ ] | ( )

Le point correspond agrave nimporte quel caractegravere

^ Indique un commencement de segment mais signifie aussi contraire de

$ Fin de segment

[xy] Une liste de segment possible Exemple [abc] eacutequivaut agrave a b ou c

(x|y) Indique un choix multiple type (ps|ump) eacutequivaut agrave ps OU UMP

d le segment est composeacute uniquement de chiffre ce qui eacutequivaut agrave [0-9]

D le segment nest pas composeacute de chiffre ce qui eacutequivaut agrave [^0-9]

s Un espace ce qui eacutequivaut agrave [ tnrfv]

S Pas despace ce qui eacutequivaut agrave [^ tnrfv]

w Preacutesence alphanumeacuterique ce qui eacutequivaut agrave [a-zA-Z0-9_]

W Pas de preacutesence alphanumeacuterique [^a-zA-Z0-9_]

Est un caractegravere deacutechappement T2 Le T soit reacutepeacuteteacute 2 fois

TA19 La seacutequence TA doit ecirctre preacutesente de 1 agrave 9 fois

TAM10 La seacutequence TAM nrsquoexiste pas ou reacutepeacuteteacutee 10 fois

LI1 La seacutequence LI doit ecirctre reacutepeacuteteacutee au moins une fois

Base de repreacutesentation des donneacutees

46

Les expressions reacuteguliegraveres en python Utilisation des expressions reacuteguliegravere

import re

print rematch(rGR()S GRIS)

lt_sreSRE_Match object at 0x02019DE0gt

Une utilisation freacutequente consiste en la validation des valeurs des emails saisis

Utilisation des expressions reacuteguliegravere

import re

mails = [lsquomtamaligmailcomrsquorsquoutmbuniv-bechardzrsquo lsquo8freefrrsquo lsquouniv-bechardzrsquo lsquotamalicdtarsquo]

regex = recompile(rrsquo^[a-z0-9_-]+[a-z0-9_-]+[(com|fr|dz)]+rsquo

for mail in mails

if regexmatch(mail) is not None

print Ce mail s est valide mail

else

print Erreur ce mail s est non valide mail

Ce mail mtamaligmailcom est valide

Ce mail utmbuniv-bechardz est valide

Ce mail 8freefr est valide

Erreur ce mail univ-bechardz est non valide

Erreur ce mail tamalicdta est non valide

Base de repreacutesentation des donneacutees

47

Les fichiers Creacuteer lire et eacutecrire dans un fichier en python Utilisation des expressions reacuteguliegravere

fichier = open(donneestxt r)

print fichier

ltopen file lsquodonneestxt mode r at 0x7ff6cf3fe4b0gt

Le descripteur permet de renseigner la machine sur la maniegravere avec laquelle le fichier est utiliseacute

r pour ouverture en mode READ

w pour ouverture en mode WRITE chaque fois le contenu du fichier est eacutecraseacute sinon python le creacutee

a pour ajout lsquoAPPENDrsquo Si le fichier nexiste pas python le creacutee

b Ouverture en mode Binaire

t Ouverture en mode Texte

x creacutee un nouveau fichier et louvrir pour eacutecriture

proceacutedure geacuteneacuterale pour lrsquoutilisation drsquoun fichier

fichier = open(lsquodonneestxtrsquo r)

print fichierread()

fichierclose()

Lrsquoinstruction WITH peut ecirctre utiliseacutee sans besoin de la fonction CLOSE

with open(datatxt r) as fichier

print fichierread()

Base de repreacutesentation des donneacutees

48

49

Le langage Python est un langage script interpreacuteteacute Le programme portant lrsquoune des extension py pyw ou pwc est

structureacute selon le canevas suivant

Les codifications

usrbinpython27

--codingencodage -

Les imports des librairies

Les instructions

Le langage Python passe pour ecirctre exeacutecuteacute sur deux eacutetapes la premiegravere UNE PRECOMPILATION geacuteneacuteration du code

machine et finalement un eacutecriture en code machine exeacutecutable (selon la machine)

Lrsquoenvironnement drsquoexeacutecution des scripts eacutecrits en Python regroupe les avantages des TRADUCTEURS (travaille en ligne par

ligne) et les COMPILATEURS (puissance de la structure algorithmique)

La bibliothegraveque cx_Freeze sert agrave transformer les fichiers scripts Pyhon py en exeacutecutable exe

Structures algorithmique du python

50

51

Matrices amp Systegravemes lineacuteaires

52

53

54

55

56

57

Le calcul scientifique

Reacutefeacuterences L-V Bertallanfy lsquoGeneral System Theoryrsquo Edition MASSON 1972

58

Page 36: Chap XIII : calcul scientifique avec python

36

Affectation amp Controcircle conditionnel de flue statement1 = False Crsquoest une affectation

statement2 = False

if statement1 Test valideacute condition (statement1) est VRAIE

print(statement1 is True)

elif statement2 Exeacutecuteacutee condition (statement2) est VRAIE

print(statement2 is True)

else Exeacutecuteacutee sinon

print(statement1 and statement2 are False)

Boucles for x in [123] [123] peut ecirctre deacutesigneacute par range(3) avec print(x+1)

print(x)

1

2

3

for word in [scientific computing with python]

print(word) condition de reacutepeacutetition deacutependante du contenu de la liste

scientific

computing

with

python

l1 = [x2 for x in range(05)] agrave remarquer la compaciteacute du Python

print(l1)

[0 1 4 9 16]

Base de repreacutesentation des donneacutees

37

Boucles var = 0

while var = 1

print jlsquoeacutecris mon programme ici

choix = raw_input(voulez vous recommencer ( on ) )

if choix == n

var = 1

else

lsquovous allez ecirctre renvoyeacute au deacutebut du programmersquo

X = y 2

while x gt 1

If y x == 0

print y lsquo est facteur de rsquo x

break

x -= 1

else

print y lsquo est premierlsquo

Lrsquoutilisation de zip et map peut srsquoaveacutereacutee encore plus efficace

l1 = [1 2 3]

l2 = [4 5 6]

for (x y) in zip(l1 l2)

print x y -- x + y

1 4 -- 5

2 5 -- 7

3 6 -- 9

Base de repreacutesentation des donneacutees

38

s=0123456789

print map(int s)

[0 1 2 3 4 5 6 7 8 9]

Utilisation et

puissance de MAP

Utilisation de ZIP

Intervales range(start stop step)

range(5 10)

5 jusqursquoagrave 10 (exclue) avec un pas de 1

range(0 10 3)

0 3 6 9

range(-10 -100 -30)

-10 -40 -70

Test conditionnel binaire x = 5

y = 10

if x gt y

print(x est grand que y)

else

print(ldquox nrsquoest pas grand que yrdquo)

Dans Python on peut compliquer les chose

x = 5

y = 10

Z = 12

if z gt x gt y

print(lsquoy est petit que x et x est petit que z)

Base de repreacutesentation des donneacutees

39

Boucle avec test conditionnel binaire break continue et else dans une boucle for

for n in range(2 10)

for x in range(2 n)

if n x == 0

print(n lsquoest eacutegal agrave x nx)

break

else

print(n lsquoest premier)

Utilisation de lrsquoinstruction continue

for num in range(2 10)

if num 2 == 0 le symbole deacutesigne lrsquoopeacuteration RESTE de la division

print(ldquoNombre paire trouveacute num)

continue

print(ldquoNombre non premier num)

Base de repreacutesentation des donneacutees

40

Deacutefinition de fonction (proceacutedure avec retour) def fib(n) Ecrire la suite de Fibonacci jusqursquoagrave n

a b = 0 1

while a lt n

print(a end= )

a b = b a+b

print()

fib(2000)

0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597

f = fib deacutesignation par reacutefeacuterence f agrave la fonction fib

f(100)

0 1 1 2 3 5 8 13 21 34 55 89

autre type de deacutefinition de fonction

def ask_ok(prompt retries=4 complaint=Oui or Non srsquoil vou plait )

while True

ok = input(prompt)

if ok in (lsquoo lsquooui lsquoOui)

return True

if ok in (lsquon no non lsquoNon)

return False

retries = retries - 1

if retries lt 0

raise OSError(lsquoUtilisateur non coopeacuteratif)

print(complaint)

Base de repreacutesentation des donneacutees

41

Lrsquoinstruction lambda def make_incrementeur(n)

return lambda x x + n

f = make_incrementeur(42)

f(0)

42

f(1)

43

un autre cas drsquoutilisation

pairs = [(1 one) (2 two) (3 three) (4 four)]

pairssort(key=lambda pair pair[1])

pairs

[(4 four) (1 one) (3 three) (2 two)]

Les annotations dans une fonction Les annotations deacutefinissent des messages de preacutesentation

def f(chiken str eggs str = eggs) -gt str remarquer que la fonction est de type STR

print(Annotations f__annotations__)

print(Arguments chiken eggs)

return chiken + and + eggs

f(spam)

Annotations chiken ltclass strgt return ltclass strgt eggs ltclass strgt

Arguments spam eggs

spam and eggslsquo

Base de repreacutesentation des donneacutees

42

Les deacutecorateurs python Notre deacutecorateur

def decorate(func)

print uJe suis dans la fonction decorate et je deacutecore s func__name__

print uExeacutecution de la fonction s func__name__

return func

Fonction cible utiliseacutee avec DECORATOR

decorate

def foobar(args)

print join(args)

Exemple drsquoappel de la fonction

foobar(A B C D)

Je suis dans la fonction decorate et je deacutecore foobar

Exeacutecution de la fonction foobar

A B C D

Il est posible drsquoattribuer plusieurs deacutecorateurs agrave une seule fonction

decorateur1

decorateur2

def ma_fonction()

instructions

Base de repreacutesentation des donneacutees

43

Manipulation des listes a = [6625 333 333 1 12345]

print(acount(333) acount(6625) acount(x))

2 1 0

ainsert(2 -1)

aappend(333)

a

[6625 333 -1 333 1 12345 333]

aindex(333)

1

aremove(333)

a

[6625 -1 333 1 12345 333]

areverse()

a

[333 12345 1 333 -1 6625]

asort()

a

[-1 1 6625 333 333 12345]

apop()

12345

a

[-1 1 6625 333 333]

Base de repreacutesentation des donneacutees

44

Puissance du langage Python Lrsquoensemble des lignes suiantes peut ecirctre compacteacute par ce qui suit

combs = []

for x in [123]

for y in [314]

if x = y

combsappend((x y))

Combs

Ou bien

[(x y) for x in [123] for y in [314] if x = y]

Donne le mecircme reacutesultat

[(1 3) (1 4) (2 3) (2 1) (2 4) (3 1) (3 4)]

Calcul de la valeur de PI arrondie

from math import pi

[str(round(pi i)) for i in range(1 6)]

[31 314 3142 31416 314159]

Geacuteneacuterateur avec utilisation de YIELD

def generateur()

yield a

yield b

yield cldquo

i=generateur()

for v in i

print v

a

b

c

Base de repreacutesentation des donneacutees

45

Les expressions reacuteguliegraveres en python Les expressions reacuteguliegravere sont utiliseacutees pour veacuterifier la conformiteacute des expressions de

chaines de caractegraveres par rapport agrave un motif Les symboles suivants sont utiliseacutes

^ $ + [ ] | ( )

Le point correspond agrave nimporte quel caractegravere

^ Indique un commencement de segment mais signifie aussi contraire de

$ Fin de segment

[xy] Une liste de segment possible Exemple [abc] eacutequivaut agrave a b ou c

(x|y) Indique un choix multiple type (ps|ump) eacutequivaut agrave ps OU UMP

d le segment est composeacute uniquement de chiffre ce qui eacutequivaut agrave [0-9]

D le segment nest pas composeacute de chiffre ce qui eacutequivaut agrave [^0-9]

s Un espace ce qui eacutequivaut agrave [ tnrfv]

S Pas despace ce qui eacutequivaut agrave [^ tnrfv]

w Preacutesence alphanumeacuterique ce qui eacutequivaut agrave [a-zA-Z0-9_]

W Pas de preacutesence alphanumeacuterique [^a-zA-Z0-9_]

Est un caractegravere deacutechappement T2 Le T soit reacutepeacuteteacute 2 fois

TA19 La seacutequence TA doit ecirctre preacutesente de 1 agrave 9 fois

TAM10 La seacutequence TAM nrsquoexiste pas ou reacutepeacuteteacutee 10 fois

LI1 La seacutequence LI doit ecirctre reacutepeacuteteacutee au moins une fois

Base de repreacutesentation des donneacutees

46

Les expressions reacuteguliegraveres en python Utilisation des expressions reacuteguliegravere

import re

print rematch(rGR()S GRIS)

lt_sreSRE_Match object at 0x02019DE0gt

Une utilisation freacutequente consiste en la validation des valeurs des emails saisis

Utilisation des expressions reacuteguliegravere

import re

mails = [lsquomtamaligmailcomrsquorsquoutmbuniv-bechardzrsquo lsquo8freefrrsquo lsquouniv-bechardzrsquo lsquotamalicdtarsquo]

regex = recompile(rrsquo^[a-z0-9_-]+[a-z0-9_-]+[(com|fr|dz)]+rsquo

for mail in mails

if regexmatch(mail) is not None

print Ce mail s est valide mail

else

print Erreur ce mail s est non valide mail

Ce mail mtamaligmailcom est valide

Ce mail utmbuniv-bechardz est valide

Ce mail 8freefr est valide

Erreur ce mail univ-bechardz est non valide

Erreur ce mail tamalicdta est non valide

Base de repreacutesentation des donneacutees

47

Les fichiers Creacuteer lire et eacutecrire dans un fichier en python Utilisation des expressions reacuteguliegravere

fichier = open(donneestxt r)

print fichier

ltopen file lsquodonneestxt mode r at 0x7ff6cf3fe4b0gt

Le descripteur permet de renseigner la machine sur la maniegravere avec laquelle le fichier est utiliseacute

r pour ouverture en mode READ

w pour ouverture en mode WRITE chaque fois le contenu du fichier est eacutecraseacute sinon python le creacutee

a pour ajout lsquoAPPENDrsquo Si le fichier nexiste pas python le creacutee

b Ouverture en mode Binaire

t Ouverture en mode Texte

x creacutee un nouveau fichier et louvrir pour eacutecriture

proceacutedure geacuteneacuterale pour lrsquoutilisation drsquoun fichier

fichier = open(lsquodonneestxtrsquo r)

print fichierread()

fichierclose()

Lrsquoinstruction WITH peut ecirctre utiliseacutee sans besoin de la fonction CLOSE

with open(datatxt r) as fichier

print fichierread()

Base de repreacutesentation des donneacutees

48

49

Le langage Python est un langage script interpreacuteteacute Le programme portant lrsquoune des extension py pyw ou pwc est

structureacute selon le canevas suivant

Les codifications

usrbinpython27

--codingencodage -

Les imports des librairies

Les instructions

Le langage Python passe pour ecirctre exeacutecuteacute sur deux eacutetapes la premiegravere UNE PRECOMPILATION geacuteneacuteration du code

machine et finalement un eacutecriture en code machine exeacutecutable (selon la machine)

Lrsquoenvironnement drsquoexeacutecution des scripts eacutecrits en Python regroupe les avantages des TRADUCTEURS (travaille en ligne par

ligne) et les COMPILATEURS (puissance de la structure algorithmique)

La bibliothegraveque cx_Freeze sert agrave transformer les fichiers scripts Pyhon py en exeacutecutable exe

Structures algorithmique du python

50

51

Matrices amp Systegravemes lineacuteaires

52

53

54

55

56

57

Le calcul scientifique

Reacutefeacuterences L-V Bertallanfy lsquoGeneral System Theoryrsquo Edition MASSON 1972

58

Page 37: Chap XIII : calcul scientifique avec python

Affectation amp Controcircle conditionnel de flue statement1 = False Crsquoest une affectation

statement2 = False

if statement1 Test valideacute condition (statement1) est VRAIE

print(statement1 is True)

elif statement2 Exeacutecuteacutee condition (statement2) est VRAIE

print(statement2 is True)

else Exeacutecuteacutee sinon

print(statement1 and statement2 are False)

Boucles for x in [123] [123] peut ecirctre deacutesigneacute par range(3) avec print(x+1)

print(x)

1

2

3

for word in [scientific computing with python]

print(word) condition de reacutepeacutetition deacutependante du contenu de la liste

scientific

computing

with

python

l1 = [x2 for x in range(05)] agrave remarquer la compaciteacute du Python

print(l1)

[0 1 4 9 16]

Base de repreacutesentation des donneacutees

37

Boucles var = 0

while var = 1

print jlsquoeacutecris mon programme ici

choix = raw_input(voulez vous recommencer ( on ) )

if choix == n

var = 1

else

lsquovous allez ecirctre renvoyeacute au deacutebut du programmersquo

X = y 2

while x gt 1

If y x == 0

print y lsquo est facteur de rsquo x

break

x -= 1

else

print y lsquo est premierlsquo

Lrsquoutilisation de zip et map peut srsquoaveacutereacutee encore plus efficace

l1 = [1 2 3]

l2 = [4 5 6]

for (x y) in zip(l1 l2)

print x y -- x + y

1 4 -- 5

2 5 -- 7

3 6 -- 9

Base de repreacutesentation des donneacutees

38

s=0123456789

print map(int s)

[0 1 2 3 4 5 6 7 8 9]

Utilisation et

puissance de MAP

Utilisation de ZIP

Intervales range(start stop step)

range(5 10)

5 jusqursquoagrave 10 (exclue) avec un pas de 1

range(0 10 3)

0 3 6 9

range(-10 -100 -30)

-10 -40 -70

Test conditionnel binaire x = 5

y = 10

if x gt y

print(x est grand que y)

else

print(ldquox nrsquoest pas grand que yrdquo)

Dans Python on peut compliquer les chose

x = 5

y = 10

Z = 12

if z gt x gt y

print(lsquoy est petit que x et x est petit que z)

Base de repreacutesentation des donneacutees

39

Boucle avec test conditionnel binaire break continue et else dans une boucle for

for n in range(2 10)

for x in range(2 n)

if n x == 0

print(n lsquoest eacutegal agrave x nx)

break

else

print(n lsquoest premier)

Utilisation de lrsquoinstruction continue

for num in range(2 10)

if num 2 == 0 le symbole deacutesigne lrsquoopeacuteration RESTE de la division

print(ldquoNombre paire trouveacute num)

continue

print(ldquoNombre non premier num)

Base de repreacutesentation des donneacutees

40

Deacutefinition de fonction (proceacutedure avec retour) def fib(n) Ecrire la suite de Fibonacci jusqursquoagrave n

a b = 0 1

while a lt n

print(a end= )

a b = b a+b

print()

fib(2000)

0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597

f = fib deacutesignation par reacutefeacuterence f agrave la fonction fib

f(100)

0 1 1 2 3 5 8 13 21 34 55 89

autre type de deacutefinition de fonction

def ask_ok(prompt retries=4 complaint=Oui or Non srsquoil vou plait )

while True

ok = input(prompt)

if ok in (lsquoo lsquooui lsquoOui)

return True

if ok in (lsquon no non lsquoNon)

return False

retries = retries - 1

if retries lt 0

raise OSError(lsquoUtilisateur non coopeacuteratif)

print(complaint)

Base de repreacutesentation des donneacutees

41

Lrsquoinstruction lambda def make_incrementeur(n)

return lambda x x + n

f = make_incrementeur(42)

f(0)

42

f(1)

43

un autre cas drsquoutilisation

pairs = [(1 one) (2 two) (3 three) (4 four)]

pairssort(key=lambda pair pair[1])

pairs

[(4 four) (1 one) (3 three) (2 two)]

Les annotations dans une fonction Les annotations deacutefinissent des messages de preacutesentation

def f(chiken str eggs str = eggs) -gt str remarquer que la fonction est de type STR

print(Annotations f__annotations__)

print(Arguments chiken eggs)

return chiken + and + eggs

f(spam)

Annotations chiken ltclass strgt return ltclass strgt eggs ltclass strgt

Arguments spam eggs

spam and eggslsquo

Base de repreacutesentation des donneacutees

42

Les deacutecorateurs python Notre deacutecorateur

def decorate(func)

print uJe suis dans la fonction decorate et je deacutecore s func__name__

print uExeacutecution de la fonction s func__name__

return func

Fonction cible utiliseacutee avec DECORATOR

decorate

def foobar(args)

print join(args)

Exemple drsquoappel de la fonction

foobar(A B C D)

Je suis dans la fonction decorate et je deacutecore foobar

Exeacutecution de la fonction foobar

A B C D

Il est posible drsquoattribuer plusieurs deacutecorateurs agrave une seule fonction

decorateur1

decorateur2

def ma_fonction()

instructions

Base de repreacutesentation des donneacutees

43

Manipulation des listes a = [6625 333 333 1 12345]

print(acount(333) acount(6625) acount(x))

2 1 0

ainsert(2 -1)

aappend(333)

a

[6625 333 -1 333 1 12345 333]

aindex(333)

1

aremove(333)

a

[6625 -1 333 1 12345 333]

areverse()

a

[333 12345 1 333 -1 6625]

asort()

a

[-1 1 6625 333 333 12345]

apop()

12345

a

[-1 1 6625 333 333]

Base de repreacutesentation des donneacutees

44

Puissance du langage Python Lrsquoensemble des lignes suiantes peut ecirctre compacteacute par ce qui suit

combs = []

for x in [123]

for y in [314]

if x = y

combsappend((x y))

Combs

Ou bien

[(x y) for x in [123] for y in [314] if x = y]

Donne le mecircme reacutesultat

[(1 3) (1 4) (2 3) (2 1) (2 4) (3 1) (3 4)]

Calcul de la valeur de PI arrondie

from math import pi

[str(round(pi i)) for i in range(1 6)]

[31 314 3142 31416 314159]

Geacuteneacuterateur avec utilisation de YIELD

def generateur()

yield a

yield b

yield cldquo

i=generateur()

for v in i

print v

a

b

c

Base de repreacutesentation des donneacutees

45

Les expressions reacuteguliegraveres en python Les expressions reacuteguliegravere sont utiliseacutees pour veacuterifier la conformiteacute des expressions de

chaines de caractegraveres par rapport agrave un motif Les symboles suivants sont utiliseacutes

^ $ + [ ] | ( )

Le point correspond agrave nimporte quel caractegravere

^ Indique un commencement de segment mais signifie aussi contraire de

$ Fin de segment

[xy] Une liste de segment possible Exemple [abc] eacutequivaut agrave a b ou c

(x|y) Indique un choix multiple type (ps|ump) eacutequivaut agrave ps OU UMP

d le segment est composeacute uniquement de chiffre ce qui eacutequivaut agrave [0-9]

D le segment nest pas composeacute de chiffre ce qui eacutequivaut agrave [^0-9]

s Un espace ce qui eacutequivaut agrave [ tnrfv]

S Pas despace ce qui eacutequivaut agrave [^ tnrfv]

w Preacutesence alphanumeacuterique ce qui eacutequivaut agrave [a-zA-Z0-9_]

W Pas de preacutesence alphanumeacuterique [^a-zA-Z0-9_]

Est un caractegravere deacutechappement T2 Le T soit reacutepeacuteteacute 2 fois

TA19 La seacutequence TA doit ecirctre preacutesente de 1 agrave 9 fois

TAM10 La seacutequence TAM nrsquoexiste pas ou reacutepeacuteteacutee 10 fois

LI1 La seacutequence LI doit ecirctre reacutepeacuteteacutee au moins une fois

Base de repreacutesentation des donneacutees

46

Les expressions reacuteguliegraveres en python Utilisation des expressions reacuteguliegravere

import re

print rematch(rGR()S GRIS)

lt_sreSRE_Match object at 0x02019DE0gt

Une utilisation freacutequente consiste en la validation des valeurs des emails saisis

Utilisation des expressions reacuteguliegravere

import re

mails = [lsquomtamaligmailcomrsquorsquoutmbuniv-bechardzrsquo lsquo8freefrrsquo lsquouniv-bechardzrsquo lsquotamalicdtarsquo]

regex = recompile(rrsquo^[a-z0-9_-]+[a-z0-9_-]+[(com|fr|dz)]+rsquo

for mail in mails

if regexmatch(mail) is not None

print Ce mail s est valide mail

else

print Erreur ce mail s est non valide mail

Ce mail mtamaligmailcom est valide

Ce mail utmbuniv-bechardz est valide

Ce mail 8freefr est valide

Erreur ce mail univ-bechardz est non valide

Erreur ce mail tamalicdta est non valide

Base de repreacutesentation des donneacutees

47

Les fichiers Creacuteer lire et eacutecrire dans un fichier en python Utilisation des expressions reacuteguliegravere

fichier = open(donneestxt r)

print fichier

ltopen file lsquodonneestxt mode r at 0x7ff6cf3fe4b0gt

Le descripteur permet de renseigner la machine sur la maniegravere avec laquelle le fichier est utiliseacute

r pour ouverture en mode READ

w pour ouverture en mode WRITE chaque fois le contenu du fichier est eacutecraseacute sinon python le creacutee

a pour ajout lsquoAPPENDrsquo Si le fichier nexiste pas python le creacutee

b Ouverture en mode Binaire

t Ouverture en mode Texte

x creacutee un nouveau fichier et louvrir pour eacutecriture

proceacutedure geacuteneacuterale pour lrsquoutilisation drsquoun fichier

fichier = open(lsquodonneestxtrsquo r)

print fichierread()

fichierclose()

Lrsquoinstruction WITH peut ecirctre utiliseacutee sans besoin de la fonction CLOSE

with open(datatxt r) as fichier

print fichierread()

Base de repreacutesentation des donneacutees

48

49

Le langage Python est un langage script interpreacuteteacute Le programme portant lrsquoune des extension py pyw ou pwc est

structureacute selon le canevas suivant

Les codifications

usrbinpython27

--codingencodage -

Les imports des librairies

Les instructions

Le langage Python passe pour ecirctre exeacutecuteacute sur deux eacutetapes la premiegravere UNE PRECOMPILATION geacuteneacuteration du code

machine et finalement un eacutecriture en code machine exeacutecutable (selon la machine)

Lrsquoenvironnement drsquoexeacutecution des scripts eacutecrits en Python regroupe les avantages des TRADUCTEURS (travaille en ligne par

ligne) et les COMPILATEURS (puissance de la structure algorithmique)

La bibliothegraveque cx_Freeze sert agrave transformer les fichiers scripts Pyhon py en exeacutecutable exe

Structures algorithmique du python

50

51

Matrices amp Systegravemes lineacuteaires

52

53

54

55

56

57

Le calcul scientifique

Reacutefeacuterences L-V Bertallanfy lsquoGeneral System Theoryrsquo Edition MASSON 1972

58

Page 38: Chap XIII : calcul scientifique avec python

Boucles var = 0

while var = 1

print jlsquoeacutecris mon programme ici

choix = raw_input(voulez vous recommencer ( on ) )

if choix == n

var = 1

else

lsquovous allez ecirctre renvoyeacute au deacutebut du programmersquo

X = y 2

while x gt 1

If y x == 0

print y lsquo est facteur de rsquo x

break

x -= 1

else

print y lsquo est premierlsquo

Lrsquoutilisation de zip et map peut srsquoaveacutereacutee encore plus efficace

l1 = [1 2 3]

l2 = [4 5 6]

for (x y) in zip(l1 l2)

print x y -- x + y

1 4 -- 5

2 5 -- 7

3 6 -- 9

Base de repreacutesentation des donneacutees

38

s=0123456789

print map(int s)

[0 1 2 3 4 5 6 7 8 9]

Utilisation et

puissance de MAP

Utilisation de ZIP

Intervales range(start stop step)

range(5 10)

5 jusqursquoagrave 10 (exclue) avec un pas de 1

range(0 10 3)

0 3 6 9

range(-10 -100 -30)

-10 -40 -70

Test conditionnel binaire x = 5

y = 10

if x gt y

print(x est grand que y)

else

print(ldquox nrsquoest pas grand que yrdquo)

Dans Python on peut compliquer les chose

x = 5

y = 10

Z = 12

if z gt x gt y

print(lsquoy est petit que x et x est petit que z)

Base de repreacutesentation des donneacutees

39

Boucle avec test conditionnel binaire break continue et else dans une boucle for

for n in range(2 10)

for x in range(2 n)

if n x == 0

print(n lsquoest eacutegal agrave x nx)

break

else

print(n lsquoest premier)

Utilisation de lrsquoinstruction continue

for num in range(2 10)

if num 2 == 0 le symbole deacutesigne lrsquoopeacuteration RESTE de la division

print(ldquoNombre paire trouveacute num)

continue

print(ldquoNombre non premier num)

Base de repreacutesentation des donneacutees

40

Deacutefinition de fonction (proceacutedure avec retour) def fib(n) Ecrire la suite de Fibonacci jusqursquoagrave n

a b = 0 1

while a lt n

print(a end= )

a b = b a+b

print()

fib(2000)

0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597

f = fib deacutesignation par reacutefeacuterence f agrave la fonction fib

f(100)

0 1 1 2 3 5 8 13 21 34 55 89

autre type de deacutefinition de fonction

def ask_ok(prompt retries=4 complaint=Oui or Non srsquoil vou plait )

while True

ok = input(prompt)

if ok in (lsquoo lsquooui lsquoOui)

return True

if ok in (lsquon no non lsquoNon)

return False

retries = retries - 1

if retries lt 0

raise OSError(lsquoUtilisateur non coopeacuteratif)

print(complaint)

Base de repreacutesentation des donneacutees

41

Lrsquoinstruction lambda def make_incrementeur(n)

return lambda x x + n

f = make_incrementeur(42)

f(0)

42

f(1)

43

un autre cas drsquoutilisation

pairs = [(1 one) (2 two) (3 three) (4 four)]

pairssort(key=lambda pair pair[1])

pairs

[(4 four) (1 one) (3 three) (2 two)]

Les annotations dans une fonction Les annotations deacutefinissent des messages de preacutesentation

def f(chiken str eggs str = eggs) -gt str remarquer que la fonction est de type STR

print(Annotations f__annotations__)

print(Arguments chiken eggs)

return chiken + and + eggs

f(spam)

Annotations chiken ltclass strgt return ltclass strgt eggs ltclass strgt

Arguments spam eggs

spam and eggslsquo

Base de repreacutesentation des donneacutees

42

Les deacutecorateurs python Notre deacutecorateur

def decorate(func)

print uJe suis dans la fonction decorate et je deacutecore s func__name__

print uExeacutecution de la fonction s func__name__

return func

Fonction cible utiliseacutee avec DECORATOR

decorate

def foobar(args)

print join(args)

Exemple drsquoappel de la fonction

foobar(A B C D)

Je suis dans la fonction decorate et je deacutecore foobar

Exeacutecution de la fonction foobar

A B C D

Il est posible drsquoattribuer plusieurs deacutecorateurs agrave une seule fonction

decorateur1

decorateur2

def ma_fonction()

instructions

Base de repreacutesentation des donneacutees

43

Manipulation des listes a = [6625 333 333 1 12345]

print(acount(333) acount(6625) acount(x))

2 1 0

ainsert(2 -1)

aappend(333)

a

[6625 333 -1 333 1 12345 333]

aindex(333)

1

aremove(333)

a

[6625 -1 333 1 12345 333]

areverse()

a

[333 12345 1 333 -1 6625]

asort()

a

[-1 1 6625 333 333 12345]

apop()

12345

a

[-1 1 6625 333 333]

Base de repreacutesentation des donneacutees

44

Puissance du langage Python Lrsquoensemble des lignes suiantes peut ecirctre compacteacute par ce qui suit

combs = []

for x in [123]

for y in [314]

if x = y

combsappend((x y))

Combs

Ou bien

[(x y) for x in [123] for y in [314] if x = y]

Donne le mecircme reacutesultat

[(1 3) (1 4) (2 3) (2 1) (2 4) (3 1) (3 4)]

Calcul de la valeur de PI arrondie

from math import pi

[str(round(pi i)) for i in range(1 6)]

[31 314 3142 31416 314159]

Geacuteneacuterateur avec utilisation de YIELD

def generateur()

yield a

yield b

yield cldquo

i=generateur()

for v in i

print v

a

b

c

Base de repreacutesentation des donneacutees

45

Les expressions reacuteguliegraveres en python Les expressions reacuteguliegravere sont utiliseacutees pour veacuterifier la conformiteacute des expressions de

chaines de caractegraveres par rapport agrave un motif Les symboles suivants sont utiliseacutes

^ $ + [ ] | ( )

Le point correspond agrave nimporte quel caractegravere

^ Indique un commencement de segment mais signifie aussi contraire de

$ Fin de segment

[xy] Une liste de segment possible Exemple [abc] eacutequivaut agrave a b ou c

(x|y) Indique un choix multiple type (ps|ump) eacutequivaut agrave ps OU UMP

d le segment est composeacute uniquement de chiffre ce qui eacutequivaut agrave [0-9]

D le segment nest pas composeacute de chiffre ce qui eacutequivaut agrave [^0-9]

s Un espace ce qui eacutequivaut agrave [ tnrfv]

S Pas despace ce qui eacutequivaut agrave [^ tnrfv]

w Preacutesence alphanumeacuterique ce qui eacutequivaut agrave [a-zA-Z0-9_]

W Pas de preacutesence alphanumeacuterique [^a-zA-Z0-9_]

Est un caractegravere deacutechappement T2 Le T soit reacutepeacuteteacute 2 fois

TA19 La seacutequence TA doit ecirctre preacutesente de 1 agrave 9 fois

TAM10 La seacutequence TAM nrsquoexiste pas ou reacutepeacuteteacutee 10 fois

LI1 La seacutequence LI doit ecirctre reacutepeacuteteacutee au moins une fois

Base de repreacutesentation des donneacutees

46

Les expressions reacuteguliegraveres en python Utilisation des expressions reacuteguliegravere

import re

print rematch(rGR()S GRIS)

lt_sreSRE_Match object at 0x02019DE0gt

Une utilisation freacutequente consiste en la validation des valeurs des emails saisis

Utilisation des expressions reacuteguliegravere

import re

mails = [lsquomtamaligmailcomrsquorsquoutmbuniv-bechardzrsquo lsquo8freefrrsquo lsquouniv-bechardzrsquo lsquotamalicdtarsquo]

regex = recompile(rrsquo^[a-z0-9_-]+[a-z0-9_-]+[(com|fr|dz)]+rsquo

for mail in mails

if regexmatch(mail) is not None

print Ce mail s est valide mail

else

print Erreur ce mail s est non valide mail

Ce mail mtamaligmailcom est valide

Ce mail utmbuniv-bechardz est valide

Ce mail 8freefr est valide

Erreur ce mail univ-bechardz est non valide

Erreur ce mail tamalicdta est non valide

Base de repreacutesentation des donneacutees

47

Les fichiers Creacuteer lire et eacutecrire dans un fichier en python Utilisation des expressions reacuteguliegravere

fichier = open(donneestxt r)

print fichier

ltopen file lsquodonneestxt mode r at 0x7ff6cf3fe4b0gt

Le descripteur permet de renseigner la machine sur la maniegravere avec laquelle le fichier est utiliseacute

r pour ouverture en mode READ

w pour ouverture en mode WRITE chaque fois le contenu du fichier est eacutecraseacute sinon python le creacutee

a pour ajout lsquoAPPENDrsquo Si le fichier nexiste pas python le creacutee

b Ouverture en mode Binaire

t Ouverture en mode Texte

x creacutee un nouveau fichier et louvrir pour eacutecriture

proceacutedure geacuteneacuterale pour lrsquoutilisation drsquoun fichier

fichier = open(lsquodonneestxtrsquo r)

print fichierread()

fichierclose()

Lrsquoinstruction WITH peut ecirctre utiliseacutee sans besoin de la fonction CLOSE

with open(datatxt r) as fichier

print fichierread()

Base de repreacutesentation des donneacutees

48

49

Le langage Python est un langage script interpreacuteteacute Le programme portant lrsquoune des extension py pyw ou pwc est

structureacute selon le canevas suivant

Les codifications

usrbinpython27

--codingencodage -

Les imports des librairies

Les instructions

Le langage Python passe pour ecirctre exeacutecuteacute sur deux eacutetapes la premiegravere UNE PRECOMPILATION geacuteneacuteration du code

machine et finalement un eacutecriture en code machine exeacutecutable (selon la machine)

Lrsquoenvironnement drsquoexeacutecution des scripts eacutecrits en Python regroupe les avantages des TRADUCTEURS (travaille en ligne par

ligne) et les COMPILATEURS (puissance de la structure algorithmique)

La bibliothegraveque cx_Freeze sert agrave transformer les fichiers scripts Pyhon py en exeacutecutable exe

Structures algorithmique du python

50

51

Matrices amp Systegravemes lineacuteaires

52

53

54

55

56

57

Le calcul scientifique

Reacutefeacuterences L-V Bertallanfy lsquoGeneral System Theoryrsquo Edition MASSON 1972

58

Page 39: Chap XIII : calcul scientifique avec python

Intervales range(start stop step)

range(5 10)

5 jusqursquoagrave 10 (exclue) avec un pas de 1

range(0 10 3)

0 3 6 9

range(-10 -100 -30)

-10 -40 -70

Test conditionnel binaire x = 5

y = 10

if x gt y

print(x est grand que y)

else

print(ldquox nrsquoest pas grand que yrdquo)

Dans Python on peut compliquer les chose

x = 5

y = 10

Z = 12

if z gt x gt y

print(lsquoy est petit que x et x est petit que z)

Base de repreacutesentation des donneacutees

39

Boucle avec test conditionnel binaire break continue et else dans une boucle for

for n in range(2 10)

for x in range(2 n)

if n x == 0

print(n lsquoest eacutegal agrave x nx)

break

else

print(n lsquoest premier)

Utilisation de lrsquoinstruction continue

for num in range(2 10)

if num 2 == 0 le symbole deacutesigne lrsquoopeacuteration RESTE de la division

print(ldquoNombre paire trouveacute num)

continue

print(ldquoNombre non premier num)

Base de repreacutesentation des donneacutees

40

Deacutefinition de fonction (proceacutedure avec retour) def fib(n) Ecrire la suite de Fibonacci jusqursquoagrave n

a b = 0 1

while a lt n

print(a end= )

a b = b a+b

print()

fib(2000)

0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597

f = fib deacutesignation par reacutefeacuterence f agrave la fonction fib

f(100)

0 1 1 2 3 5 8 13 21 34 55 89

autre type de deacutefinition de fonction

def ask_ok(prompt retries=4 complaint=Oui or Non srsquoil vou plait )

while True

ok = input(prompt)

if ok in (lsquoo lsquooui lsquoOui)

return True

if ok in (lsquon no non lsquoNon)

return False

retries = retries - 1

if retries lt 0

raise OSError(lsquoUtilisateur non coopeacuteratif)

print(complaint)

Base de repreacutesentation des donneacutees

41

Lrsquoinstruction lambda def make_incrementeur(n)

return lambda x x + n

f = make_incrementeur(42)

f(0)

42

f(1)

43

un autre cas drsquoutilisation

pairs = [(1 one) (2 two) (3 three) (4 four)]

pairssort(key=lambda pair pair[1])

pairs

[(4 four) (1 one) (3 three) (2 two)]

Les annotations dans une fonction Les annotations deacutefinissent des messages de preacutesentation

def f(chiken str eggs str = eggs) -gt str remarquer que la fonction est de type STR

print(Annotations f__annotations__)

print(Arguments chiken eggs)

return chiken + and + eggs

f(spam)

Annotations chiken ltclass strgt return ltclass strgt eggs ltclass strgt

Arguments spam eggs

spam and eggslsquo

Base de repreacutesentation des donneacutees

42

Les deacutecorateurs python Notre deacutecorateur

def decorate(func)

print uJe suis dans la fonction decorate et je deacutecore s func__name__

print uExeacutecution de la fonction s func__name__

return func

Fonction cible utiliseacutee avec DECORATOR

decorate

def foobar(args)

print join(args)

Exemple drsquoappel de la fonction

foobar(A B C D)

Je suis dans la fonction decorate et je deacutecore foobar

Exeacutecution de la fonction foobar

A B C D

Il est posible drsquoattribuer plusieurs deacutecorateurs agrave une seule fonction

decorateur1

decorateur2

def ma_fonction()

instructions

Base de repreacutesentation des donneacutees

43

Manipulation des listes a = [6625 333 333 1 12345]

print(acount(333) acount(6625) acount(x))

2 1 0

ainsert(2 -1)

aappend(333)

a

[6625 333 -1 333 1 12345 333]

aindex(333)

1

aremove(333)

a

[6625 -1 333 1 12345 333]

areverse()

a

[333 12345 1 333 -1 6625]

asort()

a

[-1 1 6625 333 333 12345]

apop()

12345

a

[-1 1 6625 333 333]

Base de repreacutesentation des donneacutees

44

Puissance du langage Python Lrsquoensemble des lignes suiantes peut ecirctre compacteacute par ce qui suit

combs = []

for x in [123]

for y in [314]

if x = y

combsappend((x y))

Combs

Ou bien

[(x y) for x in [123] for y in [314] if x = y]

Donne le mecircme reacutesultat

[(1 3) (1 4) (2 3) (2 1) (2 4) (3 1) (3 4)]

Calcul de la valeur de PI arrondie

from math import pi

[str(round(pi i)) for i in range(1 6)]

[31 314 3142 31416 314159]

Geacuteneacuterateur avec utilisation de YIELD

def generateur()

yield a

yield b

yield cldquo

i=generateur()

for v in i

print v

a

b

c

Base de repreacutesentation des donneacutees

45

Les expressions reacuteguliegraveres en python Les expressions reacuteguliegravere sont utiliseacutees pour veacuterifier la conformiteacute des expressions de

chaines de caractegraveres par rapport agrave un motif Les symboles suivants sont utiliseacutes

^ $ + [ ] | ( )

Le point correspond agrave nimporte quel caractegravere

^ Indique un commencement de segment mais signifie aussi contraire de

$ Fin de segment

[xy] Une liste de segment possible Exemple [abc] eacutequivaut agrave a b ou c

(x|y) Indique un choix multiple type (ps|ump) eacutequivaut agrave ps OU UMP

d le segment est composeacute uniquement de chiffre ce qui eacutequivaut agrave [0-9]

D le segment nest pas composeacute de chiffre ce qui eacutequivaut agrave [^0-9]

s Un espace ce qui eacutequivaut agrave [ tnrfv]

S Pas despace ce qui eacutequivaut agrave [^ tnrfv]

w Preacutesence alphanumeacuterique ce qui eacutequivaut agrave [a-zA-Z0-9_]

W Pas de preacutesence alphanumeacuterique [^a-zA-Z0-9_]

Est un caractegravere deacutechappement T2 Le T soit reacutepeacuteteacute 2 fois

TA19 La seacutequence TA doit ecirctre preacutesente de 1 agrave 9 fois

TAM10 La seacutequence TAM nrsquoexiste pas ou reacutepeacuteteacutee 10 fois

LI1 La seacutequence LI doit ecirctre reacutepeacuteteacutee au moins une fois

Base de repreacutesentation des donneacutees

46

Les expressions reacuteguliegraveres en python Utilisation des expressions reacuteguliegravere

import re

print rematch(rGR()S GRIS)

lt_sreSRE_Match object at 0x02019DE0gt

Une utilisation freacutequente consiste en la validation des valeurs des emails saisis

Utilisation des expressions reacuteguliegravere

import re

mails = [lsquomtamaligmailcomrsquorsquoutmbuniv-bechardzrsquo lsquo8freefrrsquo lsquouniv-bechardzrsquo lsquotamalicdtarsquo]

regex = recompile(rrsquo^[a-z0-9_-]+[a-z0-9_-]+[(com|fr|dz)]+rsquo

for mail in mails

if regexmatch(mail) is not None

print Ce mail s est valide mail

else

print Erreur ce mail s est non valide mail

Ce mail mtamaligmailcom est valide

Ce mail utmbuniv-bechardz est valide

Ce mail 8freefr est valide

Erreur ce mail univ-bechardz est non valide

Erreur ce mail tamalicdta est non valide

Base de repreacutesentation des donneacutees

47

Les fichiers Creacuteer lire et eacutecrire dans un fichier en python Utilisation des expressions reacuteguliegravere

fichier = open(donneestxt r)

print fichier

ltopen file lsquodonneestxt mode r at 0x7ff6cf3fe4b0gt

Le descripteur permet de renseigner la machine sur la maniegravere avec laquelle le fichier est utiliseacute

r pour ouverture en mode READ

w pour ouverture en mode WRITE chaque fois le contenu du fichier est eacutecraseacute sinon python le creacutee

a pour ajout lsquoAPPENDrsquo Si le fichier nexiste pas python le creacutee

b Ouverture en mode Binaire

t Ouverture en mode Texte

x creacutee un nouveau fichier et louvrir pour eacutecriture

proceacutedure geacuteneacuterale pour lrsquoutilisation drsquoun fichier

fichier = open(lsquodonneestxtrsquo r)

print fichierread()

fichierclose()

Lrsquoinstruction WITH peut ecirctre utiliseacutee sans besoin de la fonction CLOSE

with open(datatxt r) as fichier

print fichierread()

Base de repreacutesentation des donneacutees

48

49

Le langage Python est un langage script interpreacuteteacute Le programme portant lrsquoune des extension py pyw ou pwc est

structureacute selon le canevas suivant

Les codifications

usrbinpython27

--codingencodage -

Les imports des librairies

Les instructions

Le langage Python passe pour ecirctre exeacutecuteacute sur deux eacutetapes la premiegravere UNE PRECOMPILATION geacuteneacuteration du code

machine et finalement un eacutecriture en code machine exeacutecutable (selon la machine)

Lrsquoenvironnement drsquoexeacutecution des scripts eacutecrits en Python regroupe les avantages des TRADUCTEURS (travaille en ligne par

ligne) et les COMPILATEURS (puissance de la structure algorithmique)

La bibliothegraveque cx_Freeze sert agrave transformer les fichiers scripts Pyhon py en exeacutecutable exe

Structures algorithmique du python

50

51

Matrices amp Systegravemes lineacuteaires

52

53

54

55

56

57

Le calcul scientifique

Reacutefeacuterences L-V Bertallanfy lsquoGeneral System Theoryrsquo Edition MASSON 1972

58

Page 40: Chap XIII : calcul scientifique avec python

Boucle avec test conditionnel binaire break continue et else dans une boucle for

for n in range(2 10)

for x in range(2 n)

if n x == 0

print(n lsquoest eacutegal agrave x nx)

break

else

print(n lsquoest premier)

Utilisation de lrsquoinstruction continue

for num in range(2 10)

if num 2 == 0 le symbole deacutesigne lrsquoopeacuteration RESTE de la division

print(ldquoNombre paire trouveacute num)

continue

print(ldquoNombre non premier num)

Base de repreacutesentation des donneacutees

40

Deacutefinition de fonction (proceacutedure avec retour) def fib(n) Ecrire la suite de Fibonacci jusqursquoagrave n

a b = 0 1

while a lt n

print(a end= )

a b = b a+b

print()

fib(2000)

0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597

f = fib deacutesignation par reacutefeacuterence f agrave la fonction fib

f(100)

0 1 1 2 3 5 8 13 21 34 55 89

autre type de deacutefinition de fonction

def ask_ok(prompt retries=4 complaint=Oui or Non srsquoil vou plait )

while True

ok = input(prompt)

if ok in (lsquoo lsquooui lsquoOui)

return True

if ok in (lsquon no non lsquoNon)

return False

retries = retries - 1

if retries lt 0

raise OSError(lsquoUtilisateur non coopeacuteratif)

print(complaint)

Base de repreacutesentation des donneacutees

41

Lrsquoinstruction lambda def make_incrementeur(n)

return lambda x x + n

f = make_incrementeur(42)

f(0)

42

f(1)

43

un autre cas drsquoutilisation

pairs = [(1 one) (2 two) (3 three) (4 four)]

pairssort(key=lambda pair pair[1])

pairs

[(4 four) (1 one) (3 three) (2 two)]

Les annotations dans une fonction Les annotations deacutefinissent des messages de preacutesentation

def f(chiken str eggs str = eggs) -gt str remarquer que la fonction est de type STR

print(Annotations f__annotations__)

print(Arguments chiken eggs)

return chiken + and + eggs

f(spam)

Annotations chiken ltclass strgt return ltclass strgt eggs ltclass strgt

Arguments spam eggs

spam and eggslsquo

Base de repreacutesentation des donneacutees

42

Les deacutecorateurs python Notre deacutecorateur

def decorate(func)

print uJe suis dans la fonction decorate et je deacutecore s func__name__

print uExeacutecution de la fonction s func__name__

return func

Fonction cible utiliseacutee avec DECORATOR

decorate

def foobar(args)

print join(args)

Exemple drsquoappel de la fonction

foobar(A B C D)

Je suis dans la fonction decorate et je deacutecore foobar

Exeacutecution de la fonction foobar

A B C D

Il est posible drsquoattribuer plusieurs deacutecorateurs agrave une seule fonction

decorateur1

decorateur2

def ma_fonction()

instructions

Base de repreacutesentation des donneacutees

43

Manipulation des listes a = [6625 333 333 1 12345]

print(acount(333) acount(6625) acount(x))

2 1 0

ainsert(2 -1)

aappend(333)

a

[6625 333 -1 333 1 12345 333]

aindex(333)

1

aremove(333)

a

[6625 -1 333 1 12345 333]

areverse()

a

[333 12345 1 333 -1 6625]

asort()

a

[-1 1 6625 333 333 12345]

apop()

12345

a

[-1 1 6625 333 333]

Base de repreacutesentation des donneacutees

44

Puissance du langage Python Lrsquoensemble des lignes suiantes peut ecirctre compacteacute par ce qui suit

combs = []

for x in [123]

for y in [314]

if x = y

combsappend((x y))

Combs

Ou bien

[(x y) for x in [123] for y in [314] if x = y]

Donne le mecircme reacutesultat

[(1 3) (1 4) (2 3) (2 1) (2 4) (3 1) (3 4)]

Calcul de la valeur de PI arrondie

from math import pi

[str(round(pi i)) for i in range(1 6)]

[31 314 3142 31416 314159]

Geacuteneacuterateur avec utilisation de YIELD

def generateur()

yield a

yield b

yield cldquo

i=generateur()

for v in i

print v

a

b

c

Base de repreacutesentation des donneacutees

45

Les expressions reacuteguliegraveres en python Les expressions reacuteguliegravere sont utiliseacutees pour veacuterifier la conformiteacute des expressions de

chaines de caractegraveres par rapport agrave un motif Les symboles suivants sont utiliseacutes

^ $ + [ ] | ( )

Le point correspond agrave nimporte quel caractegravere

^ Indique un commencement de segment mais signifie aussi contraire de

$ Fin de segment

[xy] Une liste de segment possible Exemple [abc] eacutequivaut agrave a b ou c

(x|y) Indique un choix multiple type (ps|ump) eacutequivaut agrave ps OU UMP

d le segment est composeacute uniquement de chiffre ce qui eacutequivaut agrave [0-9]

D le segment nest pas composeacute de chiffre ce qui eacutequivaut agrave [^0-9]

s Un espace ce qui eacutequivaut agrave [ tnrfv]

S Pas despace ce qui eacutequivaut agrave [^ tnrfv]

w Preacutesence alphanumeacuterique ce qui eacutequivaut agrave [a-zA-Z0-9_]

W Pas de preacutesence alphanumeacuterique [^a-zA-Z0-9_]

Est un caractegravere deacutechappement T2 Le T soit reacutepeacuteteacute 2 fois

TA19 La seacutequence TA doit ecirctre preacutesente de 1 agrave 9 fois

TAM10 La seacutequence TAM nrsquoexiste pas ou reacutepeacuteteacutee 10 fois

LI1 La seacutequence LI doit ecirctre reacutepeacuteteacutee au moins une fois

Base de repreacutesentation des donneacutees

46

Les expressions reacuteguliegraveres en python Utilisation des expressions reacuteguliegravere

import re

print rematch(rGR()S GRIS)

lt_sreSRE_Match object at 0x02019DE0gt

Une utilisation freacutequente consiste en la validation des valeurs des emails saisis

Utilisation des expressions reacuteguliegravere

import re

mails = [lsquomtamaligmailcomrsquorsquoutmbuniv-bechardzrsquo lsquo8freefrrsquo lsquouniv-bechardzrsquo lsquotamalicdtarsquo]

regex = recompile(rrsquo^[a-z0-9_-]+[a-z0-9_-]+[(com|fr|dz)]+rsquo

for mail in mails

if regexmatch(mail) is not None

print Ce mail s est valide mail

else

print Erreur ce mail s est non valide mail

Ce mail mtamaligmailcom est valide

Ce mail utmbuniv-bechardz est valide

Ce mail 8freefr est valide

Erreur ce mail univ-bechardz est non valide

Erreur ce mail tamalicdta est non valide

Base de repreacutesentation des donneacutees

47

Les fichiers Creacuteer lire et eacutecrire dans un fichier en python Utilisation des expressions reacuteguliegravere

fichier = open(donneestxt r)

print fichier

ltopen file lsquodonneestxt mode r at 0x7ff6cf3fe4b0gt

Le descripteur permet de renseigner la machine sur la maniegravere avec laquelle le fichier est utiliseacute

r pour ouverture en mode READ

w pour ouverture en mode WRITE chaque fois le contenu du fichier est eacutecraseacute sinon python le creacutee

a pour ajout lsquoAPPENDrsquo Si le fichier nexiste pas python le creacutee

b Ouverture en mode Binaire

t Ouverture en mode Texte

x creacutee un nouveau fichier et louvrir pour eacutecriture

proceacutedure geacuteneacuterale pour lrsquoutilisation drsquoun fichier

fichier = open(lsquodonneestxtrsquo r)

print fichierread()

fichierclose()

Lrsquoinstruction WITH peut ecirctre utiliseacutee sans besoin de la fonction CLOSE

with open(datatxt r) as fichier

print fichierread()

Base de repreacutesentation des donneacutees

48

49

Le langage Python est un langage script interpreacuteteacute Le programme portant lrsquoune des extension py pyw ou pwc est

structureacute selon le canevas suivant

Les codifications

usrbinpython27

--codingencodage -

Les imports des librairies

Les instructions

Le langage Python passe pour ecirctre exeacutecuteacute sur deux eacutetapes la premiegravere UNE PRECOMPILATION geacuteneacuteration du code

machine et finalement un eacutecriture en code machine exeacutecutable (selon la machine)

Lrsquoenvironnement drsquoexeacutecution des scripts eacutecrits en Python regroupe les avantages des TRADUCTEURS (travaille en ligne par

ligne) et les COMPILATEURS (puissance de la structure algorithmique)

La bibliothegraveque cx_Freeze sert agrave transformer les fichiers scripts Pyhon py en exeacutecutable exe

Structures algorithmique du python

50

51

Matrices amp Systegravemes lineacuteaires

52

53

54

55

56

57

Le calcul scientifique

Reacutefeacuterences L-V Bertallanfy lsquoGeneral System Theoryrsquo Edition MASSON 1972

58

Page 41: Chap XIII : calcul scientifique avec python

Deacutefinition de fonction (proceacutedure avec retour) def fib(n) Ecrire la suite de Fibonacci jusqursquoagrave n

a b = 0 1

while a lt n

print(a end= )

a b = b a+b

print()

fib(2000)

0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597

f = fib deacutesignation par reacutefeacuterence f agrave la fonction fib

f(100)

0 1 1 2 3 5 8 13 21 34 55 89

autre type de deacutefinition de fonction

def ask_ok(prompt retries=4 complaint=Oui or Non srsquoil vou plait )

while True

ok = input(prompt)

if ok in (lsquoo lsquooui lsquoOui)

return True

if ok in (lsquon no non lsquoNon)

return False

retries = retries - 1

if retries lt 0

raise OSError(lsquoUtilisateur non coopeacuteratif)

print(complaint)

Base de repreacutesentation des donneacutees

41

Lrsquoinstruction lambda def make_incrementeur(n)

return lambda x x + n

f = make_incrementeur(42)

f(0)

42

f(1)

43

un autre cas drsquoutilisation

pairs = [(1 one) (2 two) (3 three) (4 four)]

pairssort(key=lambda pair pair[1])

pairs

[(4 four) (1 one) (3 three) (2 two)]

Les annotations dans une fonction Les annotations deacutefinissent des messages de preacutesentation

def f(chiken str eggs str = eggs) -gt str remarquer que la fonction est de type STR

print(Annotations f__annotations__)

print(Arguments chiken eggs)

return chiken + and + eggs

f(spam)

Annotations chiken ltclass strgt return ltclass strgt eggs ltclass strgt

Arguments spam eggs

spam and eggslsquo

Base de repreacutesentation des donneacutees

42

Les deacutecorateurs python Notre deacutecorateur

def decorate(func)

print uJe suis dans la fonction decorate et je deacutecore s func__name__

print uExeacutecution de la fonction s func__name__

return func

Fonction cible utiliseacutee avec DECORATOR

decorate

def foobar(args)

print join(args)

Exemple drsquoappel de la fonction

foobar(A B C D)

Je suis dans la fonction decorate et je deacutecore foobar

Exeacutecution de la fonction foobar

A B C D

Il est posible drsquoattribuer plusieurs deacutecorateurs agrave une seule fonction

decorateur1

decorateur2

def ma_fonction()

instructions

Base de repreacutesentation des donneacutees

43

Manipulation des listes a = [6625 333 333 1 12345]

print(acount(333) acount(6625) acount(x))

2 1 0

ainsert(2 -1)

aappend(333)

a

[6625 333 -1 333 1 12345 333]

aindex(333)

1

aremove(333)

a

[6625 -1 333 1 12345 333]

areverse()

a

[333 12345 1 333 -1 6625]

asort()

a

[-1 1 6625 333 333 12345]

apop()

12345

a

[-1 1 6625 333 333]

Base de repreacutesentation des donneacutees

44

Puissance du langage Python Lrsquoensemble des lignes suiantes peut ecirctre compacteacute par ce qui suit

combs = []

for x in [123]

for y in [314]

if x = y

combsappend((x y))

Combs

Ou bien

[(x y) for x in [123] for y in [314] if x = y]

Donne le mecircme reacutesultat

[(1 3) (1 4) (2 3) (2 1) (2 4) (3 1) (3 4)]

Calcul de la valeur de PI arrondie

from math import pi

[str(round(pi i)) for i in range(1 6)]

[31 314 3142 31416 314159]

Geacuteneacuterateur avec utilisation de YIELD

def generateur()

yield a

yield b

yield cldquo

i=generateur()

for v in i

print v

a

b

c

Base de repreacutesentation des donneacutees

45

Les expressions reacuteguliegraveres en python Les expressions reacuteguliegravere sont utiliseacutees pour veacuterifier la conformiteacute des expressions de

chaines de caractegraveres par rapport agrave un motif Les symboles suivants sont utiliseacutes

^ $ + [ ] | ( )

Le point correspond agrave nimporte quel caractegravere

^ Indique un commencement de segment mais signifie aussi contraire de

$ Fin de segment

[xy] Une liste de segment possible Exemple [abc] eacutequivaut agrave a b ou c

(x|y) Indique un choix multiple type (ps|ump) eacutequivaut agrave ps OU UMP

d le segment est composeacute uniquement de chiffre ce qui eacutequivaut agrave [0-9]

D le segment nest pas composeacute de chiffre ce qui eacutequivaut agrave [^0-9]

s Un espace ce qui eacutequivaut agrave [ tnrfv]

S Pas despace ce qui eacutequivaut agrave [^ tnrfv]

w Preacutesence alphanumeacuterique ce qui eacutequivaut agrave [a-zA-Z0-9_]

W Pas de preacutesence alphanumeacuterique [^a-zA-Z0-9_]

Est un caractegravere deacutechappement T2 Le T soit reacutepeacuteteacute 2 fois

TA19 La seacutequence TA doit ecirctre preacutesente de 1 agrave 9 fois

TAM10 La seacutequence TAM nrsquoexiste pas ou reacutepeacuteteacutee 10 fois

LI1 La seacutequence LI doit ecirctre reacutepeacuteteacutee au moins une fois

Base de repreacutesentation des donneacutees

46

Les expressions reacuteguliegraveres en python Utilisation des expressions reacuteguliegravere

import re

print rematch(rGR()S GRIS)

lt_sreSRE_Match object at 0x02019DE0gt

Une utilisation freacutequente consiste en la validation des valeurs des emails saisis

Utilisation des expressions reacuteguliegravere

import re

mails = [lsquomtamaligmailcomrsquorsquoutmbuniv-bechardzrsquo lsquo8freefrrsquo lsquouniv-bechardzrsquo lsquotamalicdtarsquo]

regex = recompile(rrsquo^[a-z0-9_-]+[a-z0-9_-]+[(com|fr|dz)]+rsquo

for mail in mails

if regexmatch(mail) is not None

print Ce mail s est valide mail

else

print Erreur ce mail s est non valide mail

Ce mail mtamaligmailcom est valide

Ce mail utmbuniv-bechardz est valide

Ce mail 8freefr est valide

Erreur ce mail univ-bechardz est non valide

Erreur ce mail tamalicdta est non valide

Base de repreacutesentation des donneacutees

47

Les fichiers Creacuteer lire et eacutecrire dans un fichier en python Utilisation des expressions reacuteguliegravere

fichier = open(donneestxt r)

print fichier

ltopen file lsquodonneestxt mode r at 0x7ff6cf3fe4b0gt

Le descripteur permet de renseigner la machine sur la maniegravere avec laquelle le fichier est utiliseacute

r pour ouverture en mode READ

w pour ouverture en mode WRITE chaque fois le contenu du fichier est eacutecraseacute sinon python le creacutee

a pour ajout lsquoAPPENDrsquo Si le fichier nexiste pas python le creacutee

b Ouverture en mode Binaire

t Ouverture en mode Texte

x creacutee un nouveau fichier et louvrir pour eacutecriture

proceacutedure geacuteneacuterale pour lrsquoutilisation drsquoun fichier

fichier = open(lsquodonneestxtrsquo r)

print fichierread()

fichierclose()

Lrsquoinstruction WITH peut ecirctre utiliseacutee sans besoin de la fonction CLOSE

with open(datatxt r) as fichier

print fichierread()

Base de repreacutesentation des donneacutees

48

49

Le langage Python est un langage script interpreacuteteacute Le programme portant lrsquoune des extension py pyw ou pwc est

structureacute selon le canevas suivant

Les codifications

usrbinpython27

--codingencodage -

Les imports des librairies

Les instructions

Le langage Python passe pour ecirctre exeacutecuteacute sur deux eacutetapes la premiegravere UNE PRECOMPILATION geacuteneacuteration du code

machine et finalement un eacutecriture en code machine exeacutecutable (selon la machine)

Lrsquoenvironnement drsquoexeacutecution des scripts eacutecrits en Python regroupe les avantages des TRADUCTEURS (travaille en ligne par

ligne) et les COMPILATEURS (puissance de la structure algorithmique)

La bibliothegraveque cx_Freeze sert agrave transformer les fichiers scripts Pyhon py en exeacutecutable exe

Structures algorithmique du python

50

51

Matrices amp Systegravemes lineacuteaires

52

53

54

55

56

57

Le calcul scientifique

Reacutefeacuterences L-V Bertallanfy lsquoGeneral System Theoryrsquo Edition MASSON 1972

58

Page 42: Chap XIII : calcul scientifique avec python

Lrsquoinstruction lambda def make_incrementeur(n)

return lambda x x + n

f = make_incrementeur(42)

f(0)

42

f(1)

43

un autre cas drsquoutilisation

pairs = [(1 one) (2 two) (3 three) (4 four)]

pairssort(key=lambda pair pair[1])

pairs

[(4 four) (1 one) (3 three) (2 two)]

Les annotations dans une fonction Les annotations deacutefinissent des messages de preacutesentation

def f(chiken str eggs str = eggs) -gt str remarquer que la fonction est de type STR

print(Annotations f__annotations__)

print(Arguments chiken eggs)

return chiken + and + eggs

f(spam)

Annotations chiken ltclass strgt return ltclass strgt eggs ltclass strgt

Arguments spam eggs

spam and eggslsquo

Base de repreacutesentation des donneacutees

42

Les deacutecorateurs python Notre deacutecorateur

def decorate(func)

print uJe suis dans la fonction decorate et je deacutecore s func__name__

print uExeacutecution de la fonction s func__name__

return func

Fonction cible utiliseacutee avec DECORATOR

decorate

def foobar(args)

print join(args)

Exemple drsquoappel de la fonction

foobar(A B C D)

Je suis dans la fonction decorate et je deacutecore foobar

Exeacutecution de la fonction foobar

A B C D

Il est posible drsquoattribuer plusieurs deacutecorateurs agrave une seule fonction

decorateur1

decorateur2

def ma_fonction()

instructions

Base de repreacutesentation des donneacutees

43

Manipulation des listes a = [6625 333 333 1 12345]

print(acount(333) acount(6625) acount(x))

2 1 0

ainsert(2 -1)

aappend(333)

a

[6625 333 -1 333 1 12345 333]

aindex(333)

1

aremove(333)

a

[6625 -1 333 1 12345 333]

areverse()

a

[333 12345 1 333 -1 6625]

asort()

a

[-1 1 6625 333 333 12345]

apop()

12345

a

[-1 1 6625 333 333]

Base de repreacutesentation des donneacutees

44

Puissance du langage Python Lrsquoensemble des lignes suiantes peut ecirctre compacteacute par ce qui suit

combs = []

for x in [123]

for y in [314]

if x = y

combsappend((x y))

Combs

Ou bien

[(x y) for x in [123] for y in [314] if x = y]

Donne le mecircme reacutesultat

[(1 3) (1 4) (2 3) (2 1) (2 4) (3 1) (3 4)]

Calcul de la valeur de PI arrondie

from math import pi

[str(round(pi i)) for i in range(1 6)]

[31 314 3142 31416 314159]

Geacuteneacuterateur avec utilisation de YIELD

def generateur()

yield a

yield b

yield cldquo

i=generateur()

for v in i

print v

a

b

c

Base de repreacutesentation des donneacutees

45

Les expressions reacuteguliegraveres en python Les expressions reacuteguliegravere sont utiliseacutees pour veacuterifier la conformiteacute des expressions de

chaines de caractegraveres par rapport agrave un motif Les symboles suivants sont utiliseacutes

^ $ + [ ] | ( )

Le point correspond agrave nimporte quel caractegravere

^ Indique un commencement de segment mais signifie aussi contraire de

$ Fin de segment

[xy] Une liste de segment possible Exemple [abc] eacutequivaut agrave a b ou c

(x|y) Indique un choix multiple type (ps|ump) eacutequivaut agrave ps OU UMP

d le segment est composeacute uniquement de chiffre ce qui eacutequivaut agrave [0-9]

D le segment nest pas composeacute de chiffre ce qui eacutequivaut agrave [^0-9]

s Un espace ce qui eacutequivaut agrave [ tnrfv]

S Pas despace ce qui eacutequivaut agrave [^ tnrfv]

w Preacutesence alphanumeacuterique ce qui eacutequivaut agrave [a-zA-Z0-9_]

W Pas de preacutesence alphanumeacuterique [^a-zA-Z0-9_]

Est un caractegravere deacutechappement T2 Le T soit reacutepeacuteteacute 2 fois

TA19 La seacutequence TA doit ecirctre preacutesente de 1 agrave 9 fois

TAM10 La seacutequence TAM nrsquoexiste pas ou reacutepeacuteteacutee 10 fois

LI1 La seacutequence LI doit ecirctre reacutepeacuteteacutee au moins une fois

Base de repreacutesentation des donneacutees

46

Les expressions reacuteguliegraveres en python Utilisation des expressions reacuteguliegravere

import re

print rematch(rGR()S GRIS)

lt_sreSRE_Match object at 0x02019DE0gt

Une utilisation freacutequente consiste en la validation des valeurs des emails saisis

Utilisation des expressions reacuteguliegravere

import re

mails = [lsquomtamaligmailcomrsquorsquoutmbuniv-bechardzrsquo lsquo8freefrrsquo lsquouniv-bechardzrsquo lsquotamalicdtarsquo]

regex = recompile(rrsquo^[a-z0-9_-]+[a-z0-9_-]+[(com|fr|dz)]+rsquo

for mail in mails

if regexmatch(mail) is not None

print Ce mail s est valide mail

else

print Erreur ce mail s est non valide mail

Ce mail mtamaligmailcom est valide

Ce mail utmbuniv-bechardz est valide

Ce mail 8freefr est valide

Erreur ce mail univ-bechardz est non valide

Erreur ce mail tamalicdta est non valide

Base de repreacutesentation des donneacutees

47

Les fichiers Creacuteer lire et eacutecrire dans un fichier en python Utilisation des expressions reacuteguliegravere

fichier = open(donneestxt r)

print fichier

ltopen file lsquodonneestxt mode r at 0x7ff6cf3fe4b0gt

Le descripteur permet de renseigner la machine sur la maniegravere avec laquelle le fichier est utiliseacute

r pour ouverture en mode READ

w pour ouverture en mode WRITE chaque fois le contenu du fichier est eacutecraseacute sinon python le creacutee

a pour ajout lsquoAPPENDrsquo Si le fichier nexiste pas python le creacutee

b Ouverture en mode Binaire

t Ouverture en mode Texte

x creacutee un nouveau fichier et louvrir pour eacutecriture

proceacutedure geacuteneacuterale pour lrsquoutilisation drsquoun fichier

fichier = open(lsquodonneestxtrsquo r)

print fichierread()

fichierclose()

Lrsquoinstruction WITH peut ecirctre utiliseacutee sans besoin de la fonction CLOSE

with open(datatxt r) as fichier

print fichierread()

Base de repreacutesentation des donneacutees

48

49

Le langage Python est un langage script interpreacuteteacute Le programme portant lrsquoune des extension py pyw ou pwc est

structureacute selon le canevas suivant

Les codifications

usrbinpython27

--codingencodage -

Les imports des librairies

Les instructions

Le langage Python passe pour ecirctre exeacutecuteacute sur deux eacutetapes la premiegravere UNE PRECOMPILATION geacuteneacuteration du code

machine et finalement un eacutecriture en code machine exeacutecutable (selon la machine)

Lrsquoenvironnement drsquoexeacutecution des scripts eacutecrits en Python regroupe les avantages des TRADUCTEURS (travaille en ligne par

ligne) et les COMPILATEURS (puissance de la structure algorithmique)

La bibliothegraveque cx_Freeze sert agrave transformer les fichiers scripts Pyhon py en exeacutecutable exe

Structures algorithmique du python

50

51

Matrices amp Systegravemes lineacuteaires

52

53

54

55

56

57

Le calcul scientifique

Reacutefeacuterences L-V Bertallanfy lsquoGeneral System Theoryrsquo Edition MASSON 1972

58

Page 43: Chap XIII : calcul scientifique avec python

Les deacutecorateurs python Notre deacutecorateur

def decorate(func)

print uJe suis dans la fonction decorate et je deacutecore s func__name__

print uExeacutecution de la fonction s func__name__

return func

Fonction cible utiliseacutee avec DECORATOR

decorate

def foobar(args)

print join(args)

Exemple drsquoappel de la fonction

foobar(A B C D)

Je suis dans la fonction decorate et je deacutecore foobar

Exeacutecution de la fonction foobar

A B C D

Il est posible drsquoattribuer plusieurs deacutecorateurs agrave une seule fonction

decorateur1

decorateur2

def ma_fonction()

instructions

Base de repreacutesentation des donneacutees

43

Manipulation des listes a = [6625 333 333 1 12345]

print(acount(333) acount(6625) acount(x))

2 1 0

ainsert(2 -1)

aappend(333)

a

[6625 333 -1 333 1 12345 333]

aindex(333)

1

aremove(333)

a

[6625 -1 333 1 12345 333]

areverse()

a

[333 12345 1 333 -1 6625]

asort()

a

[-1 1 6625 333 333 12345]

apop()

12345

a

[-1 1 6625 333 333]

Base de repreacutesentation des donneacutees

44

Puissance du langage Python Lrsquoensemble des lignes suiantes peut ecirctre compacteacute par ce qui suit

combs = []

for x in [123]

for y in [314]

if x = y

combsappend((x y))

Combs

Ou bien

[(x y) for x in [123] for y in [314] if x = y]

Donne le mecircme reacutesultat

[(1 3) (1 4) (2 3) (2 1) (2 4) (3 1) (3 4)]

Calcul de la valeur de PI arrondie

from math import pi

[str(round(pi i)) for i in range(1 6)]

[31 314 3142 31416 314159]

Geacuteneacuterateur avec utilisation de YIELD

def generateur()

yield a

yield b

yield cldquo

i=generateur()

for v in i

print v

a

b

c

Base de repreacutesentation des donneacutees

45

Les expressions reacuteguliegraveres en python Les expressions reacuteguliegravere sont utiliseacutees pour veacuterifier la conformiteacute des expressions de

chaines de caractegraveres par rapport agrave un motif Les symboles suivants sont utiliseacutes

^ $ + [ ] | ( )

Le point correspond agrave nimporte quel caractegravere

^ Indique un commencement de segment mais signifie aussi contraire de

$ Fin de segment

[xy] Une liste de segment possible Exemple [abc] eacutequivaut agrave a b ou c

(x|y) Indique un choix multiple type (ps|ump) eacutequivaut agrave ps OU UMP

d le segment est composeacute uniquement de chiffre ce qui eacutequivaut agrave [0-9]

D le segment nest pas composeacute de chiffre ce qui eacutequivaut agrave [^0-9]

s Un espace ce qui eacutequivaut agrave [ tnrfv]

S Pas despace ce qui eacutequivaut agrave [^ tnrfv]

w Preacutesence alphanumeacuterique ce qui eacutequivaut agrave [a-zA-Z0-9_]

W Pas de preacutesence alphanumeacuterique [^a-zA-Z0-9_]

Est un caractegravere deacutechappement T2 Le T soit reacutepeacuteteacute 2 fois

TA19 La seacutequence TA doit ecirctre preacutesente de 1 agrave 9 fois

TAM10 La seacutequence TAM nrsquoexiste pas ou reacutepeacuteteacutee 10 fois

LI1 La seacutequence LI doit ecirctre reacutepeacuteteacutee au moins une fois

Base de repreacutesentation des donneacutees

46

Les expressions reacuteguliegraveres en python Utilisation des expressions reacuteguliegravere

import re

print rematch(rGR()S GRIS)

lt_sreSRE_Match object at 0x02019DE0gt

Une utilisation freacutequente consiste en la validation des valeurs des emails saisis

Utilisation des expressions reacuteguliegravere

import re

mails = [lsquomtamaligmailcomrsquorsquoutmbuniv-bechardzrsquo lsquo8freefrrsquo lsquouniv-bechardzrsquo lsquotamalicdtarsquo]

regex = recompile(rrsquo^[a-z0-9_-]+[a-z0-9_-]+[(com|fr|dz)]+rsquo

for mail in mails

if regexmatch(mail) is not None

print Ce mail s est valide mail

else

print Erreur ce mail s est non valide mail

Ce mail mtamaligmailcom est valide

Ce mail utmbuniv-bechardz est valide

Ce mail 8freefr est valide

Erreur ce mail univ-bechardz est non valide

Erreur ce mail tamalicdta est non valide

Base de repreacutesentation des donneacutees

47

Les fichiers Creacuteer lire et eacutecrire dans un fichier en python Utilisation des expressions reacuteguliegravere

fichier = open(donneestxt r)

print fichier

ltopen file lsquodonneestxt mode r at 0x7ff6cf3fe4b0gt

Le descripteur permet de renseigner la machine sur la maniegravere avec laquelle le fichier est utiliseacute

r pour ouverture en mode READ

w pour ouverture en mode WRITE chaque fois le contenu du fichier est eacutecraseacute sinon python le creacutee

a pour ajout lsquoAPPENDrsquo Si le fichier nexiste pas python le creacutee

b Ouverture en mode Binaire

t Ouverture en mode Texte

x creacutee un nouveau fichier et louvrir pour eacutecriture

proceacutedure geacuteneacuterale pour lrsquoutilisation drsquoun fichier

fichier = open(lsquodonneestxtrsquo r)

print fichierread()

fichierclose()

Lrsquoinstruction WITH peut ecirctre utiliseacutee sans besoin de la fonction CLOSE

with open(datatxt r) as fichier

print fichierread()

Base de repreacutesentation des donneacutees

48

49

Le langage Python est un langage script interpreacuteteacute Le programme portant lrsquoune des extension py pyw ou pwc est

structureacute selon le canevas suivant

Les codifications

usrbinpython27

--codingencodage -

Les imports des librairies

Les instructions

Le langage Python passe pour ecirctre exeacutecuteacute sur deux eacutetapes la premiegravere UNE PRECOMPILATION geacuteneacuteration du code

machine et finalement un eacutecriture en code machine exeacutecutable (selon la machine)

Lrsquoenvironnement drsquoexeacutecution des scripts eacutecrits en Python regroupe les avantages des TRADUCTEURS (travaille en ligne par

ligne) et les COMPILATEURS (puissance de la structure algorithmique)

La bibliothegraveque cx_Freeze sert agrave transformer les fichiers scripts Pyhon py en exeacutecutable exe

Structures algorithmique du python

50

51

Matrices amp Systegravemes lineacuteaires

52

53

54

55

56

57

Le calcul scientifique

Reacutefeacuterences L-V Bertallanfy lsquoGeneral System Theoryrsquo Edition MASSON 1972

58

Page 44: Chap XIII : calcul scientifique avec python

Manipulation des listes a = [6625 333 333 1 12345]

print(acount(333) acount(6625) acount(x))

2 1 0

ainsert(2 -1)

aappend(333)

a

[6625 333 -1 333 1 12345 333]

aindex(333)

1

aremove(333)

a

[6625 -1 333 1 12345 333]

areverse()

a

[333 12345 1 333 -1 6625]

asort()

a

[-1 1 6625 333 333 12345]

apop()

12345

a

[-1 1 6625 333 333]

Base de repreacutesentation des donneacutees

44

Puissance du langage Python Lrsquoensemble des lignes suiantes peut ecirctre compacteacute par ce qui suit

combs = []

for x in [123]

for y in [314]

if x = y

combsappend((x y))

Combs

Ou bien

[(x y) for x in [123] for y in [314] if x = y]

Donne le mecircme reacutesultat

[(1 3) (1 4) (2 3) (2 1) (2 4) (3 1) (3 4)]

Calcul de la valeur de PI arrondie

from math import pi

[str(round(pi i)) for i in range(1 6)]

[31 314 3142 31416 314159]

Geacuteneacuterateur avec utilisation de YIELD

def generateur()

yield a

yield b

yield cldquo

i=generateur()

for v in i

print v

a

b

c

Base de repreacutesentation des donneacutees

45

Les expressions reacuteguliegraveres en python Les expressions reacuteguliegravere sont utiliseacutees pour veacuterifier la conformiteacute des expressions de

chaines de caractegraveres par rapport agrave un motif Les symboles suivants sont utiliseacutes

^ $ + [ ] | ( )

Le point correspond agrave nimporte quel caractegravere

^ Indique un commencement de segment mais signifie aussi contraire de

$ Fin de segment

[xy] Une liste de segment possible Exemple [abc] eacutequivaut agrave a b ou c

(x|y) Indique un choix multiple type (ps|ump) eacutequivaut agrave ps OU UMP

d le segment est composeacute uniquement de chiffre ce qui eacutequivaut agrave [0-9]

D le segment nest pas composeacute de chiffre ce qui eacutequivaut agrave [^0-9]

s Un espace ce qui eacutequivaut agrave [ tnrfv]

S Pas despace ce qui eacutequivaut agrave [^ tnrfv]

w Preacutesence alphanumeacuterique ce qui eacutequivaut agrave [a-zA-Z0-9_]

W Pas de preacutesence alphanumeacuterique [^a-zA-Z0-9_]

Est un caractegravere deacutechappement T2 Le T soit reacutepeacuteteacute 2 fois

TA19 La seacutequence TA doit ecirctre preacutesente de 1 agrave 9 fois

TAM10 La seacutequence TAM nrsquoexiste pas ou reacutepeacuteteacutee 10 fois

LI1 La seacutequence LI doit ecirctre reacutepeacuteteacutee au moins une fois

Base de repreacutesentation des donneacutees

46

Les expressions reacuteguliegraveres en python Utilisation des expressions reacuteguliegravere

import re

print rematch(rGR()S GRIS)

lt_sreSRE_Match object at 0x02019DE0gt

Une utilisation freacutequente consiste en la validation des valeurs des emails saisis

Utilisation des expressions reacuteguliegravere

import re

mails = [lsquomtamaligmailcomrsquorsquoutmbuniv-bechardzrsquo lsquo8freefrrsquo lsquouniv-bechardzrsquo lsquotamalicdtarsquo]

regex = recompile(rrsquo^[a-z0-9_-]+[a-z0-9_-]+[(com|fr|dz)]+rsquo

for mail in mails

if regexmatch(mail) is not None

print Ce mail s est valide mail

else

print Erreur ce mail s est non valide mail

Ce mail mtamaligmailcom est valide

Ce mail utmbuniv-bechardz est valide

Ce mail 8freefr est valide

Erreur ce mail univ-bechardz est non valide

Erreur ce mail tamalicdta est non valide

Base de repreacutesentation des donneacutees

47

Les fichiers Creacuteer lire et eacutecrire dans un fichier en python Utilisation des expressions reacuteguliegravere

fichier = open(donneestxt r)

print fichier

ltopen file lsquodonneestxt mode r at 0x7ff6cf3fe4b0gt

Le descripteur permet de renseigner la machine sur la maniegravere avec laquelle le fichier est utiliseacute

r pour ouverture en mode READ

w pour ouverture en mode WRITE chaque fois le contenu du fichier est eacutecraseacute sinon python le creacutee

a pour ajout lsquoAPPENDrsquo Si le fichier nexiste pas python le creacutee

b Ouverture en mode Binaire

t Ouverture en mode Texte

x creacutee un nouveau fichier et louvrir pour eacutecriture

proceacutedure geacuteneacuterale pour lrsquoutilisation drsquoun fichier

fichier = open(lsquodonneestxtrsquo r)

print fichierread()

fichierclose()

Lrsquoinstruction WITH peut ecirctre utiliseacutee sans besoin de la fonction CLOSE

with open(datatxt r) as fichier

print fichierread()

Base de repreacutesentation des donneacutees

48

49

Le langage Python est un langage script interpreacuteteacute Le programme portant lrsquoune des extension py pyw ou pwc est

structureacute selon le canevas suivant

Les codifications

usrbinpython27

--codingencodage -

Les imports des librairies

Les instructions

Le langage Python passe pour ecirctre exeacutecuteacute sur deux eacutetapes la premiegravere UNE PRECOMPILATION geacuteneacuteration du code

machine et finalement un eacutecriture en code machine exeacutecutable (selon la machine)

Lrsquoenvironnement drsquoexeacutecution des scripts eacutecrits en Python regroupe les avantages des TRADUCTEURS (travaille en ligne par

ligne) et les COMPILATEURS (puissance de la structure algorithmique)

La bibliothegraveque cx_Freeze sert agrave transformer les fichiers scripts Pyhon py en exeacutecutable exe

Structures algorithmique du python

50

51

Matrices amp Systegravemes lineacuteaires

52

53

54

55

56

57

Le calcul scientifique

Reacutefeacuterences L-V Bertallanfy lsquoGeneral System Theoryrsquo Edition MASSON 1972

58

Page 45: Chap XIII : calcul scientifique avec python

Puissance du langage Python Lrsquoensemble des lignes suiantes peut ecirctre compacteacute par ce qui suit

combs = []

for x in [123]

for y in [314]

if x = y

combsappend((x y))

Combs

Ou bien

[(x y) for x in [123] for y in [314] if x = y]

Donne le mecircme reacutesultat

[(1 3) (1 4) (2 3) (2 1) (2 4) (3 1) (3 4)]

Calcul de la valeur de PI arrondie

from math import pi

[str(round(pi i)) for i in range(1 6)]

[31 314 3142 31416 314159]

Geacuteneacuterateur avec utilisation de YIELD

def generateur()

yield a

yield b

yield cldquo

i=generateur()

for v in i

print v

a

b

c

Base de repreacutesentation des donneacutees

45

Les expressions reacuteguliegraveres en python Les expressions reacuteguliegravere sont utiliseacutees pour veacuterifier la conformiteacute des expressions de

chaines de caractegraveres par rapport agrave un motif Les symboles suivants sont utiliseacutes

^ $ + [ ] | ( )

Le point correspond agrave nimporte quel caractegravere

^ Indique un commencement de segment mais signifie aussi contraire de

$ Fin de segment

[xy] Une liste de segment possible Exemple [abc] eacutequivaut agrave a b ou c

(x|y) Indique un choix multiple type (ps|ump) eacutequivaut agrave ps OU UMP

d le segment est composeacute uniquement de chiffre ce qui eacutequivaut agrave [0-9]

D le segment nest pas composeacute de chiffre ce qui eacutequivaut agrave [^0-9]

s Un espace ce qui eacutequivaut agrave [ tnrfv]

S Pas despace ce qui eacutequivaut agrave [^ tnrfv]

w Preacutesence alphanumeacuterique ce qui eacutequivaut agrave [a-zA-Z0-9_]

W Pas de preacutesence alphanumeacuterique [^a-zA-Z0-9_]

Est un caractegravere deacutechappement T2 Le T soit reacutepeacuteteacute 2 fois

TA19 La seacutequence TA doit ecirctre preacutesente de 1 agrave 9 fois

TAM10 La seacutequence TAM nrsquoexiste pas ou reacutepeacuteteacutee 10 fois

LI1 La seacutequence LI doit ecirctre reacutepeacuteteacutee au moins une fois

Base de repreacutesentation des donneacutees

46

Les expressions reacuteguliegraveres en python Utilisation des expressions reacuteguliegravere

import re

print rematch(rGR()S GRIS)

lt_sreSRE_Match object at 0x02019DE0gt

Une utilisation freacutequente consiste en la validation des valeurs des emails saisis

Utilisation des expressions reacuteguliegravere

import re

mails = [lsquomtamaligmailcomrsquorsquoutmbuniv-bechardzrsquo lsquo8freefrrsquo lsquouniv-bechardzrsquo lsquotamalicdtarsquo]

regex = recompile(rrsquo^[a-z0-9_-]+[a-z0-9_-]+[(com|fr|dz)]+rsquo

for mail in mails

if regexmatch(mail) is not None

print Ce mail s est valide mail

else

print Erreur ce mail s est non valide mail

Ce mail mtamaligmailcom est valide

Ce mail utmbuniv-bechardz est valide

Ce mail 8freefr est valide

Erreur ce mail univ-bechardz est non valide

Erreur ce mail tamalicdta est non valide

Base de repreacutesentation des donneacutees

47

Les fichiers Creacuteer lire et eacutecrire dans un fichier en python Utilisation des expressions reacuteguliegravere

fichier = open(donneestxt r)

print fichier

ltopen file lsquodonneestxt mode r at 0x7ff6cf3fe4b0gt

Le descripteur permet de renseigner la machine sur la maniegravere avec laquelle le fichier est utiliseacute

r pour ouverture en mode READ

w pour ouverture en mode WRITE chaque fois le contenu du fichier est eacutecraseacute sinon python le creacutee

a pour ajout lsquoAPPENDrsquo Si le fichier nexiste pas python le creacutee

b Ouverture en mode Binaire

t Ouverture en mode Texte

x creacutee un nouveau fichier et louvrir pour eacutecriture

proceacutedure geacuteneacuterale pour lrsquoutilisation drsquoun fichier

fichier = open(lsquodonneestxtrsquo r)

print fichierread()

fichierclose()

Lrsquoinstruction WITH peut ecirctre utiliseacutee sans besoin de la fonction CLOSE

with open(datatxt r) as fichier

print fichierread()

Base de repreacutesentation des donneacutees

48

49

Le langage Python est un langage script interpreacuteteacute Le programme portant lrsquoune des extension py pyw ou pwc est

structureacute selon le canevas suivant

Les codifications

usrbinpython27

--codingencodage -

Les imports des librairies

Les instructions

Le langage Python passe pour ecirctre exeacutecuteacute sur deux eacutetapes la premiegravere UNE PRECOMPILATION geacuteneacuteration du code

machine et finalement un eacutecriture en code machine exeacutecutable (selon la machine)

Lrsquoenvironnement drsquoexeacutecution des scripts eacutecrits en Python regroupe les avantages des TRADUCTEURS (travaille en ligne par

ligne) et les COMPILATEURS (puissance de la structure algorithmique)

La bibliothegraveque cx_Freeze sert agrave transformer les fichiers scripts Pyhon py en exeacutecutable exe

Structures algorithmique du python

50

51

Matrices amp Systegravemes lineacuteaires

52

53

54

55

56

57

Le calcul scientifique

Reacutefeacuterences L-V Bertallanfy lsquoGeneral System Theoryrsquo Edition MASSON 1972

58

Page 46: Chap XIII : calcul scientifique avec python

Les expressions reacuteguliegraveres en python Les expressions reacuteguliegravere sont utiliseacutees pour veacuterifier la conformiteacute des expressions de

chaines de caractegraveres par rapport agrave un motif Les symboles suivants sont utiliseacutes

^ $ + [ ] | ( )

Le point correspond agrave nimporte quel caractegravere

^ Indique un commencement de segment mais signifie aussi contraire de

$ Fin de segment

[xy] Une liste de segment possible Exemple [abc] eacutequivaut agrave a b ou c

(x|y) Indique un choix multiple type (ps|ump) eacutequivaut agrave ps OU UMP

d le segment est composeacute uniquement de chiffre ce qui eacutequivaut agrave [0-9]

D le segment nest pas composeacute de chiffre ce qui eacutequivaut agrave [^0-9]

s Un espace ce qui eacutequivaut agrave [ tnrfv]

S Pas despace ce qui eacutequivaut agrave [^ tnrfv]

w Preacutesence alphanumeacuterique ce qui eacutequivaut agrave [a-zA-Z0-9_]

W Pas de preacutesence alphanumeacuterique [^a-zA-Z0-9_]

Est un caractegravere deacutechappement T2 Le T soit reacutepeacuteteacute 2 fois

TA19 La seacutequence TA doit ecirctre preacutesente de 1 agrave 9 fois

TAM10 La seacutequence TAM nrsquoexiste pas ou reacutepeacuteteacutee 10 fois

LI1 La seacutequence LI doit ecirctre reacutepeacuteteacutee au moins une fois

Base de repreacutesentation des donneacutees

46

Les expressions reacuteguliegraveres en python Utilisation des expressions reacuteguliegravere

import re

print rematch(rGR()S GRIS)

lt_sreSRE_Match object at 0x02019DE0gt

Une utilisation freacutequente consiste en la validation des valeurs des emails saisis

Utilisation des expressions reacuteguliegravere

import re

mails = [lsquomtamaligmailcomrsquorsquoutmbuniv-bechardzrsquo lsquo8freefrrsquo lsquouniv-bechardzrsquo lsquotamalicdtarsquo]

regex = recompile(rrsquo^[a-z0-9_-]+[a-z0-9_-]+[(com|fr|dz)]+rsquo

for mail in mails

if regexmatch(mail) is not None

print Ce mail s est valide mail

else

print Erreur ce mail s est non valide mail

Ce mail mtamaligmailcom est valide

Ce mail utmbuniv-bechardz est valide

Ce mail 8freefr est valide

Erreur ce mail univ-bechardz est non valide

Erreur ce mail tamalicdta est non valide

Base de repreacutesentation des donneacutees

47

Les fichiers Creacuteer lire et eacutecrire dans un fichier en python Utilisation des expressions reacuteguliegravere

fichier = open(donneestxt r)

print fichier

ltopen file lsquodonneestxt mode r at 0x7ff6cf3fe4b0gt

Le descripteur permet de renseigner la machine sur la maniegravere avec laquelle le fichier est utiliseacute

r pour ouverture en mode READ

w pour ouverture en mode WRITE chaque fois le contenu du fichier est eacutecraseacute sinon python le creacutee

a pour ajout lsquoAPPENDrsquo Si le fichier nexiste pas python le creacutee

b Ouverture en mode Binaire

t Ouverture en mode Texte

x creacutee un nouveau fichier et louvrir pour eacutecriture

proceacutedure geacuteneacuterale pour lrsquoutilisation drsquoun fichier

fichier = open(lsquodonneestxtrsquo r)

print fichierread()

fichierclose()

Lrsquoinstruction WITH peut ecirctre utiliseacutee sans besoin de la fonction CLOSE

with open(datatxt r) as fichier

print fichierread()

Base de repreacutesentation des donneacutees

48

49

Le langage Python est un langage script interpreacuteteacute Le programme portant lrsquoune des extension py pyw ou pwc est

structureacute selon le canevas suivant

Les codifications

usrbinpython27

--codingencodage -

Les imports des librairies

Les instructions

Le langage Python passe pour ecirctre exeacutecuteacute sur deux eacutetapes la premiegravere UNE PRECOMPILATION geacuteneacuteration du code

machine et finalement un eacutecriture en code machine exeacutecutable (selon la machine)

Lrsquoenvironnement drsquoexeacutecution des scripts eacutecrits en Python regroupe les avantages des TRADUCTEURS (travaille en ligne par

ligne) et les COMPILATEURS (puissance de la structure algorithmique)

La bibliothegraveque cx_Freeze sert agrave transformer les fichiers scripts Pyhon py en exeacutecutable exe

Structures algorithmique du python

50

51

Matrices amp Systegravemes lineacuteaires

52

53

54

55

56

57

Le calcul scientifique

Reacutefeacuterences L-V Bertallanfy lsquoGeneral System Theoryrsquo Edition MASSON 1972

58

Page 47: Chap XIII : calcul scientifique avec python

Les expressions reacuteguliegraveres en python Utilisation des expressions reacuteguliegravere

import re

print rematch(rGR()S GRIS)

lt_sreSRE_Match object at 0x02019DE0gt

Une utilisation freacutequente consiste en la validation des valeurs des emails saisis

Utilisation des expressions reacuteguliegravere

import re

mails = [lsquomtamaligmailcomrsquorsquoutmbuniv-bechardzrsquo lsquo8freefrrsquo lsquouniv-bechardzrsquo lsquotamalicdtarsquo]

regex = recompile(rrsquo^[a-z0-9_-]+[a-z0-9_-]+[(com|fr|dz)]+rsquo

for mail in mails

if regexmatch(mail) is not None

print Ce mail s est valide mail

else

print Erreur ce mail s est non valide mail

Ce mail mtamaligmailcom est valide

Ce mail utmbuniv-bechardz est valide

Ce mail 8freefr est valide

Erreur ce mail univ-bechardz est non valide

Erreur ce mail tamalicdta est non valide

Base de repreacutesentation des donneacutees

47

Les fichiers Creacuteer lire et eacutecrire dans un fichier en python Utilisation des expressions reacuteguliegravere

fichier = open(donneestxt r)

print fichier

ltopen file lsquodonneestxt mode r at 0x7ff6cf3fe4b0gt

Le descripteur permet de renseigner la machine sur la maniegravere avec laquelle le fichier est utiliseacute

r pour ouverture en mode READ

w pour ouverture en mode WRITE chaque fois le contenu du fichier est eacutecraseacute sinon python le creacutee

a pour ajout lsquoAPPENDrsquo Si le fichier nexiste pas python le creacutee

b Ouverture en mode Binaire

t Ouverture en mode Texte

x creacutee un nouveau fichier et louvrir pour eacutecriture

proceacutedure geacuteneacuterale pour lrsquoutilisation drsquoun fichier

fichier = open(lsquodonneestxtrsquo r)

print fichierread()

fichierclose()

Lrsquoinstruction WITH peut ecirctre utiliseacutee sans besoin de la fonction CLOSE

with open(datatxt r) as fichier

print fichierread()

Base de repreacutesentation des donneacutees

48

49

Le langage Python est un langage script interpreacuteteacute Le programme portant lrsquoune des extension py pyw ou pwc est

structureacute selon le canevas suivant

Les codifications

usrbinpython27

--codingencodage -

Les imports des librairies

Les instructions

Le langage Python passe pour ecirctre exeacutecuteacute sur deux eacutetapes la premiegravere UNE PRECOMPILATION geacuteneacuteration du code

machine et finalement un eacutecriture en code machine exeacutecutable (selon la machine)

Lrsquoenvironnement drsquoexeacutecution des scripts eacutecrits en Python regroupe les avantages des TRADUCTEURS (travaille en ligne par

ligne) et les COMPILATEURS (puissance de la structure algorithmique)

La bibliothegraveque cx_Freeze sert agrave transformer les fichiers scripts Pyhon py en exeacutecutable exe

Structures algorithmique du python

50

51

Matrices amp Systegravemes lineacuteaires

52

53

54

55

56

57

Le calcul scientifique

Reacutefeacuterences L-V Bertallanfy lsquoGeneral System Theoryrsquo Edition MASSON 1972

58

Page 48: Chap XIII : calcul scientifique avec python

Les fichiers Creacuteer lire et eacutecrire dans un fichier en python Utilisation des expressions reacuteguliegravere

fichier = open(donneestxt r)

print fichier

ltopen file lsquodonneestxt mode r at 0x7ff6cf3fe4b0gt

Le descripteur permet de renseigner la machine sur la maniegravere avec laquelle le fichier est utiliseacute

r pour ouverture en mode READ

w pour ouverture en mode WRITE chaque fois le contenu du fichier est eacutecraseacute sinon python le creacutee

a pour ajout lsquoAPPENDrsquo Si le fichier nexiste pas python le creacutee

b Ouverture en mode Binaire

t Ouverture en mode Texte

x creacutee un nouveau fichier et louvrir pour eacutecriture

proceacutedure geacuteneacuterale pour lrsquoutilisation drsquoun fichier

fichier = open(lsquodonneestxtrsquo r)

print fichierread()

fichierclose()

Lrsquoinstruction WITH peut ecirctre utiliseacutee sans besoin de la fonction CLOSE

with open(datatxt r) as fichier

print fichierread()

Base de repreacutesentation des donneacutees

48

49

Le langage Python est un langage script interpreacuteteacute Le programme portant lrsquoune des extension py pyw ou pwc est

structureacute selon le canevas suivant

Les codifications

usrbinpython27

--codingencodage -

Les imports des librairies

Les instructions

Le langage Python passe pour ecirctre exeacutecuteacute sur deux eacutetapes la premiegravere UNE PRECOMPILATION geacuteneacuteration du code

machine et finalement un eacutecriture en code machine exeacutecutable (selon la machine)

Lrsquoenvironnement drsquoexeacutecution des scripts eacutecrits en Python regroupe les avantages des TRADUCTEURS (travaille en ligne par

ligne) et les COMPILATEURS (puissance de la structure algorithmique)

La bibliothegraveque cx_Freeze sert agrave transformer les fichiers scripts Pyhon py en exeacutecutable exe

Structures algorithmique du python

50

51

Matrices amp Systegravemes lineacuteaires

52

53

54

55

56

57

Le calcul scientifique

Reacutefeacuterences L-V Bertallanfy lsquoGeneral System Theoryrsquo Edition MASSON 1972

58

Page 49: Chap XIII : calcul scientifique avec python

49

Le langage Python est un langage script interpreacuteteacute Le programme portant lrsquoune des extension py pyw ou pwc est

structureacute selon le canevas suivant

Les codifications

usrbinpython27

--codingencodage -

Les imports des librairies

Les instructions

Le langage Python passe pour ecirctre exeacutecuteacute sur deux eacutetapes la premiegravere UNE PRECOMPILATION geacuteneacuteration du code

machine et finalement un eacutecriture en code machine exeacutecutable (selon la machine)

Lrsquoenvironnement drsquoexeacutecution des scripts eacutecrits en Python regroupe les avantages des TRADUCTEURS (travaille en ligne par

ligne) et les COMPILATEURS (puissance de la structure algorithmique)

La bibliothegraveque cx_Freeze sert agrave transformer les fichiers scripts Pyhon py en exeacutecutable exe

Structures algorithmique du python

50

51

Matrices amp Systegravemes lineacuteaires

52

53

54

55

56

57

Le calcul scientifique

Reacutefeacuterences L-V Bertallanfy lsquoGeneral System Theoryrsquo Edition MASSON 1972

58

Page 50: Chap XIII : calcul scientifique avec python

Le langage Python est un langage script interpreacuteteacute Le programme portant lrsquoune des extension py pyw ou pwc est

structureacute selon le canevas suivant

Les codifications

usrbinpython27

--codingencodage -

Les imports des librairies

Les instructions

Le langage Python passe pour ecirctre exeacutecuteacute sur deux eacutetapes la premiegravere UNE PRECOMPILATION geacuteneacuteration du code

machine et finalement un eacutecriture en code machine exeacutecutable (selon la machine)

Lrsquoenvironnement drsquoexeacutecution des scripts eacutecrits en Python regroupe les avantages des TRADUCTEURS (travaille en ligne par

ligne) et les COMPILATEURS (puissance de la structure algorithmique)

La bibliothegraveque cx_Freeze sert agrave transformer les fichiers scripts Pyhon py en exeacutecutable exe

Structures algorithmique du python

50

51

Matrices amp Systegravemes lineacuteaires

52

53

54

55

56

57

Le calcul scientifique

Reacutefeacuterences L-V Bertallanfy lsquoGeneral System Theoryrsquo Edition MASSON 1972

58

Page 51: Chap XIII : calcul scientifique avec python

51

Matrices amp Systegravemes lineacuteaires

52

53

54

55

56

57

Le calcul scientifique

Reacutefeacuterences L-V Bertallanfy lsquoGeneral System Theoryrsquo Edition MASSON 1972

58

Page 52: Chap XIII : calcul scientifique avec python

Matrices amp Systegravemes lineacuteaires

52

53

54

55

56

57

Le calcul scientifique

Reacutefeacuterences L-V Bertallanfy lsquoGeneral System Theoryrsquo Edition MASSON 1972

58

Page 53: Chap XIII : calcul scientifique avec python

53

54

55

56

57

Le calcul scientifique

Reacutefeacuterences L-V Bertallanfy lsquoGeneral System Theoryrsquo Edition MASSON 1972

58

Page 54: Chap XIII : calcul scientifique avec python

54

55

56

57

Le calcul scientifique

Reacutefeacuterences L-V Bertallanfy lsquoGeneral System Theoryrsquo Edition MASSON 1972

58

Page 55: Chap XIII : calcul scientifique avec python

55

56

57

Le calcul scientifique

Reacutefeacuterences L-V Bertallanfy lsquoGeneral System Theoryrsquo Edition MASSON 1972

58

Page 56: Chap XIII : calcul scientifique avec python

56

57

Le calcul scientifique

Reacutefeacuterences L-V Bertallanfy lsquoGeneral System Theoryrsquo Edition MASSON 1972

58

Page 57: Chap XIII : calcul scientifique avec python

57

Le calcul scientifique

Reacutefeacuterences L-V Bertallanfy lsquoGeneral System Theoryrsquo Edition MASSON 1972

58

Page 58: Chap XIII : calcul scientifique avec python

Reacutefeacuterences L-V Bertallanfy lsquoGeneral System Theoryrsquo Edition MASSON 1972

58