SlideShare a Scribd company logo
1 of 62
Download to read offline
Python avancé
                  Pierre Poulain
   pierre.poulain@univ-paris-diderot.fr

                       M2 BI – 09/2011
À l’exception des illustrations et images dont les crédits sont indiqués
à la fin du document et dont les droits appartiennent à leurs auteurs
respectifs, le reste de ce cours est sous licence Creative Commons
Paternité (CC-BY).
http://creativecommons.org/licenses/by/2.0/fr/




PP                         Université Paris Diderot - Paris 7              2
Menu


 1   Introduction / rappels                6     Biopython

 2   Bonnes pratiques                      7     Programmation objet

 3   Gestion des erreurs                   8     Tkinter

 4   Numpy                                 9     Subprocess

 5   Rpy



PP                      Université Paris Diderot - Paris 7             3
Menu


 1   Introduction / rappels                6     Biopython

 2   Bonnes pratiques                      7     Programmation objet

 3   Gestion des erreurs                   8     Tkinter

 4   Numpy                                 9     Subprocess

 5   Rpy



PP                      Université Paris Diderot - Paris 7             4
Python, langage :




     interprété à bytecode
     multi-plateforme
     orienté objet (classes) « tout est objet »




PP                       Université Paris Diderot - Paris 7   5
Python, langage : (2)
     « batteries included » nombreux modules fournis en
     standard (math, random, sys, os, re, urllib2, Tkinter)




     modules extérieurs (numpy, Biopython, rpy)
     une bibliothèque doit exister pour votre problème
     (sinon écrivez la)

Objectif
Tour d’horizon de quelques fonctionnalités avancées
(modules, classes, astuces)
PP                       Université Paris Diderot - Paris 7   6
Menu


 1   Introduction / rappels                6     Biopython

 2   Bonnes pratiques                      7     Programmation objet

 3   Gestion des erreurs                   8     Tkinter

 4   Numpy                                 9     Subprocess

 5   Rpy



PP                      Université Paris Diderot - Paris 7             7
Localisation Python et UTF-8


     1   Dire où se trouve Python
     2   Gérer les caractères accentués




                    #! /usr/bin/env python
                    # -*- coding: utf-8 -*-




PP                         Université Paris Diderot - Paris 7   8
Optimisation et itérations des boucles
toto = range( 1000000 )

# methode 1
for i in range( len(toto) ):
    print toto[i]

# methode 2
for ele in toto:
    print ele

# methode 3
for i in xrange( len(toto) ):
    print toto[i]
Quelle méthode est la plus rapide ?
1. for x in y
2. for z in xrange(len(y))
3. for z in range(len(y)) (très lente)
PP                     Université Paris Diderot - Paris 7   9
Listes de compréhension
List comprehensions

Générer une liste à la volée à partir d’une boucle for
[operation sur élément for élément in liste condition]


Exemples :
>>> toto = [1, 3, 6, 9]
>>> [i**2 for i in toto]
[1, 9, 36, 81]

>>> [i**2 for i in toto if i>3]
[36, 81]

>>> seq = "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
>>> width = 60
>>> print "n".join([seq[i:i+width] for i in xrange(0, len(seq), width)])
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAA



PP                         Université Paris Diderot - Paris 7        10
Menu


 1   Introduction / rappels                6      Biopython

 2   Bonnes pratiques                      7      Programmation objet

 3   Gestion des erreurs                   8      Tkinter

 4   Numpy                                 9      Subprocess

 5   Rpy



PP                      Université Paris Diderot - Paris 7              11
Gestion des erreurs



But
Éviter le plantage d’un programme Python
     anticiper les erreurs
     et les intercepter




PP                    Université Paris Diderot - Paris 7   12
Exemple
>>> nb = int(raw_input("Entrez un nombre: "))
Entrez un nombre: 23
>>> print nb
23


Mais si...
>>> nb = int(raw_input("Entrez un nombre: "))
Entrez un nombre: ATCG

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: 'ATCG'


int() ne peut pas convertir "ATCG" en entier.

PP                    Université Paris Diderot - Paris 7   13
Try / except

>>> try:
...     nb = int(raw_input("Entrez un nombre: "))
... except:
...     print "Vous n'avez pas entré un nombre !"
...

Entrez un nombre: ATCG
Vous n'avez pas entré un nombre !




try permet de « tenter » une instruction.
En cas de problème, except prend la main.



PP                   Université Paris Diderot - Paris 7   14
Try / except et les fichiers


>>> nom = "toto.pdb"
>>> try:
...     f = open(nom, "r")
... except:
...     print "Impossible d'ouvrir le fichier", nom




Fichier absent ou problème de droits en lecture © exception.




PP                     Université Paris Diderot - Paris 7      15
Typage des exceptions

>>> try:
...     nb = int(raw_input("Entrez un nombre: "))
... except ValueError:
...     print "Vous n'avez pas entre un nombre !"
...
Entrez un nombre: ATCG
Vous n'avez pas entre un nombre !



ValueError   © problème de conversion (avec int())


RuntimeError, TypeError, IOError



PP                     Université Paris Diderot - Paris 7   16
Menu


 1   Introduction / rappels                6      Biopython

 2   Bonnes pratiques                      7      Programmation objet

 3   Gestion des erreurs                   8      Tkinter

 4   Numpy                                 9      Subprocess

 5   Rpy



PP                      Université Paris Diderot - Paris 7              17
Numpy (Numerical Python)

http://numpy.scipy.org


Bibliothèque de base pour le calcul numérique
     objet de type array à n-dimensions (matrices)
     algèbre linéaire (de base)
     transformée de Fourier (de base)
     générateur de nombre aléatoire (avancé)


 graphiques © autre modules (rpy, matplotlib)



PP                     Université Paris Diderot - Paris 7   18
Objets de type array
Chargement du module numpy
 import numpy


Définition d’un vecteur
 vector1 = numpy.array([1,2,3,4])
 vector1
array([1, 2, 3, 4])


Construction automatique d’un vecteur
 data = numpy.arange(5)
 data
array([0, 1, 2, 3, 4])
 numpy.arange() ∼ range()


PP                       Université Paris Diderot - Paris 7   19
Objets de type array (2)




Opération vectorielle
 data = numpy.arange(5)
 data + 0.1
array([ 0.1, 1.1, 2.1, 3.1,                     4.1])




PP                      Université Paris Diderot - Paris 7   20
Redimensionnement
 v = numpy.arange(4)
 v
array([0, 1, 2, 3])
 numpy.reshape(v, (2,2))
array([[0, 1],
       [2, 3]])

array v doit avoir un nombre d’éléments compatibles avec la
nouvelle matrice 2 x 2

 w = numpy.arange(4)
 numpy.resize(w, (3,2))
array([[0, 1],
       [2, 3],
       [0, 1]])

array w peut contenir un nombre quelconque d’éléments

PP                   Université Paris Diderot - Paris 7   21
01

Création d’une matrice de 0
 numpy.zeros((3,3))
array([[ 0., 0., 0.],
       [ 0., 0., 0.],
       [ 0., 0., 0.]])


Création d’une matrice de 1
 numpy.ones((2,2))
array([[ 1., 1.],
       [ 1., 1.]])
 numpy.ones((2,2), int)
array([[1, 1],
       [1, 1]])



PP                    Université Paris Diderot - Paris 7   22
Dimensions



   mat = numpy.reshape(numpy.arange(81), (9,9))
   numpy.shape(mat)
(9,   9)
   print mat.shape
(9,   9)




PP                    Université Paris Diderot - Paris 7   23
Extraction

 a = numpy.resize(numpy.arange(9), (3,3))
 a
array([[0, 1, 2],
       [3, 4, 5],
       [6, 7, 8]])

 a [1,:]        # 2e ligne
array([3, 4, 5])

 a [:,2]        # 3e colonne
array([2, 5, 8])

 a [2,2]        # élément de la 3e ligne et 3e colonne
8



PP                  Université Paris Diderot - Paris 7   24
Algèbre linéaire
 a = numpy.array([[1,2], [3,4]])
 a
array([[1, 2],
       [3, 4]])

Multiplication de matrices
 numpy.dot(a, a)
array([[ 7, 10],
       [15, 22]])

Inversion de matrice
 from numpy import linalg
# importation du module d'algebre lineaire
 inv_a = linalg.inv(a)
 inv_a
array([[-2. , 1. ],
       [ 1.5, -0.5]])

PP                      Université Paris Diderot - Paris 7   25
Valeurs et vecteurs propres
 a = numpy.resize(numpy.arange(9), (3,3))
 a
array([[0, 1, 2],
       [3, 4, 5],
       [6, 7, 8]])



 import numpy.linalg as linalg
 eig_val, eig_vec = linalg.eig(a)
 eig_val
array([ 1.33484692e+01, -1.34846923e+00, -2.48477279e-16])
 eig_vec
array([[ 0.16476382, 0.79969966, 0.40824829],
       [ 0.50577448, 0.10420579, -0.81649658],
       [ 0.84678513, -0.59128809, 0.40824829]])

 utile pour connaître les axes principaux d’inertie d’une
