2.6 Python - Tuples
Introduction
Un tuple en programmation est une suite de variables alignées dans une boite. Il s'agit d'une variable très... "attend une minute, j'ai un sentiment de déjà vu là. On dirai exactement l'intro de la quête sur les listes". Et oui ta mémoire RAM fonctionne bien, les listes et les tuples sont comme de faux jumeaux, avec une particularité qui se résumé en un mot (à caser au scrabble en mot compte triple et lettre compte double) : immutabilité.

Objectifs
✅ Comprendre la notion d'immuabilité (immutability in english) ✅ Manipuler des tuples
Sommaire
Immuable ou not immuable, tel est la question

Une variable (ou objet) est immuable si on ne peut pas le modifier après sa création. Il faut recréer un autre objet pour cela, ou stocker la modification dans une nouvelle variable. On appelle parfois ces variables des constantes.
Tu ne l'as peut-être pas remarqué, mais contrairement aux variables immuables (voir celles qui sont cochées dans l'image ci-dessus) les listes et les dictionnaires sont mutables. C'est à dire qu'on peut remplacer un élément par un autre.
>>> liste = ['a', 'b', 'c']
>>> liste[1] # On accède au deuxième élément de la liste
'b'
>>> liste[2] # Troisième élément
'c'
>>> liste[1] = 'B' # On remplace 'b' par 'B'
>>> liste
['a', 'B', 'c']
On ne peut faire ça que parce que les variables de type list sont mutables.
Il est parfois utile d'avoir des variables immuables. Par exemple, des ingénieurs aéronautiques qui travaillent sur le programme d'un nouveau moteur d'avion ne voudraient pas que la valeur de Pi soit modifiée par erreur durant l'exécution. L'immutabilité garantie qu'elle ne peut pas l'être.
Un objet immuable permet parfois d'améliorer les performances d'un programme, ce qui est intéressant quand on doit effectuer un calcul sur une grande quantité de données.
On peut donc dire que l'immutabilité est un pattern... ou un anti pattern, en fonction de ton obédience.
Les tuples
Les tuples ne sont rien d'autres que le pendant immuable des listes qui elles sont mutables. C'est donc une structure de données permettant de regrouper des données dans une boîte.
Elles permettent d'effectuer certaines choses comme sur une liste. On peut les parcourir, accéder à un élément, effectuer des calculs (par exemple additionner tous les nombres)...

Un dictionnaire s'écrit avec des accolades {dictionnaire}, une liste avec des crochets [liste], un tuple avec des parenthèses (tuple). La notion de dimension fonctionne aussi avec les tuples.
Une dernière chose. Je t'ai menti, ou plutôt j'ai pas été complètement exact. Les tuples en Python ne sont pas complètement immuables. Pour en savoir plus voir les ressources.
Challenge

Dans ce challenge tu vas t'entraîner à la manipulation de tuples.
Crée une copie du notebook ci-après et réalise les missions qui s'y trouve : 2.6 Python - Tuples
Une fois réalisé, poste le lien vers ton notebook en commentaire pour validation, sans oublier de le rendre accessible en lecture pour toute personne disposant du lien.
Critères de validation
- Le notebook est accessible en lecture pour toutes personnes disposant du lien
- Les exercices ont été correctement codés
Une solution ici
Ressources partagées sur cette quête
- Permet de savoir comment modifier un tuplehttps://note.nkmk.me/en/python-tuple-operation/
- Cet article liste un certain nombre de méthodes qu'il est possible d'utiliser avec les tupleshttps://gayerie.dev/docs/python/python3/tuple.html