Skip to content

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

  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.
  2. Quelle instruction Python permet d'accéder à la valeur Angleterre ?

  3. 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 *.

  1. Que renvoie l'expression ('Juliette', 2006) + ('Anna', 2003) ?

  2. 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')]
1. Que contiennent les variables a, b, c, d après exécution de l'instruction suivante : a, b, c, d = recherche('Cotillon', liste_eleves) ?

  1. Que renverra la fonction recherche() si l'élève recherché n'est pas dans la liste ?