Python Les Bases
Python Les Bases
Python Les Bases
Loc Gouarin
Laboratoire de mathmatiques d'Orsay
6 dcembre 2010
Loc Gouarin
Plan
1
Prsentation de Python
Les fonctions
Les chiers
Les classes
Les exceptions
Les modules
Ressources
Loc Gouarin
Prsentation de Python
Plan
1
Prsentation de Python
Les fonctions
Les chiers
Les classes
Les exceptions
Les modules
Ressources
Loc Gouarin
Prsentation de Python
Le langage Python
Loc Gouarin
Prsentation de Python
Compilation
Prsentation de Python
Et Python ?
Avantages :
interprteur permettant de tester n'importe quel petit bout de
code,
compilation transparentes,
Inconvnients :
peut tre lent.
0. gures tires du livre
Prsentation de Python
Jython
IronPython
PyPy
CLPython
Prsentation de Python
Loc Gouarin
Prsentation de Python
L'interprteur
Sous Linux
Loc Gouarin
Prsentation de Python
une commande,
-d : passe en mode debug.
Loc Gouarin
Prsentation de Python
bases de donnes
rseaux
Gui
reprsentation graphique
calcul scientique
...
Loc Gouarin
Prsentation de Python
Loc Gouarin
Plan
1
Prsentation de Python
Les fonctions
Les chiers
Les classes
Les exceptions
Les modules
Ressources
Loc Gouarin
-13
124
340282366920938463463374607431768211456
1.3
-4.7
1.23e-6
complexes :
3 + 4j, 3 + 4J
boolens :
True
False
Loc Gouarin
Oprations de base
aectation
>>> i = 3
# i vaut 3
>>> a, pi = True, 3.14159
>>> k = r = 2.15
Loc Gouarin
Oprations de base
Oprateurs addition, soustraction, multiplication et division
+, -, *, /, %, //
Oprateurs de comparaisons
==, is, !=, is not, >, >=, <, <=
Oprateurs bitwise
&, ^ , |, <<, >>
Oprateurs logiques
or, and, not
Loc Gouarin
les listes
les tuples
les dictionnaires
-2
-1
[:
:]
Loc Gouarin
Loc Gouarin
Petit apart
en python, tout est objet
dir permet de voir les objets et mthodes disponibles
help permet d'avoir une aide
type permet de connatre le type de l'objet
id permet d'avoir l'adresse d'un objet
eval permet d'valuer une chane de caractres
input et raw_input sont l'quivalent du scanf en C
Loc Gouarin
Petit apart
Ecriture d'un script python (test.py )
#!/usr/bin/env python
# -*- coding: utf-8 -*a = 2
a
print type(a), a
Excution
$ python test.py
<type 'int'> 2
Loc Gouarin
Initialisation
[], list(),
[1, 2, 3, 4, 5], ['point', 'triangle', 'quad'],
[1, 4, 'mesh', 4, 'triangle', ['point', 6]],
range(10), range(2, 10, 2)
Concatnation
>>>
[0,
>>>
>>>
[1,
Une liste est une squence comme pour les chanes de caractres.
Loc Gouarin
'est', 'bon']
'est', 'bon']
'est', 'bon']
'est', 'objet']
Les bases du langage Python
Loc Gouarin
Initialisation
(), tuple(),
(1,), 'a', 'b', 'c', 'd',
('a', 'b', 'c', 'd')
Concatnation
>>>
(1,
>>>
>>>
(1,
(1, 2)*3
2, 1, 2, 1, 2)
t1, t2 = (1, 2, 3), (4, 5)
t1 + t2
2, 3, 4, 5)
Initialisation
{}, dict(), {'point': 1, 'ligne': 2, 'triangle': 3}
Remarques
un dictionnaire n'est pas une squence
un dictionnaire est constitu de cls et de valeurs
on ne peut pas concatner un dictionnaire avec un autre
Ajout d'une cl ou modication d'une valeur
>>> dico['quad'] = 4
>>> dico
{'quad': 4, 'ligne': 2, 'triangle': 3, 'point': 1}
>>> dico['point'] = 3
{'quad': 4, 'ligne': 2, 'triangle': 3, 'point': 3}
Loc Gouarin
Loc Gouarin
Indentation
Plan
1
Prsentation de Python
Les fonctions
Les chiers
Les classes
Les exceptions
Les modules
Ressources
Loc Gouarin
Indentation
Un petit exemple
a = -150
if a<0:
print 'a est ngatif'
Ligne d'en-tte:
premire instruction du bloc
...
dernire instruction du bloc
Loc Gouarin
Indentation
Indentation gnrale
Fonctionnement par blocs
Loc Gouarin
Indentation
Cas2
>>> l = [1,
...
2]
>>> d = { 1:1,
...
2:2}
>>> b = 2*(5 +
...
5*2)
Loc Gouarin
Indentation
Format gnral
if <test1>:
<blocs d'instructions 1>
elif <test2>:
<blocs d'instructions 2>
else:
<blocs d'instructions 3>
Loc Gouarin
Indentation
Exemple 1
a = 10.
if a > 0:
print 'a est
if a >= 10:
print 'a
else:
print 'a
a += 1
elif a is not 0:
print 'a est
else:
print 'a est
strictement positif'
est un nombre'
est un chiffre'
strictement ngatif'
nul'
Loc Gouarin
Indentation
Exemple 2
L = [1, 3, 6, 8]
if 9 in L:
print '9 est dans la liste L'
else:
L.append(9)
Loc Gouarin
Indentation
Format gnral
while <test1>:
<blocs d'instructions 1>
if <test2>: break
if <test3>: continue
else:
<blocs d'instructions 2>
Indentation
Exemples
boucle innie
while 1:
pass
y est-il premier ?
x = y / 2
while x > 1:
if y % x == 0:
print y, 'est facteur de', x
break
x = x-1
else:
print y, 'est premier'
Loc Gouarin
Indentation
Format gnral
Loc Gouarin
Indentation
Exemples :
sum = 0
for i in [1, 2, 3, 4]:
sum += i
s = 'bonjour'
for c in s:
print c,
prod = 1
for p in range(1, 10):
prod *= p
L = [ x + 10 for x in range(10)]
Remarque
Pour un grand nombre d'lments, on prfrera utiliser xrange
plutt que range.
Loc Gouarin
Indentation
Dnition
Loc Gouarin
Indentation
Exemples
Utilisation de zip
L1 = [1, 2, 3]
L2 = [4, 5, 6]
for (x, y) in zip(L1, L2):
print x, y, '--', x + y
Utilisation de map
S = '0123456789'
print map(int, S)
Loc Gouarin
Indentation
Autre exemple
S1 = 'abc'
S2 = 'xyz123'
print zip(S1, S2)
print map(None, S1, S2)
Loc Gouarin
Les fonctions
Fonctions de base
lambda
Plan
1
Prsentation de Python
Les fonctions
Les chiers
Les classes
Les exceptions
Les modules
Ressources
Loc Gouarin
Les fonctions
Fonctions de base
lambda
Dnition
Loc Gouarin
Les fonctions
Fonctions de base
lambda
Exemples
Fonction sans paramtres
def table7():
n = 1
while n < 11:
print n*7,
n += 1
Remarque
Une fonction qui n'a pas de return renvoie par dfaut None.
Loc Gouarin
Les fonctions
Fonctions de base
lambda
Exemples
Loc Gouarin
Les fonctions
Fonctions de base
lambda
Exemples
Fonction avec plusieurs paramtres
def table(base, debut=0, fin=11):
print 'Fragment de la table de multiplication par'\
, base, ':'
n = debut
l = []
while n < fin:
print n*base,
l.append(n*base)
n += 1
return l
Loc Gouarin
Les fonctions
Fonctions de base
lambda
Loc Gouarin
Les fonctions
Fonctions de base
lambda
lambda
Dnition
lambda argument1,... argumentN : expression utilisant les arguments
Exemple
f = lambda x, i : x**i
f(2, 4)
Loc Gouarin
Les chiers
Cration
Les mthodes
Plan
1
Prsentation de Python
Les fonctions
Les chiers
Les classes
Les exceptions
Les modules
Ressources
Loc Gouarin
Les chiers
Cration
Les mthodes
Loc Gouarin
Les chiers
Cration
Les mthodes
Les classes
Plan
1
Prsentation de Python
Les fonctions
Les chiers
Les classes
Les exceptions
Les modules
Ressources
Loc Gouarin
Les classes
Dnition
class <nom_classe>(superclass,...):
donnee = valeur
def methode(self,...):
self.membre = valeur
Objet classe
admet 2 types d'oprations :
rfrenciation des attributs
instanciation
Loc Gouarin
Les classes
Loc Gouarin
Les classes
Exemple
class MaClasse:
"Une classe simple pour exemple"
i = 12345
def f(self):
return 'bonjour'
Loc Gouarin
Les classes
Instance
utilise la notation d'appel de fonction
renvoie une instance de la classe
Exemple
x = MaClasse()
Loc Gouarin
Les classes
Initialisation
dans le cas prcdent, cration d'un objet vide
__init__ : fonction permettant d'initialiser la classe
Exemple
>>> class Complexe:
...
def __init__(self, reel, imag):
...
self.r = reel
...
self.i = imag
...
>>> x = Complexe(3.0, -4.5)
>>> x.r, x.i
(3.0, -4.5)
Loc Gouarin
Les classes
Les classes
>>> v1 = vecteur(1, 2)
>>> v2 = vecteur(4.1, 3.4, 1.)
>>> v3 = v1 + v2
>>> print v3
( 5.1 )
( 5.4 )
( 1.0 )
Loc Gouarin
Les exceptions
Plan
1
Prsentation de Python
Les fonctions
Les chiers
Les classes
Les exceptions
Les modules
Ressources
Loc Gouarin
Les exceptions
Dnition
>>> 1/0
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ZeroDivisionError: integer division or modulo by zero
>>> '2' + 2
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: cannot concatenate 'str' and 'int' objects
Loc Gouarin
Les exceptions
Format gnral
try:
<blocs d'instructions>
except <nom1>:
<blocs d'instructions>
except <nom2>, <donnee>:
<blocs d'instructions>
except (nom3, nom4):
<blocs d'instructions>
except:
<blocs d'instructions>
else:
<blocs d'instructions>
finally:
<blocs d'instructions>
Loc Gouarin
Les exceptions
Exemples
def division(x, y):
try:
resultat = x / y
except ZeroDivisionError:
print "division par zero!"
else:
print "le resultat est", resultat
finally:
print "execution de finally"
Loc Gouarin
Les exceptions
Exemples
>>> division(2, 1)
le resultat est 2
execution de finally
>>> division(2, 0)
division par zero!
execution de finally
>>> division("2", "1")
execution de finally
Traceback (most recent call last):
File "<stdin>", line 1, in ?
File "<stdin>", line 3, in division
TypeError: unsupported operand type(s) for /: 'str' and 'str
Loc Gouarin
Les exceptions
>>> try:
...
raise ZeroDivisionError
... except ZeroDivisionError:
...
print 'division par zero !'
...
division par zero !
Loc Gouarin
Les exceptions
class MonErreur(Exception):
def __init__(self, valeur):
self.valeur = valeur
def __str__(self):
return repr(self.valeur)
try:
raise MonErreur(2*2)
except MonErreur, valeur:
print ''Mon exception s'est produite:'', valeur
exception s'est produite: 4
Loc Gouarin
Construction et utilisation
Recherche
Les modules
Plan
1
Prsentation de Python
Les fonctions
Les chiers
Les classes
Les exceptions
Les modules
Ressources
Loc Gouarin
Construction et utilisation
Recherche
Les modules
Exemple : bo.py
# Module nombres de Fibonacci
def print_fib(n): # crit la srie de Fibonacci jusqu' n
a, b = 0, 1
while b < n:
print b,
a, b = b, a+b
print
def list_fib(n): # retourne la srie de Fibonacci jusqu' n
result, a, b = [], 0, 1
while b < n:
result.append(b)
a, b = b, a+b
return result
Loc Gouarin
Construction et utilisation
Recherche
Les modules
Loc Gouarin
Construction et utilisation
Recherche
Les modules
L'importation
Les direntes manires d'importer un module
import bo
import bo as f
from bo import print_b, list_b
from bo import * (importe tous les noms sauf variables et
fonctions prives)
Remarque : En Python, les variables ou les fonctions prives
commencent par _.
Loc Gouarin
Construction et utilisation
Recherche
Les modules
L'importation
Complments sur import
import dnie explicitement certains attributs du module :
__dict__ : dictionnaire utilis par le module pour l'espace
de noms des attributs
__name__ : nom du module
__le__ : chier du module
__doc__ : documentation du module
Loc Gouarin
Construction et utilisation
Recherche
Les modules
L'importation
Remarques
lors de l'excution d'un programme le module est import
qu'une seule fois
possibilit de le recharger : reload(M) si utilisation de import M
Attention : from M import A
reload(M) n'aura aucune incidence sur l'attribut A du module
M
Loc Gouarin
Construction et utilisation
Recherche
Les modules
Rsultat
$ python fibo.py
1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987
[1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89]
Loc Gouarin
Construction et utilisation
Recherche
Les modules
Loc Gouarin
Construction et utilisation
Recherche
Les modules
Loc Gouarin
Construction et utilisation
Recherche
Les modules
Construction et utilisation
Recherche
Les modules
Le chier __init__.py
Loc Gouarin
Construction et utilisation
Recherche
Les modules
Le chier __init__.py
Exemple monModule/sous_module2/__init__.py
__all__ = ["fichier2_1", "fichier2_2"]
Uitlisation
Construction et utilisation
Recherche
Les modules
Loc Gouarin
Construction et utilisation
Recherche
Les modules
Loc Gouarin
Construction et utilisation
Recherche
Les modules
sys.path
donne le python path o sont recherchs les modules lors de
l'utilisation d'import
sys.path est une liste
pour ajouter un lment : sys.path.append('...')
le premier lment est le rpertoire courant
sys.exit
sys.exit permet de quitter un script python.
Loc Gouarin
Construction et utilisation
Recherche
Les modules
Prsentation du module os
Loc Gouarin
Construction et utilisation
Recherche
Les modules
os.name
Loc Gouarin
Construction et utilisation
Recherche
Les modules
Loc Gouarin
Construction et utilisation
Recherche
Les modules
Loc Gouarin
Construction et utilisation
Recherche
Les modules
Prsentation de disutils
setup.py
from distutils.core import setup
setup(name = 'monmodule',
version = '1.0',
py_modules = ['monfichier'],
)
Loc Gouarin
Construction et utilisation
Recherche
Les modules
Construction du module
Loc Gouarin
Construction et utilisation
Recherche
Les modules
Installation du module
$ python setup.py install
C:\Python
/usr/local/lib/pythonX.Y/site-packages
Unix (pure) :
Unix (non-pure) :
/usr/local/lib/pythonX.Y/site-packages
Loc Gouarin
Construction et utilisation
Recherche
Les modules
Installation du module
Du cot dveloppeur
$ python setup.py install --home=<dir>
Loc Gouarin
Ressources
Plan
1
Prsentation de Python
Les fonctions
Les chiers
Les classes
Les exceptions
Les modules
Ressources
Loc Gouarin
Ressources
Ressources gnrales
Loc Gouarin
Ressources
Loc Gouarin