III. Le type p-uplet¶
Cours¶
A. Définition¶
Un p-uplet est un ensemble ordonné de p éléments (un nombre donné d'éléments). Ils peuvent être de différents types.
En Python, on utilise le type tuple
(terme que l'on retrouve par exemple dans quintuple : un ensemble de 5 éléments).
B. Création¶
Différents éléments séparés par des virgules permettent de créer un tuple
. Pour la lisibilité du code, on encadre ces éléments par des parenthèses. Comme pour les tableaux, son nombre d'éléments ou longueur est donné par la fonction len()
pouvant prendre en paramètre un tuple.
Exemple
tuple1 = (0, 5, 2)
Cette variable est de longueur ..........
C. Indexation¶
Les éléments d'un p-uplet tuple1
sont indexés à partir de 0, jusqu'à la taille du p-uplet - 1.
L'accès à un élément d'un p-uplet fonctionne comme l'accès d'un élément d'un tableau.
Exemple
tuple1[1]
renvoie 5
.
D. Modification¶
C'est une spécificité du tuple
, il n'est pas modifiable ! Il est dit non-muable.
S'il est choisi au lieu d'un tableau, c'est souvent pour cette particularité : pour éviter que des valeurs soient modifiée en cours de programme.
E. Utilisation dans des fonctions¶
Il est possible de faire renvoyer plusieurs valeurs à une fonction. Ces valeurs sont alors renvoyées sous la forme d'un tuple
.
Exemple
Code
def maximum(t: list[float]) -> float:
max_val = t[0]
max_ind = 0
for i in range(len(t)):
if t[i]>max_val:
max_val = t[i]
max_ind = i
return max_val, max_ind
1. Ecrire l'appel de la fonction maximum
pour t
valant [-15.0, 7.4, 36.8, -3.14]
, mais stockant les valeurs de sortie dans une seule variable. Afficher ensuite ces valeurs séparément.
resultat = maximum([-15.0, 7.4, 36.8, -3.14])
print("La valeur maximum est :", resultat[0])
print("L'indice du maximum est :", resultat[1])
2. Ecrire le même appel, mais en stockant la valeur et l'indice du maximum dans des variables différentes, séparées par des virgules.
maxi, indice = maximum([-15.0, 7.4, 36.8, -3.14])
print("La valeur maximum est :", maxi)
print("L'indice du maximum est :", indice)
Exercices¶
Exercice 1¶
-
Créer un tuple
info
stockant les information suivantes, de différents types, sur une personne (garder l'ordre donné):- prénom : Ada,
- nom : Lovelace,
- année de naissance : 1815,
- pays : Angleterre.
-
Quelle instruction Python permet d'accéder à la valeur
Angleterre
? -
On veut modifier le pays, pour le remplacer par Royaume-Unis. Quelle instruction Python permet de faire de la modification ?
Exercice 2¶
Un p-uplet n'est pas modifiable, mais on peut faire des opérations dessus et stocker le résultat dans d'autres variables. On peut utiliser l'addition avec l'opérateur +
et la multiplication avec l'opérateur *
.
-
Que renvoie l'expression
('Juliette', 2006) + ('Anna', 2003)
? -
Que renvoie l'expression
3 * ('orange', 6)
?
Exercice 3¶
def recherche(nom, liste):
for eleve in liste:
if eleve[1] == nom:
return eleve
return None, None, None, None
liste_eleves = [('Jean', 'Dugarden', 2006, '1ere1'), ('Marion', 'Cotillon', 2005, 'tle3')]
a
, b
, c
, d
après exécution de l'instruction suivante : a, b, c, d = recherche('Cotillon', liste_eleves)
?
- Que renverra la fonction
recherche()
si l'élève recherché n'est pas dans la liste ?