molécule

PP                        Université Paris Diderot - Paris 7   26
Menu


 1   Introduction / rappels                6      Biopython

 2   Bonnes pratiques                      7      Programmation objet

 3   Gestion des erreurs                   8      Tkinter

 4   Numpy                                 9      Subprocess

 5   Rpy



PP                      Université Paris Diderot - Paris 7              27
Rpy (R for Python)
utilisation des fonctions de R dans Python
http://rpy.sourceforge.net/
 from rpy import r as R
 R.plot(range(10), main=Test RPy, xlab=x, ylab=y)




PP                     Université Paris Diderot - Paris 7   28
Exemple
Nombre de chaque base pour la séquence
ACGATCATAGCGAGCTACGTAGAA




PP                      Université Paris Diderot - Paris 7   29
Exemple
# -*- coding: utf-8 -*-

from rpy import r as R

seq = ACGATCATAGCGAGCTACGTAGAA
seq2 = list( seq )

R.png(rpy_test.png, width=800, height=800, pointsize=30)
# tri des bases car unique() n'ordonne pas les données
# alors que table() le fait
seq3 = R.sort( seq2 )
# listes des bases présentes
bases = R.unique( seq3 )
# effectif de chaque base
effectifs = R.table( seq3 )
# dessin du barplot et sauvegarde de la position des abscisses
coords = R.barplot( effectifs, ylab=nombre de bases)
# ajout du texte pour l'axe des abscisses
R.text(coords, -0.5, bases, xpd = True, cex = 1.2, font = 2 )
# fermeture du graphique
R.dev_off()


 dev_off()
PP                        Université Paris Diderot - Paris 7     30
Menu


 1   Introduction / rappels                6      Biopython

 2   Bonnes pratiques                      7      Programmation objet

 3   Gestion des erreurs                   8      Tkinter

 4   Numpy                                 9      Subprocess

 5   Rpy



PP                      Université Paris Diderot - Paris 7              31
Biopython
http://biopython.org



     manipulations de séquences (ADN, ARN, protéine)
     interrogations de banques de données biologiques
     (ExPASy, Entrez [NCBI], SCOP)
     recherches BLAST
     alignements multiples (clustalw)
     lectures de fichiers PDB
     ...

Très bon tutoriel à http://www.biopython.org/DIST/docs/
tutorial/Tutorial.html


PP                     Université Paris Diderot - Paris 7   32
Manipulation de séquences

Définition d’un alphabet (ADN, ARN, protéine)
 from Bio.Alphabet import IUPAC
# module Biopython s'appelle Bio
# IUPAC = International Union of Pure and Applied Chemistry



Définition d’un objet séquence
 my_dna_alphabet = IUPAC.unambiguous_dna
 from Bio.Seq import Seq
 my_seq = Seq('CATCCCTTCGATCGGGGCTATAGCTAGC',my_dna_alphabet)
 print my_seq
CATCCCTTCGATCGGGGCTATAGCTAGC
 my_seq
Seq('CATCCCTTCGATCGGGGCTATAGCTAGC', IUPACUnambiguousDNA())




PP                        Université Paris Diderot - Paris 7       33
Manipulation de séquences (2)


Propriétés des chaînes de caractères
 print my_seq[4:12]
CCTTCGAT
 print len(my_seq)
28
 new_seq = my_seq[0:5]
 new_seq
Seq('CATCC', IUPACUnambiguousDNA())
 my_seq + new_seq
Seq('CATCCCTTCGATCGGGGCTATAGCTAGCCATCC', IUPACUnambiguousDNA())




PP                        Université Paris Diderot - Paris 7      34
Interrogation d’Entrez I



 from Bio import Entrez         # chargement du module

# definition de l'e-mail, obligatoire pour eviter les abus
 Entrez.email = votremail@provider.fr




PP                  Université Paris Diderot - Paris 7      35
Interrogation d’Entrez II
# requete dans la base de donnees pubmed
# des termes small heat shock proteins
 ma_req = Entrez.esearch(db=pubmed, 
... term=small heat shock proteins, retmax=50)

# recuperation des resultats
# sous la forme d'un dictionnaire
 mon_res = Entrez.read(ma_req)

# clefs disponibles
 print(mon_res.keys())
[u'Count', u'RetMax', u'IdList', u'TranslationStack',
u'TranslationSet', u'RetStart', u'QueryTranslation']

# liste des identifiants pubmed
 print(mon_res[IdList])
['20679393', '20668846', '20668218', ...]


PP                  Université Paris Diderot - Paris 7   36
Interrogation d’Entrez III
# requete sur un article en particulier
 requete = Entrez.esummary(db=pubmed, id='20668846')

# lecture du resultat
# sous forme d'une liste de dictionnaire
 res_parse = Entrez.read(requete)

# clefs disponibles
 print(res_parse[0].keys())
['DOI', 'Title', 'Source', 'PmcRefCount', 'Issue', ...]

# affiche du titre
 res_parse[0][Title]
'Characterization of Xanthomonas campestris pv. campestris
heat shock protein A (HspA), which possesses an intrinsic
ability to reactivate inactivated proteins.'



PP                  Université Paris Diderot - Paris 7    37
En résumé


Biopython
    puissant
    polyvalent
    la syntaxe change régulièrement
    le format des bases des données aussi...


Exemple plus poussé pendant le TP.




PP                    Université Paris Diderot - Paris 7   38
Menu


 1   Introduction / rappels                6      Biopython

 2   Bonnes pratiques                      7      Programmation objet

 3   Gestion des erreurs                   8      Tkinter

 4   Numpy                                 9      Subprocess

 5   Rpy



PP                      Université Paris Diderot - Paris 7              39
Programmation objet et classe
Une minuscule introduction




Une classe définit des objets qui sont des instances
(∼ représentants) de cette classe.




Les objets possèdent des attributs (∼ variables) et des
méthodes (∼ fonctions) associés à cette classe.




 PP                          Université Paris Diderot - Paris 7   40
Programmation objet et classe (2)




PP             Université Paris Diderot - Paris 7   41
Quelques propriétés

Encapsulation. Interface (attributs ou méthodes) « publique ».
Possibilité d’interface « privée ».


Polymorphisme. Transformation des opérateurs standards (*,
+, /, -) suivant le contexte.


Héritage mutliple. Création de sous-classes héritant des
propriétés de la classe mère.


Python © programmation objet implicite.



PP                     Université Paris Diderot - Paris 7        42
Exemple de classe Rectangle()
class Rectangle:
    ceci est la classe Rectangle

     def __init__(self, long = 0.0, larg = 0.0, coul = blanc):
      initialisation d'un objet (constructeur)
         self.longueur = long
         self.largeur = larg
         self.couleur = coul

     def calcule_surface(self):
      calcule la surface
         return self.longueur * self.largeur

     def change_carre(self, cote):
      transforme un rectangle en carre
         self.longueur = cote
         self.largeur = cote



 self désigne l’objet lui-même et est obligatoire.

PP                         Université Paris Diderot - Paris 7      43
Utilisation de la classe Rectangle()
# creation d'un objet Rectangle avec les parametres par defaut
 rect1 = Rectangle()

# affichage des attributs
 print rect1.longueur, rect1.largeur, rect1.couleur
0.0 0.0 blanc

# calcul de la surface
 print rect1.calcule_surface()
0.0

# on change le rectangle en carre
 rect1.change_carre(30)
 print rect1.calcule_surface()
900

# creation d'un objet Rectangle avec des parametres imposes
 rect2 = Rectangle(2, 3, rouge)
 print rect2.calcule_surface()
6




PP                        Université Paris Diderot - Paris 7     44
Autres attributs redéfinissables

     __add__(self, other) opérateur +

     __mul__(self, number) opérateur *

     __del__(self) destructeur

     __len__(self) opérateur len (taille)

     __getslice__(self, low, high) tranchage

     etc.


PP                      Université Paris Diderot - Paris 7   45
Menu


 1   Introduction / rappels                6      Biopython

 2   Bonnes pratiques                      7      Programmation objet

 3   Gestion des erreurs                   8      Tkinter

 4   Numpy                                 9      Subprocess

 5   Rpy



PP                      Université Paris Diderot - Paris 7              46
Tkinter

Tk (Tool kit) ensemble de fonctionnalités graphiques


Tkinter © interface Python pour Tk


Développement de programmes Python avec des interfaces
graphiques (Graphical User Interface, GUI).


Fourni en standard dans Python (Windows, Linux, MacOS)



PP                     Université Paris Diderot - Paris 7   47
Exemple Tkinter
from Tkinter import *

racine = Tk()

texte = Label(racine,text=Salut tout le monde !,fg=red)
texte.pack()

bouton = Button(racine, text=Quit, command=racine.destroy)
bouton.pack()

racine.mainloop()




PP                        Université Paris Diderot - Paris 7   48
Exemple Tkinter commenté I
 Importation du module Tkinter
