Wallon
licence

Numérique et Sciences Informatiques


Les tuples

1) Qu'est ce qu'un tuple ?

Un tuple(en anglais ou p-uplet) est un type de données proposé par python, qui est assez semblable à une liste
mais qui , comme les chaines, n'est pas modifiable.
Un tuple peut contenir des valeurs numériques ou des chaines :
une collection d'éléments séparés par des virgules.

Un tuple ne s'écrit pas entre crochets comme la liste, mais entre parenthèses.

Pour accéder à un élément du tuple, on place l'index voulu entre crochets.

exemple : tuple =( 1,12,'papier',9,'cailloux','merci' )

Chaque chaine de caractères est entre guillemets ou quote (jusque 3) et séparée par une virgule.
les valeurs numériques sont justes séparées par des virgules.

2) Les opérations sur les tuples:

Elles sont syntaxiquement identiques à celles effectuées sur les listes, si ce n'est que les tuples
ne sont pas modifiables.
python


Même si on n'a qu'un seul élément, il faut toujours une virgule après celui ci pour définir un tuple.

On utilise par exemple la syntaxe suivante : tuple1 = ('ciseaux',).

On peut donc déterminer la taille d'un tuple avec len(), le parcourir avec une boucle for,
utiliser l'instruction in pour savoir si un élément en fait partie, comme pour une liste.

Les opérateurs de concaténation et de multiplication fonctionnent également.

Comme les tuples ne sont pas modifiables, on ne pourra pas, avec les tuples, utiliser ni del(), ni remove().

En conclusion, les tuples sont préférables aux listes pour éviter une modification accidentelle
d'une donnée dans un programme.

De plus ils sont moins gourmands en ressources système ;
ils occupent moins de mémoire et peuvent etre traités plus rapidement par l'interpreteur.

3) exercices avec des tuples:

tuple1 = (15, 3, 9, 23, 11)

Dans cet exemple, la variable "tuple1" référence un tuple constitué des entiers 15, 3, 9, 23 et 11. Comme chaque élément du tuple est indicé :

Comment accéder à l'élément d'indice i dans un tuple ?

Simplement en utilisant la "notation entre crochets" :

exemple 1

Testez le code suivant :


		tuple1 = (15, 3, 9, 23, 11)
		a = tuple1[2]
		

Quelle est la valeur référencée par la variable a (utilisez la console pour répondre à cette question)?

La variable tuple1 référence le tuple (15, 3, 9, 23, 11), la variable a référence l'entier 9 car cet entier 9 est bien le troisième élément du tuple, il possède donc l'indice 2

ATTENTION : une source d'erreur :dans les séquences les indices commencent toujours à 0 (le premier élément de la séquence a pour indice 0).

exemple 2

Complétez le code ci-dessous (en remplaçant les ..) afin qu'après l'exécution de ce programme la variable a référence l'entier 23.


		tuple1 = (15, 3, 9, 23, 11)
		a = tuple1[..]
		

Un tuple ne contient pas forcément des nombres entiers, il peut aussi contenir des nombres décimaux, des chaînes de caractères, des booléens...

exemple 3

Quel est le résultat attendu après l'exécution de ce programme ?

Vérifiez votre hypothèse en testant ce programme


		tuple2 = ("la", "compagnie", "salut")
		print(tuple2[2] + " " + tuple2[0] + " " + tuple2[1] + "!")
		

Grâce au tuple, une fonction peut renvoyer plusieurs valeurs :

exemple 4

Analysez puis testez le code suivant :


		def somme(a, b):
			c = a + b
			return (a, b, c)
		tuple3 = somme(4, 5)
		print(f"{tuple3[0]} + {tuple3[1]} = {tuple3[2]}")
		

Dans cet exemple, le f fait référence aux f-strings qui permettent un formatage particulier des expressions. Voir également ici. Il faut bien comprendre dans l'exemple ci-dessus que la variable tuple3 référence un tuple (puisque la fonction "somme" renvoie un tuple), d'où la "notation entre crochets" utilisée avec tuple3 (tuple3[1]...)

Il est possible d'assigner à des variables les valeurs contenues dans un tuple :

exemple 5


		a, b, c, d, e = (15, 3, 9, 23, 11)
		

Quelle est la valeur référencée par la variable a ? La variable b ? La variable c ? La variable d ? La variable e ? Vérifiez votre réponse à l'aide de thonny.

exemple 6


		t = tuple()
		

Permet de définir un tuple vide.
Que renvoie le programme suivant? Vérifiez votre réponse à l'aide de thonny.


		t1, t2 = tuple('mathématiques'),tuple('codage')
		print (t1,t2)
		
		

On peut donc définir un tuple à partir d'une chaine de caractères.
Que renvoie le programme suivant? Vérifiez votre réponse à l'aide de thonny.

exemple 7


		t = tuple('bcd')
		t = ('a',)+t[1:]
		
		

On peut donc ajouter un argument entre le 1er et le dernier argument d'un tuple. Cela n'est possible qu'au début du code. compléter l'exemple 7 pour obtenir un célébre groupe anglais
Que renvoie le programme suivant? Vérifiez votre réponse à l'aide de thonny.

exemple 8


		q,r = divmod(12,5)
		print("q = ",q, "r = ",r)
		
		

Bien souvent un tuple est le résultat d'une fonction. Ici la fonction divmod(division modulo) renvoie un tuple (couple de valeurs)
Que renvoie le programme suivant? Vérifiez votre réponse à l'aide de thonny.

exemple 9


		t = divmod(59,15)
		print(*t)
		
		t1, t2 = tuple('mathématiques'),tuple('codage')
		print (*t1,*t2)
		
		

l'appel de *t(ou *t1...) permet de disperser le tuple en plusieurs variables (autant que d'arguments)







loi


















TP
TP