C11.1 : Les tuples
Présentation
Propriétés des tuples
Les tuples (on dit aussi n-uplet) s'écrivent de la façon suivante :
t = (-5, "a", 3.5)
Les tuples sont des structures de données linéaires.
Les tuples sont des structures de données ordonnées :
- - Chaque élément du tuple est repéré par un indice ;
- - Il est possible de parcourir successivement les éléments d'un tuple.
Les tuples sont des structures de données non mutables : il n'est pas possible de modifier les valeurs d'un tuple.
Pour compléter
Prendre connaissance de Mémo : Les tuples.
Applications, pour comprendre
Application II_app1 : Création d'un tuple
Créer un tuples contenant les mots de la phrase suivante : "Le bonheur est parfois caché dans l'inconnu."
Application II_app2 : Structure de données ordonnées
On considère le tuple t définit par l'instruction suivante :
t = (-5, "a", 3.5)
1) Écrire l'instruction qui permet de récupérer la valeur -5. De même pour "a".
2) Écrire le code d'une fonction qui prend un tuple en paramètre et affiche successivement, ligne par ligne, les valeurs du tuple.
Application II_app3 : Structure de données non mutable
Tester le code suivant :
t = (1, 2, 3, 4)
t[0] = 10
Expliquer pourquoi il produit une erreur.
Application II_app4 : Affectation parallèle
En une seule ligne de code, créer les variables a et b contenant respectivement les valeurs 8 et 12.
Application II_app5 : Analyse d'un code
On s'intéresse à la fonction ci-dessous
def fct(nb : int) -> tuple:
return nb // 2, nb * 2
1) Expliquer ce que fait cette fonction. Lui donner un nom approprié.
2) Écrire quelques lignes de code qui utilisent cette fonction.
Application II_app6 : Fonction qui renvoie plusieurs valeurs
On rappelle que la distance entre deux points A et B de coordonnées respectives \((x_A, y_A)\) et \((x_B, y_B)\) est donnée par la formule : \(\sqrt{(x_A-x_B)^2+(y_A-y_B)^2}\)
Écrire le code de la fonction dont la docstring est donnée ci-dessous.
def distance(coord1, coord2):
'''
Renvoie la distance entre les deux points dont on connait les coordonnées.
:paramètre coord1: (tuple) coordonnées d'un point
:paramètre coord2: (tuple) coordonnées d'un point
:return: (float) distance entre les deux points
Exemple
>>> distance((0, 4), (3, 0))
5.0
'''
Exercices, pour approfondir
Application III_app1 : Min et max des valeurs d'un tuple
Écrire une fonction min_max(notes : tuple)->tuple qui prend en paramètre un tuple de notes et renvoie un tuple de 2 éléments constitué de la note la plus basse et de la note la plus élevée.
Exemple :
>>> notes = (20, 15, 10, 16, 9)
>>> min_max(notes)
(9, 20)
Application III_app2 : Mélange des valeurs d'une liste d'entiers
Remarques :
- • Cet exercice utilise les tuples pour échanger les contenus de deux variables.
- • Cet exercice constitue la mise en œuvre d'un algorithme classique à connaitre : algorithme de mélange des valeurs d'une liste.
Description de l'algorithme :
On considère une liste de n entiers.
Algorithme :
- Pour un indice i allant de 0 à n-2, faire :
- - créer une variable j et lui affecter une valeur aléatoire entre i+1 et n-1 (compris) ;
- - échanger les valeurs de la liste qui sont aux positions i et j.
Travail à faire :
Écrire une fonction (avec docstring) qui prend une liste d'entiers en paramètre et mélange les éléments de cette liste. Remarque : cette fonction ne renvoie rien, par contre, elle modifie la liste passée en paramètre.