from Tkinter import *

 Création d’une instance d’une objet graphique (widget) Tk,
ici une fenêtre
racine = Tk()




PP                      Université Paris Diderot - Paris 7     49
Exemple Tkinter commenté II

 Création d’un objet de la classe Label() contenu dans
racine.
message = Label(racine, text=Salut tout le monde !, fg=red)

Attributs de message : un texte et une couleur de texte.

 Accrochage du texte dans la fenêtre et ajustement de sa taille
message.pack()




PP                        Université Paris Diderot - Paris 7      50
Exemple Tkinter commenté III
 Création d’un objet graphique de la classe Button() dans
racine.
bouton = Button(racine, text=Quit, command=racine.destroy)

Attributs de bouton : un texte et une commande.

 Accrochage du texte dans la fenêtre et ajustement de sa taille
bouton.pack()




 Démarrage du gestionnaire d’évènements (clavier, souris).
Obligatoire dans un script mais pas dans l’interpréteur.
racine.mainloop()

PP                        Université Paris Diderot - Paris 7   51
Menu


 1   Introduction / rappels                6      Biopython

 2   Bonnes pratiques                      7      Programmation objet

 3   Gestion des erreurs                   8      Tkinter

 4   Numpy                                 9      Subprocess

 5   Rpy



PP                      Université Paris Diderot - Paris 7              52
subprocess




gestion des entrées / sorties d’une commande Unix
http://docs.python.org/library/subprocess.html




PP                Université Paris Diderot - Paris 7   53
Sortie standard
Code



import subprocess
command = ls
proc = subprocess.Popen(command, shell=True,
stdout=subprocess.PIPE)

# contenu de la sortie standard
out = proc.communicate()[0]
print ===Sortie standard :
print out
# affiche le code de sortie (0 = OK)
print ===Code de sortie :
print proc.wait()




PP                  Université Paris Diderot - Paris 7   54
Sortie standard
Résultat



===Sortie standard :
cours_CGI_Python.aux
cours_CGI_Python.log
cours_CGI_Python.nav
cours_CGI_Python.out
cours_CGI_Python.pdf
cours_CGI_Python.snm
cours_CGI_Python.tex

===Code de sortie :
0




PP                     Université Paris Diderot - Paris 7   55
Sortie et erreur standards
Code


import subprocess
command = ls *.blabla
proc = subprocess.Popen(command, shell = True,
stdout = subprocess.PIPE, stderr = subprocess.PIPE)
# contenu de la sortie standard
# et de la sortie d'erreur standard
(out, err) = proc.communicate()
print ===Sortie standard :
print out
print ===Sortie d'erreur standard :
print err
# affiche le code de sortie (0 = OK)
print ===Code de sortie :
print proc.wait()



PP                  Université Paris Diderot - Paris 7   56
Sortie et erreur standards
Résultat




===Sortie standard :

===Sortie d'erreur standard :
ls: impossible d'accéder à *.blabla: Aucun fichier ou dossi

===Code de sortie :
2




PP                     Université Paris Diderot - Paris 7   57
Entrée, sortie et erreur standards
Code
import subprocess
command = wc -l
data = sp|Q41560|HS16B_WHEAT 16.9 kDa class I heat shock protein
MSIVRRTNVFDPFADLWADPFDTFRSIVPAISGGGSETAAFANARMDWKETPEAHVFKAD
LPGVKKEEVKVEVEDGNVLVVSGERTKEKEDKNDKWHRVERSSGKFVRRFRLLEDAKVEE
VKAGLENGVLTVTVPKAEVKKPEVKAIQISG

proc = subprocess.Popen(command, shell = True,
stdout = subprocess.PIPE, stderr = subprocess.PIPE,
stdin = subprocess.PIPE)
# contenu de la sortie standard
# et de la sortie d'erreur standard
(out, err) = proc.communicate(data)
print ===Entree standard :
print data
print ===Sortie standard :
print out
print ===Sortie d'erreur standard :
print err
# affiche le code de sortie (0 = OK)
print ===Code de sortie :
print proc.wait()

PP                        Université Paris Diderot - Paris 7           58
Entrée, sortie et erreur standards
Résultat



===Entree standard :
sp|Q41560|HS16B_WHEAT 16.9 kDa class I heat shock protein
MSIVRRTNVFDPFADLWADPFDTFRSIVPAISGGGSETAAFANARMDWKETPEAHVFKAD
LPGVKKEEVKVEVEDGNVLVVSGERTKEKEDKNDKWHRVERSSGKFVRRFRLLEDAKVEE
VKAGLENGVLTVTVPKAEVKKPEVKAIQISG

===Sortie standard :
4

===Sortie d'erreur standard :

===Code de sortie :
0




PP                        Université Paris Diderot - Paris 7   59
Références

Cours de Python – Patrick Fuchs  PP
http://www.dsimb.inserm.fr/~fuchs/python/index.html




Bonnes pratiques et astuces Python – David Larlet – BioloGeek
http://www.biologeek.com/bonnes-pratiques,conferences,django,python,traduction/

bonnes-pratiques-et-astuces-python/




Python for Bioinformatics – Sebastian Bassi




PP                                Université Paris Diderot - Paris 7              60
Contributeurs



Ce cours est basé sur un cours original de Patrick Fuchs.




PP                     Université Paris Diderot - Paris 7   61
Crédits graphiques



      Frank Stajano (Wikimedia Commons)




PP               Université Paris Diderot - Paris 7   62

More Related Content

What's hot

Python For Data Science - French Course
Python For Data Science - French CoursePython For Data Science - French Course
Python For Data Science - French CourseHaytam EL YOUSSFI
 
Cours : les arbres Prof. KHALIFA MANSOURI
Cours : les arbres Prof. KHALIFA MANSOURI Cours : les arbres Prof. KHALIFA MANSOURI
Cours : les arbres Prof. KHALIFA MANSOURI Mansouri Khalifa
 
Cours python
Cours pythonCours python
Cours pythonsalmazen
 
Cours : les listes chainées Prof. KHALIFA MANSOURI
Cours : les listes chainées  Prof. KHALIFA MANSOURI Cours : les listes chainées  Prof. KHALIFA MANSOURI
Cours : les listes chainées Prof. KHALIFA MANSOURI Mansouri Khalifa
 
Chapitre5: Classes et objets
Chapitre5: Classes et objetsChapitre5: Classes et objets
Chapitre5: Classes et objetsAziz Darouichi
 
Chap3 programmation modulaire en python
Chap3 programmation modulaire en pythonChap3 programmation modulaire en python
Chap3 programmation modulaire en pythonMariem ZAOUALI
 
Chapitre1: Langage Python
Chapitre1: Langage PythonChapitre1: Langage Python
Chapitre1: Langage PythonAziz Darouichi
 
Cours algorithmique et complexite complet
Cours algorithmique et complexite completCours algorithmique et complexite complet
Cours algorithmique et complexite completChahrawoods Dmz
 
Atelier Python 2eme partie par Achraf Kacimi El Hassani
Atelier Python 2eme partie par Achraf Kacimi El HassaniAtelier Python 2eme partie par Achraf Kacimi El Hassani
Atelier Python 2eme partie par Achraf Kacimi El HassaniShellmates
 
Python avancé : Ensemble, dictionnaire et base de données
Python avancé : Ensemble, dictionnaire et base de donnéesPython avancé : Ensemble, dictionnaire et base de données
Python avancé : Ensemble, dictionnaire et base de donnéesECAM Brussels Engineering School
 
La programmation modulaire en Python
La programmation modulaire en PythonLa programmation modulaire en Python
La programmation modulaire en PythonABDESSELAM ARROU
 
Chap4 Récursivité en python
Chap4 Récursivité en pythonChap4 Récursivité en python
Chap4 Récursivité en pythonMariem ZAOUALI
 
LUP IRT 2021_2022 - Cours - Programmation Python (Partie I).pdf
LUP IRT 2021_2022 - Cours - Programmation Python (Partie I).pdfLUP IRT 2021_2022 - Cours - Programmation Python (Partie I).pdf
LUP IRT 2021_2022 - Cours - Programmation Python (Partie I).pdfRedaBelattar
 
Exercices_Python_Fenni_2023 -corrigé.pdf
Exercices_Python_Fenni_2023 -corrigé.pdfExercices_Python_Fenni_2023 -corrigé.pdf
Exercices_Python_Fenni_2023 -corrigé.pdfsalah fenni
 

What's hot (20)

Python For Data Science - French Course
Python For Data Science - French CoursePython For Data Science - French Course
Python For Data Science - French Course
 
Cours : les arbres Prof. KHALIFA MANSOURI
Cours : les arbres Prof. KHALIFA MANSOURI Cours : les arbres Prof. KHALIFA MANSOURI
Cours : les arbres Prof. KHALIFA MANSOURI
 
Cours python
Cours pythonCours python
Cours python
 
Cours : les listes chainées Prof. KHALIFA MANSOURI
Cours : les listes chainées  Prof. KHALIFA MANSOURI Cours : les listes chainées  Prof. KHALIFA MANSOURI
Cours : les listes chainées Prof. KHALIFA MANSOURI
 
