Académique Documents
Professionnel Documents
Culture Documents
Cours 1 Python 2015 PDF
Cours 1 Python 2015 PDF
2
Introduction
3
Introduction
Administration systme
Applications Web
Extension ou scriptage de
C++/C(cPython)/Java(JyThon)/Net(IronPython)
Interfaces graphiques : usage interactif
Remplacement environnements calcul (Matlab,
IDL, )
4
Introduction
Forces :
Typage dynamique
Langage de script
Clart, compacit, portabilit (multiplateforme, moins de
maintenance, 5 10 fois moins de ligne de code que
C/C++/Fortran/)
Vitesse de dveloppement
Erreurs facilement reprables : pas de pointeurs, pile dappel des
fonctions
Pas de compilation : une seule erreur visible mais reste du code
tourne => robustesse du code
Grande communaut
Faiblesses
Lenteur lexcution
Pas de binaire compil en natif (.pyc)
Peu doptimisation de la part de linterprteur
Pas de vrification statique du typage
Pas de multithreading (mais librairie multiprocessing)
Addiction trs facile
5
Introduction
Peu de ponctuation
Pas de point virgule ";" la ligne
Tabulations/4 espaces significatifs crire un joli
code :
if ($toto==1) then { if toto==1:
print coucou; print coucou
result=2;} result=2
else {result=3;} else :
result=3
En interactif :
~>python
>>> commandes
Rappel de commandes (+sessions prcdentes)
Une instruction par ligne
# pour commenter jusqu la fin de la ligne
Pour sortir de python : Ctrl+d
Scripts avec excution dun fichier (extension .py)
python script.py
6
Script et langage Python
7
Script et langage Python
9
Script et langage Python
10
CERTAINES fonctions basiques ne figurent pas dans les instructions de
python, mais sont disponibles dans les bibliothques.
1Systme 3. Chanes
3.1 string (chanes) 5. Sauvegarde des
1.1 sys
3.2 unicode (chanes) donnes
1.2 time
3.3 re (expressions 5.1 (c)pickle
1.3 os et os.path
rgulires) 5.2 anydbm
2. Nombres
3.4 curses (affichage 5.3 shelve
2.1 (c)math (trigo, log)
console) 6. Internet
2.2 random (hasard)
4. Collections 6.1 urllib (tlchargement
2.3 decimal
4.1 deque )
4.2 Counter
4.3 OrderedDict
11
Les fonctions spcialises ont t regroupes dans des modules.
import module charge un module appel module.py
module.methode() la mthode doit alors tre prfixe du nom du
module lors de chaque utilisation.
import module as alias permet d'utiliser un alias plus explicite ou
plus court:
>>> import math as M
>>> print (M.pi ) # au lieu de 'print math.pi'
from module import methode charge une mthode prcise du
module, qui ne devra plus tre prfixe
from module import * charge toutes les mthode d'un module, qui
ne devront donc pas tre prfixes.
Attention aux synonymes, comme os.open() et open(), qui ne
requirent pas les mmes paramtres.
12
math :
sqrt
Trigonomtrie et inverse
Exponentielle et logarithme
Arrondis
Constantes e et (pi)
>>import math
>>math.fonction(argument)
ou from math import fonction et fonction(argument)
numpy : applications scientifiques
Tableau : numpy.array()
Matrices : numpy.matrix()
Manipulations de ces objets :
Redimensionner
Concatner
matplotlib
Visualisation 2D
13
Script et langae Python
14
dir() liste les modules chargs
dir(module) liste les mthodes et constantes
d'un module charg
module.methode.__doc__ documente la
mthode d'un module charg
print module.__file__ renvoie la localisation
du module sur votre systme
help(module) renvoie des informations sur les
mthodes d'un module
help(module.methode) renvoie des
informations sur une mthode particulire
15
Basiques
Boolens (True ou False)
Numriques
Chaines de caractres
Autres
Squences
(tuple, listes, en plus des chanes de caractres)
Dictionnaires
Ensembles (sets)
Fonctions et mthodes
Classes
Pour connatre le type d'une variable v : type(v)
16
int (entier long par dfaut) : 3,4
( taille max dfinie par la variable [-sys.maxint -1, sys.maxint])
long, entier long (prcision illimite)
float, flottant (bas sur double c++) : 3.13e10, 0.12
complex, nombres complexes : 3.2+2.5j
Opration Rsultat
pow(x,y) x puissance y
divmod(x,y) La paire (x//x,x%y)
c.conjugate() Le conjugu de c (si c )
float(x) Conversion de x en flottant
long(x) Conversion de x en entier long
int(x) Conversion de x en entier
str(x) Conversion de x en chane de caractre
17
Opration Rsultat
abs(x) Norme de x
-x Oppos de x
x%y Reste de la division entire de x par y
x/y Division de x par y
x // y Division entire de x par y
x*y Produit de x et y
xy Diffrence de x et y
x+y Somme de x et y
x ** y x puissance y
18
Opration Rsultat
x<y, x<=y x infrieur (ou gal) y
x>y, x>=y x suprieur (ou gal) y
x == y x gal? y (valeurs)
x is y Mmes objets ?
x <> y, x != y x diffrent de y
x or y, x and y OU et ET logiques
x|y x ou y
x&y x et y
x^ y x ou exclusif y
~x Complment 2 de x
x << y Dcale x de y bits gauche
x >> y Dcale x de y bits droite
19
2 familles :
Non modifiables :
Chaines de caractres on ne peut pas modifier le contenu d'une chaine ou
d'un n-uplet en accdant un lment par son indice
N-uplets (tuples)
Modifiables : listes
Indexation
a=tapis
a[0]=t squences avec indice 1er 0
a[-1]=s -1 dernier lment de la srie
a[2:4]=pi tranche i, j commence au ime fini au kme-1
Copie dune chaine ou squence avec [:]
Squence en pas : a[dbut:fin:pas]
20
Oprations sur les squences
modifiables et non modifiables
Opration Rsultat
x in s True si x s, False sinon
x not in s True si x s, False sinon
s+t Concatnation de s et t
s * n ou n * s Concatnation de s, n fois
s[i] ime lment de s
s[i:j] Tranche entre i et j dans s
len(s) Longueur de s
min(s) Plus petit lment de s
max(s) Plus grand lment de s
21
Squences non modifiables
Dlimitation par des apostrophes, guillemets simples
ou triples :
formation python
Lobjectif
Lobjectif de cette formation python est
Caractres spciaux :\n, \t, \b
Triples guillemets permettent le retour la ligne dans
les chaines : documentation de code
Opration Rsultat
c in s True si caractre c est dans s
unicode : u'blabla'
<, >, ==, Comparaisons alphanumriques rawstring : r'blabla'
!=
zip(a,b) Colle chaines a et b
22
On peut classer les mthodes en plusieurs
catgories :
Gestion des espaces
Gestion des majuscules et minuscules
Test de la nature dune chaine
Recherche et remplacement
Dcoupage et collage de chanes
Formatage
Une nouvelle chaine est cre et renvoye par
les mthodes
L'appel une mthode ne modifie pas la
chaine en elle-mme
23
Mthode Effet
strip() Supprime les espaces en dbut et fin de chaine
rstrip() Supprime les espaces en fin de chaine
lstrip() Supprime les espaces en dbut de chaine
rjust() Justifie le texte droite pour la largeur demande
ljust(width) Justifie le texte gauche pour la largeur
demande
center(width) Centre le texte pour la largeur demande
isspace() Renvoie True sil ny a que des espaces
expandtabs(tabsize) Remplace les tabulations par des espaces
24
Mthode Effet
upper() Remplace les minuscules par des majuscules
lower() Remplace les majuscules par des minuscules
capitalize() Passe la 1re lettre de la chaine en majuscule et les autres
en minuscules
title() Formate comme un titre (1re lettre de chaque mot en
majuscule, les suivantes en minuscules)
swapcase() Inverse les majuscules et minuscules
25
Mthode Effet
startswith(prefix) True si la chaine commence par prefix
endswith(prefix) True si la chaine se termine par prefix
isupper() True si la chaine ne contient que des majuscules
islower() True si la chaine ne contient que des minuscules
istitle() True si la chaine est formate comme un titre
isdigit() True si la chaine ne contient que des caractres
numriques
isalpha() True si la chaine ne contient que des caractres
alphabtiques
isalnum() True si la chaine ne contient que des caractres
alphanumriques
26
Types de donnes standards : les chaines de caractres
Mthode Effet
index(sub) Renvoie lindex de la 1re occurrence de la
chaine sub, exception si pas trouve
rindex() Idem pour la dernire occurrence
find(sub) Comme index mais renvoie -1 si la chaine nest
pas trouve
rfind() Idem pour la dernire occurrence
count(sub) Retourne le nbr doccurrence de la sous-chaine
replace(old, new [,max]) Remplace la sous-chaine old par new, au plus
max fois (par dfaut, remplace toutes les
occurrences)
translate(table Supprime les caractres figurant dans
[,deletechars]) deletechar et remplace tous les autres par leur
correspondance dans table
27
Types de donnes standards : les chaines de caractres
Mthode Effet
split([sep[,max]) Cre une liste de chaine en dcoupant la chane
suivant sep au plus max fois. Par dfaut split
utilise les espaces, tabulations les sauts de ligne
comme sparateur
splitlines([keepend]) Cre une liste en dcoupant la chaine suivant les
sauts de lignes. Ces sauts de ligne sont
conservs si keepend est True
join(list) Concatne tous les lments de list en utilisant
la chaine comme jointure. Tous les lments de
la liste doivent tre des chaines de caractres.
28
Types de donnes standards : les chaines de caractres
Flag Signification
0 Chaine remplie de 0 gauche
+ Mettre un + devant les nombres positifs
Mettre un espace devant les nombres positifs
# Utiliser le format python pour notations
hexadcimales et octales
30
Types de donnes standards : N-uplets et listes
31
Types de donnes standards : N-uplets et listes
Opration Rsultat
32
Types de donnes standards : N-uplets et listes
Mthode Rsultat
append(x) Ajoute x en fin de liste
insert(i,x) Ajoute x lindex i
pop(i) Retourne et supprime llment dindex i ou le dernier
si i non prcis
remove(x) Supprime le 1er lment de valeur x
count(x) Retourne le nombre doccurrences de x
index(x) Retourne lindex du 1er lment de valeur x
reverse() Renverse la liste
sort([func]) Trie la liste. Une fonction de comparaison peut tre
donne
33
Types de donnes standards : N-uplets et listes
34
Types de donnes standards : les dictionnaires
Mthode Effet
keys() Renvoie la liste des clefs du dictionnaires
values() Renvoie la liste des valeurs du dictionnaires
items() Renvoie la liste des couples (clefs:valeur) du
dictionnaires
has_key() Vrai si existe valeur associe la clef k
get(k[,default]) Retourne la valeur associe la clef k ou default si
pas de valeur
clear() Vide le dictionnaire
copy() Retourne une copie de surface du dictionnaire
update(dict) Met jour le dictionnaire partir dun autre
dictionnaire
36
Types de donnes standards : les chaines de caractres
37
Types de donnes standards : les dictionnaires
38
Types de donnes standard : les sets
Mthode Effet
add(elt) Ajoute un lment lensemble
remove(elt) Retire un lment de lensemble
pop() Retire un lment au hasard de lensemble et le renvoie
union(s) Renvoie lunion de lensemble original et de s
intersection(s) Renvoie lintersection de lensemble original et de s
difference(s) Renvoie la diffrence entre lensemble original et s
issubset(s) Renvoie True si lensemble original est un sous
ensemble de s, False sinon
issuperset(s) Renvoie True si lensemble original contient, False sinon
s = s1.union(s2) s = s1 + s2
s1.update(s2) s1 |= s2
s = s1.intersection(s2) s = s1 & s2
S1.intersection_update(s2) s1 &= s2
s = s1.difference(s2) s = s1 - s2
s1.difference_update(s2) s1 -= s2
40
Structures de contrle
41
Structures de contrle
42
Structures de contrle
liste=["janv","fev","mars",]
for i,mois in enumerate(liste):
i est l'indice de l'lment
mois est la valeur de l'lment
44
Structures de contrle
45