Académique Documents
Professionnel Documents
Culture Documents
Python
Les Premiers Pas
….
Part I
S.DARRAGI
S.Darragi
Plan
2
• Introduction
• Les types de bases
• Les types élémentaires
• Les conteneurs : les séquences
• Les types mutables
• Les types non mutables
• Le langage Python
• Les Opérations élémentaires
• Affectation
• Entrée / Sortie
• Les structures conditionnelles
• Les structures itératives
• Les sous programmes
• Gestion des erreurs
S.Darragi
Introduction
3
S.Darragi
Les types élémentaires
5
S.Darragi
Les types élémentaires
6
S.Darragi
Les types élémentaires (suite)
7
S.Darragi
Les types élémentaires (suite)
11
Tuple
list
chaine Les
dictionnaires
Les ensembles
S.Darragi
Les conteneurs sous Python (suite):
Les séquences
14
S.Darragi
Les conteneurs sous Python (suite):
Les séquences
16
Exemple
>>> L=['p','a','p','a']
>>> sum(L)
sum(L)
TypeError: unsupported operand type(s) for +: 'int' and
'str‘
>>> nbr=[5,4,1,0,-1] Il existe 3 Types de séquences:
>>> sum(nbr) 9 1. Les listes
>>> max(nbr) 5 2. Les chaînes
>>> min(nbr) -1 3. Les tuples
>>> max(L)'p'
>>> min(L) 'a'
S.Darragi
Les séquences : Les listes
17
>>>L=L*2
>>>L
[1, 3, 5, 2, 1, 3, 5, 2]
>>>L=list(range(5))
>>> L
[0, 1, 2, 3, 4]
>>> L+[1]*4
[0, 1, 2, 3, 4, 1, 1, 1, 1]
>>> L [0, 1, 2, 3, 4]
S.Darragi
Les listes (suite)
20
S.Darragi
Liste -copie de liste (suite)
21
Pour recevoir une copie de liste indépendante, plusieurs manières
existent:
>>> L2=L[:] >>> L is L1; L is L2 ; L == L1;
>>> id(L),id(L1),id(L2) L==L2
(46713952, 46713952, 37856880) True
Ou encore False
>>>from copy import *
True
>>> L3=copy(L)
True
>>> id(L), id(L1),id(L2), id(L3),
(46713952, 46713952, 37856880, Ou encore
46752632) >>> L=[1,2,5]
Ou encore >>> L5=list(L)
>>>L4=deepcopy(L) >>> id(L), id(L5)
>>> L.append(5) (48330192, 53707160)
>>> L,L1,L2,L3,L4
([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 5, 5], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 5, 5], [0,
1, 2, 3, 4, 5, 6, 7, 8, 9, 5], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 5], [0, 1, 2, 3,
S.Darragi
Listes : Méthodes prédéfinies
22
>>> nbr=[17,38,10,25,72] >>> nbr[0]=11 #modifie l’elt d’indice 0
>>> nbr.sort() par 11
>>> nbr >>> nbr
[11, 72, 25, 17, 10]
[10, 17, 25, 38, 72] >>> nbr[1:3]=[14,17,2] #affectaion par
>>> nbr.append(12) #ajoute à la fin bloc
>>> nbr >>> nbr
[10, 17, 25, 38, 72, 12] [11, 14, 17, 2, 17, 10]
>>> nbr.reverse()#inverse les elts de L >>> nbr.pop()#supprime le dernier elt
10
>>> nbr >>> nbr.pop(2)#supprime l’elt d’indice 2
[12, 72, 38, 25, 17, 10] 17
>>> nbr.remove(38)#supprime la >>> nbr
première occurance de 38 s’il existe [11, 14, 2,17]
>>> nbr >>> nbr.extend([17,3,6])
[12, 72, 25, 17, 10] >>> nbr
[11, 14, 2,17, 17, 3, 6]
>>> nbr.index(17) >>> nbr.count(17)
3 2 S.Darragi
Listes : Méthodes prédéfinies
23
>>> nbr=[5,4,1,0,-1]
>>> nbr.insert(0,2)#insère 2 à la première position
>>> nbr
[2, 5, 4, 1, 0, -1]
>>>nbr.insert(-1,8) insère 8 à la postition -1 actuelle
>>> nbr
[2, 5, 4, 1, 0, 8, -1]
>>> nbr.insert(10,8) l’indice plus grand que la taille
insere à la fin
>>> nbr
[2, 5, 4, 1, 0, 8, -1, 8]
>>>
S.Darragi
Les séquences : Les chaînes de caractères
24
Définition: une chaine de caractère dans Python
représente une séquence de caractère unicode. La
classe de définition est la classe str,
Syntaxe
C’est une séquence de caractères entre simple ou
double côtes indexée, non modifiable !
Une chaîne de caractère suit le même principe
d’indexation que les listes
Exemple
>>> ch1='toto'
>>> type(ch1)
<class 'str'>
>>> ch_vide1='‘
>>>ch_vide1=‘’‘’
>>>ch_vide==ch_vide1
True
S.Darragi
Les chaînes de caractères (suite)
25
>>> ch="bonjour" >>> ch[3:]
>>> ch_vide="" 'jour'
>>> ch_n_vide=" " >>> ch[2:5]
>>> ch_vide==ch_n_vide 'njo'
>>> ch[::-1]
False
'ruojnob'
>>> ch[0]
Mais
'b'
>>> ch[0]='t'
>>> ch[-1] TypeError: 'str' object
'r' does not support item
>>> len(ch) assignment
7
>>> ch[:3]
'bon'
S.Darragi
Les chaînes de caractères (suite)
26
Opérateurs + et *
>>> ch='bon'
>>> ch1='jour'
>>> ch +ch1
'bonjour'
>>> ch2=ch +ch1
>>> ch2*3
'bonjourbonjourbonjour'
S.Darragi
Les chaînes de caractères (suite)
27
>>> dir(str)
['__add__',…… 'index', 'isalnum', 'isalpha', 'isdecimal',
'isdigit', … 'islower', 'isnumeric', 'isspace', 'istitle',
'isupper', 'join', 'ljust', 'lower', 'lstrip', 'maketrans',
'partition', 'replace', 'rfind', 'rindex', 'rjust', 'rpartition',
'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', 'strip',
'swapcase', 'title', 'translate', 'upper', 'zfill']
>>> help(str.isalpha)
Help on method_descriptor:
isalpha(...)
S.isalpha() -> bool
S.Darragi
Les chaînes de caractères
Quelques Méthodes définies pour les chaînes ……
A vous de
28 jouer !!!
>>>ch=’’TototiTi’’
• isupper() et islower() : retournent True si la chaîne ne contient
respectivement que des majuscules/ minuscules :
>>> ch.isupper()
False
• istitle() : retourne True si seule la première lettre de chaque mot de la
chaîne est en majuscule :
>>> ch.istitle()
False
• isalnum(), isalpha(), isdigit() et isspace() : retournent True si la chaîne
ne contient respectivement que des caractères alphanumériques,
alphabétiques, numériques ou que des espaces :
>>> ch.isalpha()
True
S.Darragi
Les chaines de caractères
(Méthodes suite)
29
>>> mot.upper() # le résultat est une nouvelle chaîne
'TOTOTITI'
>>> mot
'TotoTiTi'
>>> mot.lower()
'tototiti'
>>> mot=mot.upper()
>>> mot
'TOTOTITI‘
Autres Méthodes utiles
>>> ch='bonjour tout le monde \n'
>>> ch.strip()
'bonjour tout le monde'
>>> ch.split() ['bonjour', 'tout', 'le', 'monde']
S.Darragi
Les chaines de caractères
(Méthodes suite)
30
'papa'
>>> ch='/‘
>>> L=['p','a','p','a']
>>> ch.join(L)
'p/a/p/a'
>>>
S.Darragi
Les chaines de caractères
31
S.Darragi
Chaines (suite)
32
S.Darragi
Les séquences : Les tuples
33
Définition Un tuple (appelé également n-uplet) est une
collection ordonnée et non modifiable d’éléments
éventuellement hétérogènes.
Syntaxe
Éléments séparés par des virgules, et entourés de
parenthèses.
>>> t = 12345, 54321, ’salut!’
>>> t[0]
12345
>>> t
(12345, 54321, ’salut!’)
Les Tuples peuvent être imbriqués:
>>> u = t, (1, 2, 3, 4, 5)
>>> u
((12345, 54321, ’salut!’), (1, 2, 3, 4, 5))
S.Darragi
Les tuples (suite)
34
S.Darragi
Les dictionnaires
36
S.Darragi
Les dictionnaires (suite)
39
S.Darragi
Les dictionnaires parcours…
43
>>>
coef={'maths':8,'physique':6,'info':4,'STI':
4,'français':5,'anglais':3}
Parcours par cle
Parcours par cle,valeur
>>> for c in coef.keys():
>>> for cle,valeur in coef.items(): print(c)
print(cle,':', valeur)
Résultat affiché
Résultat affiché
info : 4
français : 5 info
anglais : 3 français
physique : 6 anglais
STI : 4
maths : 8 physique
STI
maths
S.Darragi
Création par compréhension zip et enumerate
44
>>> prenom=['sara','sonia','christian']
>>> age=[20,22,34]
>>> dictio={p:a for p,a in zip (prenom,age)}
>>> dictio
{'sonia': 22, 'sara': 20, 'christian': 34}
>>> ordre={a:b for a,b in enumerate(prenom)}
>>> ordre
{0: 'sara', 1: 'sonia', 2: 'christian'}
S.Darragi
Les ensembles
45
S.Darragi
Les ensembles (suite)
46
>>> E={1,1,5,5,1,2,4,5,1,2}
>>> E1=set((14,4,4,1,2,1,4)) >>> E={1,2,3}
>>> E >>> E1={1,5,2,8,3,9}
{1, 2, 4, 5} >>> E.issubset(E1)
>>> E1 True
{1, 2, 4, 14} >>>E.issuperset(E1)
True
>>> E.union(E1)
>>>E.clear()
{1, 2, 4, 5, 14}
>>>E
>>> E.intersection(E1)
{}
{1, 2, 4}
>>> E.difference(E1)
S.Darragi
Les ensembles (suite) Opérations equivalentes …
47
>>> e=set{1,2,3,'E','E','R','A',3,3,2,6}
>>> e1=set([1,2,3,'k','j',2,2,'L','A',3,3,2,6])
>>> type(e),type(e1)
<class 'set'><class 'set'>
>>> e|e1 #opération d'union
{'A', 1, 2, 3, 'E', 6, 'k', 'j', 'L', 'R'}
>>> e&e1 # opération d’intersection
{'A', 1, 2, 3, 6}
>>> e-e1 # opération de différence
{'R', 'E'}
>>> e^e1
{'E', 'k', 'j', 'L', 'R'}
S.Darragi
Les ensembles
48
S.Darragi
Les ensembles
49
S.Darragi
50
S.Darragi