COURS_PYTHON_22.ppt
COURS_PYTHON_22.pptCOURS_PYTHON_22.ppt
COURS_PYTHON_22.ppt
 
Python.pptx
Python.pptxPython.pptx
Python.pptx
 
Ch 01 poo
Ch 01 pooCh 01 poo
Ch 01 poo
 
Python avancé : Classe et objet
Python avancé : Classe et objetPython avancé : Classe et objet
Python avancé : Classe et objet
 
Chapitre5: Classes et objets
Chapitre5: Classes et objetsChapitre5: Classes et objets
Chapitre5: Classes et objets
 
Python avancé : Lecture et écriture de fichiers
Python avancé : Lecture et écriture de fichiersPython avancé : Lecture et écriture de fichiers
Python avancé : Lecture et écriture de fichiers
 
Chap3 programmation modulaire en python
Chap3 programmation modulaire en pythonChap3 programmation modulaire en python
Chap3 programmation modulaire en python
 
Chapitre1: Langage Python
Chapitre1: Langage PythonChapitre1: Langage Python
Chapitre1: Langage Python
 
Cours algorithmique et complexite complet
Cours algorithmique et complexite completCours algorithmique et complexite complet
Cours algorithmique et complexite complet
 
Atelier Python 2eme partie par Achraf Kacimi El Hassani
Atelier Python 2eme partie par Achraf Kacimi El HassaniAtelier Python 2eme partie par Achraf Kacimi El Hassani
Atelier Python 2eme partie par Achraf Kacimi El Hassani
 
Python avancé : Ensemble, dictionnaire et base de données
Python avancé : Ensemble, dictionnaire et base de donnéesPython avancé : Ensemble, dictionnaire et base de données
Python avancé : Ensemble, dictionnaire et base de données
 
La programmation modulaire en Python
La programmation modulaire en PythonLa programmation modulaire en Python
La programmation modulaire en Python
 
Chap4 Récursivité en python
Chap4 Récursivité en pythonChap4 Récursivité en python
Chap4 Récursivité en python
 
LUP IRT 2021_2022 - Cours - Programmation Python (Partie I).pdf
LUP IRT 2021_2022 - Cours - Programmation Python (Partie I).pdfLUP IRT 2021_2022 - Cours - Programmation Python (Partie I).pdf
LUP IRT 2021_2022 - Cours - Programmation Python (Partie I).pdf
 
Exercices_Python_Fenni_2023 -corrigé.pdf
Exercices_Python_Fenni_2023 -corrigé.pdfExercices_Python_Fenni_2023 -corrigé.pdf
Exercices_Python_Fenni_2023 -corrigé.pdf
 
Cours de c
Cours de cCours de c
Cours de c
 

Viewers also liked

Python et les bases de données non sql
Python et les bases de données non sqlPython et les bases de données non sql
Python et les bases de données non sqlbchesneau
 
Base NoSql et Python
Base NoSql et PythonBase NoSql et Python
Base NoSql et Pythonyboussard
 
Algorithmique_et_programmation_part2
Algorithmique_et_programmation_part2Algorithmique_et_programmation_part2
Algorithmique_et_programmation_part2Emeric Tapachès
 
Python et son intégration avec Odoo
Python et son intégration avec OdooPython et son intégration avec Odoo
Python et son intégration avec OdooHassan WAHSISS
 
Formats de données en biologie
Formats de données en biologieFormats de données en biologie
Formats de données en biologiepierrepo
 
Introduction à la programmation
Introduction à la programmationIntroduction à la programmation
Introduction à la programmationpierrepo
 
Rendez votre code Python plus beau !
Rendez votre code Python plus beau !Rendez votre code Python plus beau !
Rendez votre code Python plus beau !Ronan Amicel
 
Chap XIII : calcul scientifique avec python
Chap XIII : calcul scientifique avec pythonChap XIII : calcul scientifique avec python
Chap XIII : calcul scientifique avec pythonMohammed TAMALI
 
Créer une api publique avec Django REST framework
Créer une api publique avec Django REST frameworkCréer une api publique avec Django REST framework
Créer une api publique avec Django REST frameworkBleemeo
 
Gestion de projets en bioinformatique
Gestion de projets en bioinformatiqueGestion de projets en bioinformatique
Gestion de projets en bioinformatiquepierrepo
 
Cours docking gros grain
Cours docking gros grainCours docking gros grain
Cours docking gros grainpierrepo
 
Cours préparation au monde professionnel
Cours préparation au monde professionnelCours préparation au monde professionnel
Cours préparation au monde professionnelpierrepo
 
attitude professionnelle
attitude professionnelleattitude professionnelle
attitude professionnellepierrepo
 
Cours veille scientifique
Cours veille scientifiqueCours veille scientifique
Cours veille scientifiquepierrepo
 
Cours communication scientifique
Cours communication scientifiqueCours communication scientifique
Cours communication scientifiquepierrepo
 

Viewers also liked (20)

Python et les bases de données non sql
Python et les bases de données non sqlPython et les bases de données non sql
Python et les bases de données non sql
 
python
pythonpython
python
 
Base NoSql et Python
Base NoSql et PythonBase NoSql et Python
Base NoSql et Python
 
Algorithmique_et_programmation_part2
Algorithmique_et_programmation_part2Algorithmique_et_programmation_part2
Algorithmique_et_programmation_part2
 
Python et son intégration avec Odoo
Python et son intégration avec OdooPython et son intégration avec Odoo
Python et son intégration avec Odoo
 
Python après 15 ans de JAVA
Python après 15 ans de JAVAPython après 15 ans de JAVA
Python après 15 ans de JAVA
 
Formats de données en biologie
Formats de données en biologieFormats de données en biologie
Formats de données en biologie
 
Introduction à la programmation
Introduction à la programmationIntroduction à la programmation
Introduction à la programmation
 
Rendez votre code Python plus beau !
Rendez votre code Python plus beau !Rendez votre code Python plus beau !
Rendez votre code Python plus beau !
 
Chap XIII : calcul scientifique avec python
Chap XIII : calcul scientifique avec pythonChap XIII : calcul scientifique avec python
Chap XIII : calcul scientifique avec python
 
Créer une api publique avec Django REST framework
Créer une api publique avec Django REST frameworkCréer une api publique avec Django REST framework
Créer une api publique avec Django REST framework
 
Formation python
Formation pythonFormation python
Formation python
 
Gestion de projets en bioinformatique
Gestion de projets en bioinformatiqueGestion de projets en bioinformatique
Gestion de projets en bioinformatique
 
Cours docking gros grain
Cours docking gros grainCours docking gros grain
Cours docking gros grain
 
Cours préparation au monde professionnel
Cours préparation au monde professionnelCours préparation au monde professionnel
Cours préparation au monde professionnel
 
attitude professionnelle
attitude professionnelleattitude professionnelle
attitude professionnelle
 
Cours veille scientifique
Cours veille scientifiqueCours veille scientifique
Cours veille scientifique
 
Cours communication scientifique
Cours communication scientifiqueCours communication scientifique
Cours communication scientifique
 
CM uml-concepts-avances
CM uml-concepts-avancesCM uml-concepts-avances
CM uml-concepts-avances
 
Django by mrjmad
Django by mrjmadDjango by mrjmad
Django by mrjmad
 

Similar to Cours python avancé

Algorithmique_et_programmation_part3_V2
Algorithmique_et_programmation_part3_V2Algorithmique_et_programmation_part3_V2
Algorithmique_et_programmation_part3_V2Emeric Tapachès
 
Les nouveautés de C++11 : Ecrire du C++ Moderne
Les nouveautés de C++11 : Ecrire du C++ ModerneLes nouveautés de C++11 : Ecrire du C++ Moderne
Les nouveautés de C++11 : Ecrire du C++ ModerneMicrosoft
 
PJ - machine learning avec scikit-learn.pdf
PJ - machine learning avec scikit-learn.pdfPJ - machine learning avec scikit-learn.pdf
PJ - machine learning avec scikit-learn.pdfYounesOuladSayad1
 
ALF 11 - Diagrame de flux de controlle
ALF 11 - Diagrame de flux de controlleALF 11 - Diagrame de flux de controlle
ALF 11 - Diagrame de flux de controlleAlexandru Radovici
 
IMPLEMENTATION EN PYTHON DES CONVENTIONS ALGORITHMIQUES (2022-2023)
IMPLEMENTATION EN PYTHON DES CONVENTIONS ALGORITHMIQUES  (2022-2023)IMPLEMENTATION EN PYTHON DES CONVENTIONS ALGORITHMIQUES  (2022-2023)
IMPLEMENTATION EN PYTHON DES CONVENTIONS ALGORITHMIQUES (2022-2023)Tunisie collège
 
la complexité des algorithmes en toute simplicité
la complexité des algorithmes en toute simplicitéla complexité des algorithmes en toute simplicité
la complexité des algorithmes en toute simplicitéSana REFAI
 
