Feuille 6 : Les tuples

Exercice 1 : Les tuples, des objets non mutables

Expliquer pourquoi le code suivant produit une erreur :

t = (1, 2, 3, 4)
t[0] = 10

Exercice 2 : Distance entre deux points

É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
    '''

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}\).

Exercice 3 : Somme des valeurs d’un tuple

Écrire une fonction qui prend un tuple de nombres en paramètres et renvoie la somme des nombres.

Exercice 4 : Tuple ordonné

Écrire une fonction qui prend deux nombres en paramètres et renvoie un tuple contenant le plus petit des deux nombres en premier et le plus grand en deuxième.

Exercice 5 : Min, max et moyenne

1) Écrire une fonction qui reçoit une liste non vide de notes en paramètre et qui renvoie le minimum, le maximum et la moyenne des notes de cette liste.

2) Compléter le programme principal pour afficher proprement le minimum, le maximum et la moyenne de la liste [8, 11, 15, 9, 13].

Exercice 6 : Un carnet d’adresses très sommaire

Dans cet exercice, on souhaite gérer un carnet d’adresses.

Chaque personne du carnet est enregistrée sous la forme d’un tuple : (nom, prenom, age, ville).

Les tuples sont enregistrés dans une liste.

Ainsi, un carnet d’adresses pourra prendre la forme suivante :

carnet = [('Alain', 'Terrieur', 18, 'Lille'),
          ('Alex', 'Terrieur', 16, 'Lille'),
          ('Anne', 'Hammar', 17, 'Haubourdin')]

1) Écrire une fonction qui prend un carnet d’adresses en paramètre et affiche proprement l’ensemble du carnet d’adresses, c’est-à-dire, une personne avec ses spécificités par ligne.

2) Écrire une fonction qui prend un carnet d’adresses et un tuple correspondant à une nouvelle personne en paramètres et ajoute cette personne au carnet d’adresses.

3) Écrire une fonction qui prend un carnet d’adresses et une lettre en paramètres et renvoie un nouveau carnet d’adresses ne contenant que les personnes dont le nom commence par la lettre passée en paramètre.

4) Écrire une fonction qui prend un carnet d’adresses et une ville en paramètres et renvoie un nouveau carnet d’adresses ne contenant que les personnes qui habitent dans la ville passée en paramètre.

5) Écrire une fonction qui prend un carnet d’adresses en paramètre et renvoie le tuples correspondant à la personne la plus jeune du carnet d’adresses.