Académique Documents
Professionnel Documents
Culture Documents
Types de Données Python-Part2
Types de Données Python-Part2
En Python, le type de données numérique représente les données qui ont une valeur
numérique.
§ Entiers – Elle est représentée par la classe int. Il contient des nombres entiers positifs
ou négatifs (sans fraction ni décimale).
§ Float – Elle leur est représentée par la classe float. C’est un nombre réel avec une
représentation en virgule flottante. Il est spécifié par un point décimal.
§ Nombres complexes – Il est représenté par une classe complexe. Il est spécifié
comme (partie réelle) + (partie imaginaire) j . Par exemple – 2 + 3j
>>>a = 5
>>>print("Type of a: ", type(a))
<class 'int'>
>>>b = 5.0
>>>print("\nType of b: ", type(b))
<classe 'float'>
>>>c = 2 + 4j
>>>print("\nType of c: ", type(c))
<classe 'complexe'>
Type de séquence
Chaîne
Une chaîne est une collection d’un ou plusieurs caractères placés entre guillemets.
un caractère est une chaîne de longueur un. Il est représenté par str classe.
Les chaines sont des objets non mutables (non modifiables).
SIHAM YAQINE 1
Exemples :
>>>x = "Hello World"
>>>print(x)
Hello World
>>>z = 'I\'m fine' # Pour faire figurer des apostrophes dans une chaîne on utilise \
>>print(z)
I'm fine
En Python, les caractères individuels d’une chaîne sont accessibles en utilisant la méthode
d’indexation
SIHAM YAQINE 2
Exemples : Accéder aux caractères
>>>String1 = "InfraDigitalA"
>>>print("Initial String: ")
>>>print(String1)
InfraDigital
>>>print("\nFirst character of String is: ")
>>>print(String1[0])
I
>>>print("\nLast character of String is: ")
>>>print(String1[-1])
A
Sous Python, les chaînes de caractères sont des objets. On peut donc effectuer de nombreux
traitements dessus en utilisant des méthodes appropriées.
La méthode .split()
Elle découpe une chaîne de caractères en plusieurs éléments appelés champs, en utilisant
comme séparateur.
SIHAM YAQINE 3
La méthode .find(value, start, end)
value La valeur à chercher
start Optionnel. La valeur où on commence la recherche. Par défaut 0
end Optionnel. La valeur où on termine la recherche. Par défaut la fin de la chîne.
Elle recherche une chaîne de caractères passée en argument :
§ Si l’élément recherché est trouvé, alors l’indice du début de l’élément dans la chaîne
de caractères est renvoyé. Si l’élément n’est pas trouvé, alors la valeur -1 est
renvoyée.
§ Si l’élément recherché est trouvé plusieurs fois, seul l’indice de la première
occurrence est renvoyé :
SIHAM YAQINE 4
>>>str = "Alex Alex Alex Bob"
>>>res = str.replace("Alex", "Emily", 2)
>>>print(res)
Emily Emily Alex Bob
Exemples:
SIHAM YAQINE 5
Les Listes
• C’est une structure de données mutable qui permet de stocker une séquence d’éléments
hétérogènes.
• Les éléments d’une liste sont indicés par des entiers à partir de 0
• L’accès à un élément peut aussi se faire en parant de la fin, en faisant figurer le signe moins
(-) devant l’indice
Syntaxe :
[Var1, Var2, Var3, ….]
Exemples :
>>>lst = [1, 2, 'abc', 'def', [4, 5]] #Créer une liste avec différents types d'éléments.
>>> type(lst)
List
>>> type(lst[2])
Str
>>>lst[0]
1
>>>lst[-1]
[4, 5]
lorsque l’on définit une séquence d’éléments avec liste[début:fin], cela désigne l’ensemble
contigu d’éléments d’indices : début ≤ indice ≤ fin-1 , ce qui correspond à un nombre
d’éléments égal à fin – début.
Exemple :
>>>lst[1 :3]
[2, ‘abc’]
>>> lst[0 :2]
[1, 2]
>>>lst[2: ]
[]
• Un élément à la fois :
o Liste.append(obj)
# ajoute obj
à la fin de Liste.
o List.insert(i ; obj)
# ajoute obj
à la position i dans
Liste.
• Plusieurs éléments à la
fois :
o À la fin avec : Liste.extend([elem….]) ou liste+=[elem...]
o Au début avec : liste[:0]=[elem...]
SIHAM YAQINE 6
Exemples :
>>>lst = [1, 2, 'abc', 'def', [4, 5]]
>>>lst.append(9) # ajoute 9 à la fin de la liste
>>>lst
[1, 2, ‘abc’, ‘def’, [4, 5], 9]
>>> lst += [‘A’] # ajoute ‘A’ à la fin de la liste, c’est une autre méthode
>>>lst
[1, 2, ‘abc’, ‘def’, [4, 5], 9, ‘A’]
>>>lst.insert(o, ‘x’) # ajoute ‘x’ à la première position
>>>lst
[‘x’, 1, 2, ‘abc’, ‘def’, [4, 5], 9, ‘A’]
Exemples :
>>>L
[1,2,3,’a’, ‘b’, ‘I’, ‘D’, ‘a’, ‘coucou’, 4]
>>>L.remove('a') # supprime le 1er élément = ‘a’
[1,2,3, ‘b’, ‘I’, ‘D’, ‘a’, ‘coucou’, 4]
>>>L.remove('a') # supprime l’autre élément = ‘a’
[1,2,3, ‘b’, ‘I’, ‘D’, ‘coucou’, 4]
>>>.pop() # supprime le dernier élément = 4
4
>>>L
[1,2,3, ‘b’, ‘I’, ‘D’, ‘coucou’]
>>>L.pop(1) # supprime l’élément de la position 1 = 2
2
>>>L
[1, 3, ‘b’, ‘I’, ‘D’, ‘coucou’]
SIHAM YAQINE 7
>>> Lst=[1,2,3,4,5,6]
>>> del Lst[4] # supprime l’élément de la position 4, équivalent à L.pop(4)
>>>Lst
[1,2,3,4,6]
>>> del Lst[2:4] # supprime plusieurs éléments, de la position 2 et 3
>>>Lst
[1,2,6]
>>>del(Lst[1:]) # supprime les éléments de 1 à Fin
>>>Lst
[1]
>>>L=[1,8,3,4,9,5,2]
>>>L.sort()
>>>L
[1,2,3,4,5,8,9]
>>>L.reverse()
>>>L
[9,8,5,4,3,2,1]
SIHAM YAQINE 8
Création de liste - Par énumération
Par énumération en utilisant la méthode list(iterable).
Exemple3 : range avec trois paramètres, on lui donne un start, un stop et un step.
for i in range(3, 10, 2):
print(i)
Qui affichera à l’écran …
3
5
7
9
Exemples :
>>> L=list(range(0,11)) # Création de la liste en utilisantlist( range())
>>>L
[0,1,2,3,4,5,6,7,8,9,10]
SIHAM YAQINE 9
Création de liste – Par compréhension
La création de liste par compréhension permet de parcourir un objet itérable en renvoyant
une liste.
Exemples :
>>> L=[i*2 for i in range(0,11)]
>>>L
[0,2,4,6,8,10,12,14,16,18,20]
Parcourir de liste
Exemple1 :
L=[1, ’a’, ’coucou’,4]
for i in range(len(L)):
print(L[i])
Affichage :
1
’a’
’coucou’
4
Exemple2 :
L=[1, ’a’, ’coucou’,4]
for i in L:
print(i)
Affichage :
1
’a’
’coucou’
4
SIHAM YAQINE 10
Mutabilité
Exemple1 :
>>>a=1
>>>b=a
>>>a=2 # on modifie a
>>>a
2
>>>b # b n’a pas été modifié
1
Exemple2 :
>>> a = [1, 2, 3]
>>>b=a
>>>a[0]=’foo’ # on modifie la liste a
>>>a
[‘foo’, 2, 3]
>>>b
[‘foo’, 2, 3] # la liste b a aussi été modifiée !
Il existe en Python deux types d’objets : les objets mutables et les objets immutables.
Un objet est dit mutable si on peut changer sa valeur après sa création. Il est dit immutable
dans le cas contraire.
Objets immutables
Entiers, flottants, complexes, tuples, chaînes de caractères, …
Objets mutables
Listes, dictionnaires, …
Remarque : Bien souvent, on veut copier une liste dans un nouvel objet pour qu’il ne subisse
pas les modifications de l’objet initial. Pour cela, il y’a plusieurs possibilités :
• le slicing [:] ;
• l’utilisation de la méthode copy ;
• l’utilisation du constructeur list.
Exemples :
>>>liste1 = [1, 2, 3]
>>>liste2 = liste1[:]
>>>liste3 = liste1.copy()
>>>liste3 = liste1.copy()
>>>liste1[0] = 'toto'
>>>liste1, liste2, liste3, liste4
(['toto', 2, 3], [1, 2, 3], [1, 2, 3], [1, 2, 3])
# liste1 a été modifiée mais pas les autres listes
SIHAM YAQINE 11
Copie superficielle/profonde
Si une liste contient des objets eux-mêmes mutables, la copie que nous venons d’effectuer est
insuffisante.
è Copie superficielle
Exemple1 :
>>>L1=[[1,2,3],[4,5,6]]
>>>L2=L1[:]
>>>L1.append(56)
>>>L1,L2
[[1,2,3],[4,5,6],56],[[1,2,3],[4,5,6]]
>>>L1[0].append(66)
>>>L1,L2
[[1,2,3,66],[4,5,6],56],[[1,2,3,66],[4,5,6]]
Solution : effectuer une copie profonde, en utilisant la fonction deepcopy du module copy.
Exemple2 :
>>>L3=c.deepcopy(L1)
>>> id(L1[0])==id(L3[0]) # id renvoie l’emplacement en mémoire d’un objet
False
>>>L1[0].append(80)
>>>L1,L3
[[1,2,3,66,80],[4,5,6],56],[[1,2,3,66],[4,5,6],56]
Exercice0 :
Écrire un programme qui créé une liste d’au moins 5 entiers puis successivement :
affiche la valeur de L[4]
modifie la liste en remplaçant L[1] par 17 et L[3] par la somme des cases voisines L[2] et L[4]
affiche 12 fois la valeur du dernier terme de la liste
Exercice1:
Écrire un algorithme python pour afficher tous les éléments d'une liste donnée de deux
manières différentes.
Solution0 :
SIHAM YAQINE 12
Solution1 :
Exercice2 :
Écrire un algorithme Python permettant d'échanger le premier élément avec le dernier
élément d'une liste donnée.
Exemple: si
Solution2 :
SIHAM YAQINE 13
Exercice3 :
Étant donné une liste d'entiers L, écrire un programme en Python qui renvoie la somme des
éléments de la liste L.
Solution3 :
Tuple
Un tuple est une liste qui ne peut plus être modifiée.
C’est une suite d’objets de type hétérogène, délimitée par des parenthèses.
La syntaxe :
Nom_tuple = ()
Exemples :
>>>T0=tuple(); # ou bien T0=() Tuple vide
>>>T1=("ID",) #créer un tuple avec une seule valeur. On ajoute virgule à la fin
>>> T1 = (1, "ok", "toto") #créer un tuple avec des valeurs
>>>tuple1=1,7,9 #créer un tuple avec des valeurs, les () ne sont pas obligatoire
>>>tuple1
(1,7,9)
SIHAM YAQINE 14
è On peut également créer un tuple par énumération, en utilisant la méthode tuple avec,
en paramètre, un objet itérable : T=tuple(iterable)
è La création de tuple par compréhension est également possible.
Exemple :
>>>T=tuple(’Bonjour’);T
(’B’, ’o’, ’n’, ’j’, ’o’, ’u’, ’r’)
>>>T=tuple(range(11));T
(0,1,2,3,4,5,6,7,8,9,10)
Conversion - Transtypage
• Les méthodes list(), str() et tuple() sont des méthodes de création respectivement de liste,
de chaine et de tuple.
• Ces méthodes peuvent également être considérées comme des méthodes de transtypage,
c’est-à-dire de conversion de types.
Exemple :
>>>T=(1, ’Bonjour’, 80 )
>>>L=list(T);L
[1,’Bonjour’,80]
>>>L=[’Bonjour’, 14, [’coucou’, 15], (67, ’salut’)]
>>>T=tuple(L);T
(’Bonjour’, 14, [’coucou’, 15], (67, ’salut’))
Booléen
Type de données avec l’une des deux valeurs intégrées, True ou False. Il est indiqué par la
classe bool.
Remarque – True et False avec les majuscules ‘T’ et ‘F’ sont des booléens valides, sinon
python générera une erreur.
SIHAM YAQINE 15
Ensemble
En Python, Set est une collection non ordonnée de type de données qui est itérable,
modifiable et ne contient aucun élément en double. L’ordre des éléments dans un ensemble
n’est pas défini bien qu’il puisse être composé de divers éléments.
Exemples : création
set1 = set()
ensemble1 = set({77, 23, 91, 271, 987, 852}) #Créer un ensemble à partir d’un ensemble
Les dictionnaires
SIHAM YAQINE 16
SIHAM YAQINE 17