Calcul scientifique avec python Numpy
Calcul scientifique avec python NumpyCalcul scientifique avec python Numpy
Calcul scientifique avec python NumpyHaytam EL YOUSSFI
 
Monitoring d'applications/environnements PHP: APM et Pinba
Monitoring d'applications/environnements PHP: APM et PinbaMonitoring d'applications/environnements PHP: APM et Pinba
Monitoring d'applications/environnements PHP: APM et PinbaPatrick Allaert
 
pythonxxzexexzxzexzexzexzxzexezxzexzxz.pdf
pythonxxzexexzxzexzexzexzxzexezxzexzxz.pdfpythonxxzexexzxzexzexzexzxzexezxzexzxz.pdf
pythonxxzexexzxzexzexzexzxzexezxzexzxz.pdfMehdiHarchenifChassa
 
Cours_D3SI_S5_Python for DS_MatPlotLib.pdf
Cours_D3SI_S5_Python for DS_MatPlotLib.pdfCours_D3SI_S5_Python for DS_MatPlotLib.pdf
Cours_D3SI_S5_Python for DS_MatPlotLib.pdfsaid350040
 
Chap 1 Initiation.pptx
Chap 1 Initiation.pptxChap 1 Initiation.pptx
Chap 1 Initiation.pptxolfaharrabi2
 
Design Pattern introduction
Design Pattern introductionDesign Pattern introduction
Design Pattern introductionneuros
 
Data Mining (Partie 2).pdf
Data Mining (Partie 2).pdfData Mining (Partie 2).pdf
Data Mining (Partie 2).pdfOuailChoukhairi
 
TP3 Atelier C++/ GL2 INSAT / Tunisie
TP3 Atelier C++/ GL2 INSAT / TunisieTP3 Atelier C++/ GL2 INSAT / Tunisie
TP3 Atelier C++/ GL2 INSAT / TunisieMariem ZAOUALI
 
Développement informatique : Gestion de projet, versioning, debugging, testin...
Développement informatique : Gestion de projet, versioning, debugging, testin...Développement informatique : Gestion de projet, versioning, debugging, testin...
Développement informatique : Gestion de projet, versioning, debugging, testin...ECAM Brussels Engineering School
 
Comment développer un serveur métier en python/C++
Comment développer un serveur métier en python/C++Comment développer un serveur métier en python/C++
Comment développer un serveur métier en python/C++cppfrug
 

Similar to Cours python avancé (20)

Mathématiques et Python
Mathématiques et PythonMathématiques et Python
Mathématiques et Python
 
Algorithmique_et_programmation_part3_V2
Algorithmique_et_programmation_part3_V2Algorithmique_et_programmation_part3_V2
Algorithmique_et_programmation_part3_V2
 
Les nouveautés de C++11 : Ecrire du C++ Moderne
Les nouveautés de C++11 : Ecrire du C++ ModerneLes nouveautés de C++11 : Ecrire du C++ Moderne
Les nouveautés de C++11 : Ecrire du C++ Moderne
 
ALF 11 - WebAssembly
ALF 11 - WebAssemblyALF 11 - WebAssembly
ALF 11 - WebAssembly
 
PJ - machine learning avec scikit-learn.pdf
PJ - machine learning avec scikit-learn.pdfPJ - machine learning avec scikit-learn.pdf
PJ - machine learning avec scikit-learn.pdf
 
ALF 11 - Diagrame de flux de controlle
ALF 11 - Diagrame de flux de controlleALF 11 - Diagrame de flux de controlle
ALF 11 - Diagrame de flux de controlle
 
IMPLEMENTATION EN PYTHON DES CONVENTIONS ALGORITHMIQUES (2022-2023)
IMPLEMENTATION EN PYTHON DES CONVENTIONS ALGORITHMIQUES  (2022-2023)IMPLEMENTATION EN PYTHON DES CONVENTIONS ALGORITHMIQUES  (2022-2023)
IMPLEMENTATION EN PYTHON DES CONVENTIONS ALGORITHMIQUES (2022-2023)
 
la complexité des algorithmes en toute simplicité
la complexité des algorithmes en toute simplicitéla complexité des algorithmes en toute simplicité
la complexité des algorithmes en toute simplicité
 
Theme 7
Theme 7Theme 7
Theme 7
 
Calcul scientifique avec python Numpy
Calcul scientifique avec python NumpyCalcul scientifique avec python Numpy
Calcul scientifique avec python Numpy
 
Monitoring d'applications/environnements PHP: APM et Pinba
Monitoring d'applications/environnements PHP: APM et PinbaMonitoring d'applications/environnements PHP: APM et Pinba
Monitoring d'applications/environnements PHP: APM et Pinba
 
pythonxxzexexzxzexzexzexzxzexezxzexzxz.pdf
pythonxxzexexzxzexzexzexzxzexezxzexzxz.pdfpythonxxzexexzxzexzexzexzxzexezxzexzxz.pdf
pythonxxzexexzxzexzexzexzxzexezxzexzxz.pdf
 
Cours_D3SI_S5_Python for DS_MatPlotLib.pdf
Cours_D3SI_S5_Python for DS_MatPlotLib.pdfCours_D3SI_S5_Python for DS_MatPlotLib.pdf
Cours_D3SI_S5_Python for DS_MatPlotLib.pdf
 
Chap 1 Initiation.pptx
Chap 1 Initiation.pptxChap 1 Initiation.pptx
Chap 1 Initiation.pptx
 
Design Pattern introduction
Design Pattern introductionDesign Pattern introduction
Design Pattern introduction
 
Data Mining (Partie 2).pdf
Data Mining (Partie 2).pdfData Mining (Partie 2).pdf
Data Mining (Partie 2).pdf
 
TP3 Atelier C++/ GL2 INSAT / Tunisie
TP3 Atelier C++/ GL2 INSAT / TunisieTP3 Atelier C++/ GL2 INSAT / Tunisie
TP3 Atelier C++/ GL2 INSAT / Tunisie
 
Développement informatique : Gestion de projet, versioning, debugging, testin...
Développement informatique : Gestion de projet, versioning, debugging, testin...Développement informatique : Gestion de projet, versioning, debugging, testin...
Développement informatique : Gestion de projet, versioning, debugging, testin...
 
Cours de Génie Logiciel / ESIEA 2016-17
Cours de Génie Logiciel / ESIEA 2016-17Cours de Génie Logiciel / ESIEA 2016-17
Cours de Génie Logiciel / ESIEA 2016-17
 
Comment développer un serveur métier en python/C++
Comment développer un serveur métier en python/C++Comment développer un serveur métier en python/C++
Comment développer un serveur métier en python/C++
 

Recently uploaded

Annie Ernaux Extérieurs. pptx. Exposition basée sur un livre .
Annie   Ernaux  Extérieurs. pptx. Exposition basée sur un livre .Annie   Ernaux  Extérieurs. pptx. Exposition basée sur un livre .
Annie Ernaux Extérieurs. pptx. Exposition basée sur un livre .Txaruka
 
PIE-A2-P4-support stagiaires sept 22-validé.pdf
PIE-A2-P4-support stagiaires sept 22-validé.pdfPIE-A2-P4-support stagiaires sept 22-validé.pdf
PIE-A2-P4-support stagiaires sept 22-validé.pdfRiDaHAziz
 
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdf
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdfSciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdf
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdfSKennel
 
Presentation de la plateforme Moodle - avril 2024
Presentation de la plateforme Moodle - avril 2024Presentation de la plateforme Moodle - avril 2024
Presentation de la plateforme Moodle - avril 2024Gilles Le Page
 
Bibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdf
Bibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdfBibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdf
Bibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdfBibdoc 37
 
Cours SE Gestion des périphériques - IG IPSET
Cours SE Gestion des périphériques - IG IPSETCours SE Gestion des périphériques - IG IPSET
Cours SE Gestion des périphériques - IG IPSETMedBechir
 
Bibdoc 2024 - Ecologie du livre et creation de badge.pdf
Bibdoc 2024 - Ecologie du livre et creation de badge.pdfBibdoc 2024 - Ecologie du livre et creation de badge.pdf
Bibdoc 2024 - Ecologie du livre et creation de badge.pdfBibdoc 37
 
SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdfSKennel
 
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdfSKennel
 
SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdfSKennel
 
Zotero avancé - support de formation doctorants SHS 2024
Zotero avancé - support de formation doctorants SHS 2024Zotero avancé - support de formation doctorants SHS 2024
Zotero avancé - support de formation doctorants SHS 2024Alain Marois
 
PIE-A2-P 5- Supports stagiaires.pptx.pdf
PIE-A2-P 5- Supports stagiaires.pptx.pdfPIE-A2-P 5- Supports stagiaires.pptx.pdf
PIE-A2-P 5- Supports stagiaires.pptx.pdfRiDaHAziz
 
Bernard Réquichot.pptx Peintre français
Bernard Réquichot.pptx   Peintre françaisBernard Réquichot.pptx   Peintre français
Bernard Réquichot.pptx Peintre françaisTxaruka
 
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...Faga1939
 
Principe de fonctionnement d'un moteur 4 temps
Principe de fonctionnement d'un moteur 4 tempsPrincipe de fonctionnement d'un moteur 4 temps
Principe de fonctionnement d'un moteur 4 tempsRajiAbdelghani
 
SciencesPo_Aix_InnovationPédagogique_Bilan.pdf
SciencesPo_Aix_InnovationPédagogique_Bilan.pdfSciencesPo_Aix_InnovationPédagogique_Bilan.pdf
SciencesPo_Aix_InnovationPédagogique_Bilan.pdfSKennel
 
Le Lean sur une ligne de production : Formation et mise en application directe
Le Lean sur une ligne de production : Formation et mise en application directeLe Lean sur une ligne de production : Formation et mise en application directe
Le Lean sur une ligne de production : Formation et mise en application directeXL Groupe
 
Cours SE Le système Linux : La ligne de commande bash - IG IPSET
Cours SE Le système Linux : La ligne de commande bash - IG IPSETCours SE Le système Linux : La ligne de commande bash - IG IPSET
Cours SE Le système Linux : La ligne de commande bash - IG IPSETMedBechir
 

Recently uploaded (19)

Annie Ernaux Extérieurs. pptx. Exposition basée sur un livre .
Annie   Ernaux  Extérieurs. pptx. Exposition basée sur un livre .Annie   Ernaux  Extérieurs. pptx. Exposition basée sur un livre .
Annie Ernaux Extérieurs. pptx. Exposition basée sur un livre .
 
PIE-A2-P4-support stagiaires sept 22-validé.pdf
PIE-A2-P4-support stagiaires sept 22-validé.pdfPIE-A2-P4-support stagiaires sept 22-validé.pdf
PIE-A2-P4-support stagiaires sept 22-validé.pdf
 
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdf
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdfSciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdf
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdf
 
Presentation de la plateforme Moodle - avril 2024
Presentation de la plateforme Moodle - avril 2024Presentation de la plateforme Moodle - avril 2024
Presentation de la plateforme Moodle - avril 2024
 
Bibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdf
Bibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdfBibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdf
Bibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdf
 
Cours SE Gestion des périphériques - IG IPSET
Cours SE Gestion des périphériques - IG IPSETCours SE Gestion des périphériques - IG IPSET
Cours SE Gestion des périphériques - IG IPSET
 
Bibdoc 2024 - Ecologie du livre et creation de badge.pdf
Bibdoc 2024 - Ecologie du livre et creation de badge.pdfBibdoc 2024 - Ecologie du livre et creation de badge.pdf
Bibdoc 2024 - Ecologie du livre et creation de badge.pdf
 
SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdf
 
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdf
 
SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdf
 
Zotero avancé - support de formation doctorants SHS 2024
Zotero avancé - support de formation doctorants SHS 2024Zotero avancé - support de formation doctorants SHS 2024
Zotero avancé - support de formation doctorants SHS 2024
 
DO PALÁCIO À ASSEMBLEIA .
DO PALÁCIO À ASSEMBLEIA                 .DO PALÁCIO À ASSEMBLEIA                 .
DO PALÁCIO À ASSEMBLEIA .
 
PIE-A2-P 5- Supports stagiaires.pptx.pdf
PIE-A2-P 5- Supports stagiaires.pptx.pdfPIE-A2-P 5- Supports stagiaires.pptx.pdf
PIE-A2-P 5- Supports stagiaires.pptx.pdf
 
Bernard Réquichot.pptx Peintre français
Bernard Réquichot.pptx   Peintre françaisBernard Réquichot.pptx   Peintre français
Bernard Réquichot.pptx Peintre français
 
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
 
Principe de fonctionnement d'un moteur 4 temps
Principe de fonctionnement d'un moteur 4 tempsPrincipe de fonctionnement d'un moteur 4 temps
Principe de fonctionnement d'un moteur 4 temps
 
SciencesPo_Aix_InnovationPédagogique_Bilan.pdf
SciencesPo_Aix_InnovationPédagogique_Bilan.pdfSciencesPo_Aix_InnovationPédagogique_Bilan.pdf
SciencesPo_Aix_InnovationPédagogique_Bilan.pdf
 
Le Lean sur une ligne de production : Formation et mise en application directe
Le Lean sur une ligne de production : Formation et mise en application directeLe Lean sur une ligne de production : Formation et mise en application directe
Le Lean sur une ligne de production : Formation et mise en application directe
 
Cours SE Le système Linux : La ligne de commande bash - IG IPSET
Cours SE Le système Linux : La ligne de commande bash - IG IPSETCours SE Le système Linux : La ligne de commande bash - IG IPSET
Cours SE Le système Linux : La ligne de commande bash - IG IPSET
 

Cours python avancé

  • 1. Python avancé Pierre Poulain pierre.poulain@univ-paris-diderot.fr M2 BI – 09/2011
  • 2. À l’exception des illustrations et images dont les crédits sont indiqués à la fin du document et dont les droits appartiennent à leurs auteurs respectifs, le reste de ce cours est sous licence Creative Commons Paternité (CC-BY). http://creativecommons.org/licenses/by/2.0/fr/ PP Université Paris Diderot - Paris 7 2
  • 3. Menu 1 Introduction / rappels 6 Biopython 2 Bonnes pratiques 7 Programmation objet 3 Gestion des erreurs 8 Tkinter 4 Numpy 9 Subprocess 5 Rpy PP Université Paris Diderot - Paris 7 3
  • 4. Menu 1 Introduction / rappels 6 Biopython 2 Bonnes pratiques 7 Programmation objet 3 Gestion des erreurs 8 Tkinter 4 Numpy 9 Subprocess 5 Rpy PP Université Paris Diderot - Paris 7 4
  • 5. Python, langage : interprété à bytecode multi-plateforme orienté objet (classes) « tout est objet » PP Université Paris Diderot - Paris 7 5
  • 6. Python, langage : (2) « batteries included » nombreux modules fournis en standard (math, random, sys, os, re, urllib2, Tkinter) modules extérieurs (numpy, Biopython, rpy) une bibliothèque doit exister pour votre problème (sinon écrivez la) Objectif Tour d’horizon de quelques fonctionnalités avancées (modules, classes, astuces) PP Université Paris Diderot - Paris 7 6
  • 7. Menu 1 Introduction / rappels 6 Biopython 2 Bonnes pratiques 7 Programmation objet 3 Gestion des erreurs 8 Tkinter 4 Numpy 9 Subprocess 5 Rpy PP Université Paris Diderot - Paris 7 7
  • 8. Localisation Python et UTF-8 1 Dire où se trouve Python 2 Gérer les caractères accentués #! /usr/bin/env python # -*- coding: utf-8 -*- PP Université Paris Diderot - Paris 7 8
  • 9. Optimisation et itérations des boucles toto = range( 1000000 ) # methode 1 for i in range( len(toto) ): print toto[i] # methode 2 for ele in toto: print ele # methode 3 for i in xrange( len(toto) ): print toto[i] Quelle méthode est la plus rapide ? 1. for x in y 2. for z in xrange(len(y)) 3. for z in range(len(y)) (très lente) PP Université Paris Diderot - Paris 7 9
  • 10. Listes de compréhension List comprehensions Générer une liste à la volée à partir d’une boucle for [operation sur élément for élément in liste condition] Exemples : >>> toto = [1, 3, 6, 9] >>> [i**2 for i in toto] [1, 9, 36, 81] >>> [i**2 for i in toto if i>3] [36, 81] >>> seq = "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA >>> width = 60 >>> print "n".join([seq[i:i+width] for i in xrange(0, len(seq), width)]) AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAA PP Université Paris Diderot - Paris 7 10
  • 11. Menu 1 Introduction / rappels 6 Biopython 2 Bonnes pratiques 7 Programmation objet 3 Gestion des erreurs 8 Tkinter 4 Numpy 9 Subprocess 5 Rpy PP Université Paris Diderot - Paris 7 11
  • 12. Gestion des erreurs But Éviter le plantage d’un programme Python anticiper les erreurs et les intercepter PP Université Paris Diderot - Paris 7 12
  • 13. Exemple >>> nb = int(raw_input("Entrez un nombre: ")) Entrez un nombre: 23 >>> print nb 23 Mais si... >>> nb = int(raw_input("Entrez un nombre: ")) Entrez un nombre: ATCG Traceback (most recent call last): File "<stdin>", line 1, in <module> ValueError: invalid literal for int() with base 10: 'ATCG' int() ne peut pas convertir "ATCG" en entier. PP Université Paris Diderot - Paris 7 13
  • 14. Try / except >>> try: ... nb = int(raw_input("Entrez un nombre: ")) ... except: ... print "Vous n'avez pas entré un nombre !" ... Entrez un nombre: ATCG Vous n'avez pas entré un nombre ! try permet de « tenter » une instruction. En cas de problème, except prend la main. PP Université Paris Diderot - Paris 7 14
  • 15. Try / except et les fichiers >>> nom = "toto.pdb" >>> try: ... f = open(nom, "r") ... except: ... print "Impossible d'ouvrir le fichier", nom Fichier absent ou problème de droits en lecture © exception. PP Université Paris Diderot - Paris 7 15
  • 16. Typage des exceptions >>> try: ... nb = int(raw_input("Entrez un nombre: ")) ... except ValueError: ... print "Vous n'avez pas entre un nombre !" ... Entrez un nombre: ATCG Vous n'avez pas entre un nombre ! ValueError © problème de conversion (avec int()) RuntimeError, TypeError, IOError PP Université Paris Diderot - Paris 7 16
  • 17. Menu 1 Introduction / rappels 6 Biopython 2 Bonnes pratiques 7 Programmation objet 3 Gestion des erreurs 8 Tkinter 4 Numpy 9 Subprocess 5 Rpy PP Université Paris Diderot - Paris 7 17
  • 18. Numpy (Numerical Python) http://numpy.scipy.org Bibliothèque de base pour le calcul numérique objet de type array à n-dimensions (matrices) algèbre linéaire (de base) transformée de Fourier (de base) générateur de nombre aléatoire (avancé) graphiques © autre modules (rpy, matplotlib) PP Université Paris Diderot - Paris 7 18
  • 19. Objets de type array Chargement du module numpy import numpy Définition d’un vecteur vector1 = numpy.array([1,2,3,4]) vector1 array([1, 2, 3, 4]) Construction automatique d’un vecteur data = numpy.arange(5) data array([0, 1, 2, 3, 4]) numpy.arange() ∼ range() PP Université Paris Diderot - Paris 7 19
  • 20. Objets de type array (2) Opération vectorielle data = numpy.arange(5) data + 0.1 array([ 0.1, 1.1, 2.1, 3.1, 4.1]) PP Université Paris Diderot - Paris 7 20
  • 21. Redimensionnement v = numpy.arange(4) v array([0, 1, 2, 3]) numpy.reshape(v, (2,2)) array([[0, 1], [2, 3]]) array v doit avoir un nombre d’éléments compatibles avec la nouvelle matrice 2 x 2 w = numpy.arange(4) numpy.resize(w, (3,2)) array([[0, 1], [2, 3], [0, 1]]) array w peut contenir un nombre quelconque d’éléments PP Université Paris Diderot - Paris 7 21
  • 22. 01 Création d’une matrice de 0 numpy.zeros((3,3)) array([[ 0., 0., 0.], [ 0., 0., 0.], [ 0., 0., 0.]]) Création d’une matrice de 1 numpy.ones((2,2)) array([[ 1., 1.], [ 1., 1.]]) numpy.ones((2,2), int) array([[1, 1], [1, 1]]) PP Université Paris Diderot - Paris 7 22
  • 23. Dimensions mat = numpy.reshape(numpy.arange(81), (9,9)) numpy.shape(mat) (9, 9) print mat.shape (9, 9) PP Université Paris Diderot - Paris 7 23
  • 24. Extraction a = numpy.resize(numpy.arange(9), (3,3)) a array([[0, 1, 2], [3, 4, 5], [6, 7, 8]]) a [1,:] # 2e ligne array([3, 4, 5]) a [:,2] # 3e colonne array([2, 5, 8]) a [2,2] # élément de la 3e ligne et 3e colonne 8 PP Université Paris Diderot - Paris 7 24
  • 25. Algèbre linéaire a = numpy.array([[1,2], [3,4]]) a array([[1, 2], [3, 4]]) Multiplication de matrices numpy.dot(a, a) array([[ 7, 10], [15, 22]]) Inversion de matrice from numpy import linalg # importation du module d'algebre lineaire inv_a = linalg.inv(a) inv_a array([[-2. , 1. ], [ 1.5, -0.5]]) PP Université Paris Diderot - Paris 7 25
  • 26. Valeurs et vecteurs propres a = numpy.resize(numpy.arange(9), (3,3)) a array([[0, 1, 2], [3, 4, 5], [6, 7, 8]]) import numpy.linalg as linalg eig_val, eig_vec = linalg.eig(a) eig_val array([ 1.33484692e+01, -1.34846923e+00, -2.48477279e-16]) eig_vec array([[ 0.16476382, 0.79969966, 0.40824829], [ 0.50577448, 0.10420579, -0.81649658], [ 0.84678513, -0.59128809, 0.40824829]]) utile pour connaître les axes principaux d’inertie d’une molécule PP Université Paris Diderot - Paris 7 26
  • 27. Menu 1 Introduction / rappels 6 Biopython 2 Bonnes pratiques 7 Programmation objet 3 Gestion des erreurs 8 Tkinter 4 Numpy 9 Subprocess 5 Rpy PP Université Paris Diderot - Paris 7 27
  • 28. Rpy (R for Python) utilisation des fonctions de R dans Python http://rpy.sourceforge.net/ from rpy import r as R R.plot(range(10), main=Test RPy, xlab=x, ylab=y) PP Université Paris Diderot - Paris 7 28
  • 29. Exemple Nombre de chaque base pour la séquence ACGATCATAGCGAGCTACGTAGAA PP Université Paris Diderot - Paris 7 29
  • 30. Exemple # -*- coding: utf-8 -*- from rpy import r as R seq = ACGATCATAGCGAGCTACGTAGAA seq2 = list( seq ) R.png(rpy_test.png, width=800, height=800, pointsize=30) # tri des bases car unique() n'ordonne pas les données # alors que table() le fait seq3 = R.sort( seq2 ) # listes des bases présentes bases = R.unique( seq3 ) # effectif de chaque base effectifs = R.table( seq3 ) # dessin du barplot et sauvegarde de la position des abscisses coords = R.barplot( effectifs, ylab=nombre de bases) # ajout du texte pour l'axe des abscisses R.text(coords, -0.5, bases, xpd = True, cex = 1.2, font = 2 ) # fermeture du graphique R.dev_off() dev_off() PP Université Paris Diderot - Paris 7 30
  • 31. Menu 1 Introduction / rappels 6 Biopython 2 Bonnes pratiques 7 Programmation objet 3 Gestion des erreurs 8 Tkinter 4 Numpy 9 Subprocess 5 Rpy PP Université Paris Diderot - Paris 7 31
  • 32. Biopython http://biopython.org manipulations de séquences (ADN, ARN, protéine) interrogations de banques de données biologiques (ExPASy, Entrez [NCBI], SCOP) recherches BLAST alignements multiples (clustalw) lectures de fichiers PDB ... Très bon tutoriel à http://www.biopython.org/DIST/docs/ tutorial/Tutorial.html PP Université Paris Diderot - Paris 7 32
  • 33. Manipulation de séquences Définition d’un alphabet (ADN, ARN, protéine) from Bio.Alphabet import IUPAC # module Biopython s'appelle Bio # IUPAC = International Union of Pure and Applied Chemistry Définition d’un objet séquence my_dna_alphabet = IUPAC.unambiguous_dna from Bio.Seq import Seq my_seq = Seq('CATCCCTTCGATCGGGGCTATAGCTAGC',my_dna_alphabet) print my_seq CATCCCTTCGATCGGGGCTATAGCTAGC my_seq Seq('CATCCCTTCGATCGGGGCTATAGCTAGC', IUPACUnambiguousDNA()) PP Université Paris Diderot - Paris 7 33
  • 34. Manipulation de séquences (2) Propriétés des chaînes de caractères print my_seq[4:12] CCTTCGAT print len(my_seq) 28 new_seq = my_seq[0:5] new_seq Seq('CATCC', IUPACUnambiguousDNA()) my_seq + new_seq Seq('CATCCCTTCGATCGGGGCTATAGCTAGCCATCC', IUPACUnambiguousDNA()) PP Université Paris Diderot - Paris 7 34
  • 35. Interrogation d’Entrez I from Bio import Entrez # chargement du module # definition de l'e-mail, obligatoire pour eviter les abus Entrez.email = votremail@provider.fr PP Université Paris Diderot - Paris 7 35
  • 36. Interrogation d’Entrez II # requete dans la base de donnees pubmed # des termes small heat shock proteins ma_req = Entrez.esearch(db=pubmed, ... term=small heat shock proteins, retmax=50) # recuperation des resultats # sous la forme d'un dictionnaire mon_res = Entrez.read(ma_req) # clefs disponibles print(mon_res.keys()) [u'Count', u'RetMax', u'IdList', u'TranslationStack', u'TranslationSet', u'RetStart', u'QueryTranslation'] # liste des identifiants pubmed print(mon_res[IdList]) ['20679393', '20668846', '20668218', ...] PP Université Paris Diderot - Paris 7 36
  • 37. Interrogation d’Entrez III # requete sur un article en particulier requete = Entrez.esummary(db=pubmed, id='20668846') # lecture du resultat # sous forme d'une liste de dictionnaire res_parse = Entrez.read(requete) # clefs disponibles print(res_parse[0].keys()) ['DOI', 'Title', 'Source', 'PmcRefCount', 'Issue', ...] # affiche du titre res_parse[0][Title] 'Characterization of Xanthomonas campestris pv. campestris heat shock protein A (HspA), which possesses an intrinsic ability to reactivate inactivated proteins.' PP Université Paris Diderot - Paris 7 37
  • 38. En résumé Biopython puissant polyvalent la syntaxe change régulièrement le format des bases des données aussi... Exemple plus poussé pendant le TP. PP Université Paris Diderot - Paris 7 38
  • 39. Menu 1 Introduction / rappels 6 Biopython 2 Bonnes pratiques 7 Programmation objet 3 Gestion des erreurs 8 Tkinter 4 Numpy 9 Subprocess 5 Rpy PP Université Paris Diderot - Paris 7 39
  • 40. Programmation objet et classe Une minuscule introduction Une classe définit des objets qui sont des instances (∼ représentants) de cette classe. Les objets possèdent des attributs (∼ variables) et des méthodes (∼ fonctions) associés à cette classe. PP Université Paris Diderot - Paris 7 40
  • 41. Programmation objet et classe (2) PP Université Paris Diderot - Paris 7 41
  • 42. Quelques propriétés Encapsulation. Interface (attributs ou méthodes) « publique ». Possibilité d’interface « privée ». Polymorphisme. Transformation des opérateurs standards (*, +, /, -) suivant le contexte. Héritage mutliple. Création de sous-classes héritant des propriétés de la classe mère. Python © programmation objet implicite. PP Université Paris Diderot - Paris 7 42
  • 43. Exemple de classe Rectangle() class Rectangle: ceci est la classe Rectangle def __init__(self, long = 0.0, larg = 0.0, coul = blanc): initialisation d'un objet (constructeur) self.longueur = long self.largeur = larg self.couleur = coul def calcule_surface(self): calcule la surface return self.longueur * self.largeur def change_carre(self, cote): transforme un rectangle en carre self.longueur = cote self.largeur = cote self désigne l’objet lui-même et est obligatoire. PP Université Paris Diderot - Paris 7 43
  • 44. Utilisation de la classe Rectangle() # creation d'un objet Rectangle avec les parametres par defaut rect1 = Rectangle() # affichage des attributs print rect1.longueur, rect1.largeur, rect1.couleur 0.0 0.0 blanc # calcul de la surface print rect1.calcule_surface() 0.0 # on change le rectangle en carre rect1.change_carre(30) print rect1.calcule_surface() 900 # creation d'un objet Rectangle avec des parametres imposes rect2 = Rectangle(2, 3, rouge) print rect2.calcule_surface() 6 PP Université Paris Diderot - Paris 7 44
  • 45. Autres attributs redéfinissables __add__(self, other) opérateur + __mul__(self, number) opérateur * __del__(self) destructeur __len__(self) opérateur len (taille) __getslice__(self, low, high) tranchage etc. PP Université Paris Diderot - Paris 7 45
  • 46. Menu 1 Introduction / rappels 6 Biopython 2 Bonnes pratiques 7 Programmation objet 3 Gestion des erreurs 8 Tkinter 4 Numpy 9 Subprocess 5 Rpy PP Université Paris Diderot - Paris 7 46
  • 47. Tkinter Tk (Tool kit) ensemble de fonctionnalités graphiques Tkinter © interface Python pour Tk Développement de programmes Python avec des interfaces graphiques (Graphical User Interface, GUI). Fourni en standard dans Python (Windows, Linux, MacOS) PP Université Paris Diderot - Paris 7 47
  • 48. Exemple Tkinter from Tkinter import * racine = Tk() texte = Label(racine,text=Salut tout le monde !,fg=red) texte.pack() bouton = Button(racine, text=Quit, command=racine.destroy) bouton.pack() racine.mainloop() PP Université Paris Diderot - Paris 7 48
  • 49. Exemple Tkinter commenté I Importation du module Tkinter from Tkinter import * Création d’une instance d’une objet graphique (widget) Tk, ici une fenêtre racine = Tk() PP Université Paris Diderot - Paris 7 49
  • 50. Exemple Tkinter commenté II Création d’un objet de la classe Label() contenu dans racine. message = Label(racine, text=Salut tout le monde !, fg=red) Attributs de message : un texte et une couleur de texte. Accrochage du texte dans la fenêtre et ajustement de sa taille message.pack() PP Université Paris Diderot - Paris 7 50
  • 51. Exemple Tkinter commenté III Création d’un objet graphique de la classe Button() dans racine. bouton = Button(racine, text=Quit, command=racine.destroy) Attributs de bouton : un texte et une commande. Accrochage du texte dans la fenêtre et ajustement de sa taille bouton.pack() Démarrage du gestionnaire d’évènements (clavier, souris). Obligatoire dans un script mais pas dans l’interpréteur. racine.mainloop() PP Université Paris Diderot - Paris 7 51
  • 52. Menu 1 Introduction / rappels 6 Biopython 2 Bonnes pratiques 7 Programmation objet 3 Gestion des erreurs 8 Tkinter 4 Numpy 9 Subprocess 5 Rpy PP Université Paris Diderot - Paris 7 52
  • 53. subprocess gestion des entrées / sorties d’une commande Unix http://docs.python.org/library/subprocess.html PP Université Paris Diderot - Paris 7 53
  • 54. Sortie standard Code import subprocess command = ls proc = subprocess.Popen(command, shell=True, stdout=subprocess.PIPE) # contenu de la sortie standard out = proc.communicate()[0] print ===Sortie standard : print out # affiche le code de sortie (0 = OK) print ===Code de sortie : print proc.wait() PP Université Paris Diderot - Paris 7 54
  • 55. Sortie standard Résultat ===Sortie standard : cours_CGI_Python.aux cours_CGI_Python.log cours_CGI_Python.nav cours_CGI_Python.out cours_CGI_Python.pdf cours_CGI_Python.snm cours_CGI_Python.tex ===Code de sortie : 0 PP Université Paris Diderot - Paris 7 55
  • 56. Sortie et erreur standards Code import subprocess command = ls *.blabla proc = subprocess.Popen(command, shell = True, stdout = subprocess.PIPE, stderr = subprocess.PIPE) # contenu de la sortie standard # et de la sortie d'erreur standard (out, err) = proc.communicate() print ===Sortie standard : print out print ===Sortie d'erreur standard : print err # affiche le code de sortie (0 = OK) print ===Code de sortie : print proc.wait() PP Université Paris Diderot - Paris 7 56
  • 57. Sortie et erreur standards Résultat ===Sortie standard : ===Sortie d'erreur standard : ls: impossible d'accéder à *.blabla: Aucun fichier ou dossi ===Code de sortie : 2 PP Université Paris Diderot - Paris 7 57
  • 58. Entrée, sortie et erreur standards Code import subprocess command = wc -l data = sp|Q41560|HS16B_WHEAT 16.9 kDa class I heat shock protein MSIVRRTNVFDPFADLWADPFDTFRSIVPAISGGGSETAAFANARMDWKETPEAHVFKAD LPGVKKEEVKVEVEDGNVLVVSGERTKEKEDKNDKWHRVERSSGKFVRRFRLLEDAKVEE VKAGLENGVLTVTVPKAEVKKPEVKAIQISG proc = subprocess.Popen(command, shell = True, stdout = subprocess.PIPE, stderr = subprocess.PIPE, stdin = subprocess.PIPE) # contenu de la sortie standard # et de la sortie d'erreur standard (out, err) = proc.communicate(data) print ===Entree standard : print data print ===Sortie standard : print out print ===Sortie d'erreur standard : print err # affiche le code de sortie (0 = OK) print ===Code de sortie : print proc.wait() PP Université Paris Diderot - Paris 7 58
  • 59. Entrée, sortie et erreur standards Résultat ===Entree standard : sp|Q41560|HS16B_WHEAT 16.9 kDa class I heat shock protein MSIVRRTNVFDPFADLWADPFDTFRSIVPAISGGGSETAAFANARMDWKETPEAHVFKAD LPGVKKEEVKVEVEDGNVLVVSGERTKEKEDKNDKWHRVERSSGKFVRRFRLLEDAKVEE VKAGLENGVLTVTVPKAEVKKPEVKAIQISG ===Sortie standard : 4 ===Sortie d'erreur standard : ===Code de sortie : 0 PP Université Paris Diderot - Paris 7 59
  • 60. Références Cours de Python – Patrick Fuchs PP http://www.dsimb.inserm.fr/~fuchs/python/index.html Bonnes pratiques et astuces Python – David Larlet – BioloGeek http://www.biologeek.com/bonnes-pratiques,conferences,django,python,traduction/ bonnes-pratiques-et-astuces-python/ Python for Bioinformatics – Sebastian Bassi PP Université Paris Diderot - Paris 7 60
  • 61. Contributeurs Ce cours est basé sur un cours original de Patrick Fuchs. PP Université Paris Diderot - Paris 7 61
  • 62. Crédits graphiques Frank Stajano (Wikimedia Commons) PP Université Paris Diderot - Paris 7 62