A la différence des listes, les tuples, une fois créés, ne peuvent être modifiés. On ne peut ni y ajouter ni y retirer d’objets.
La syntaxe pour créer un tuple est la suivante :
tuple_vide = ()
tuple_non_vide1 = (1,)
tuple_non_vide2 = (1, 3, 5)
Une petite subtilité ici : si on veut créer un tuple contenant un unique élément, on doit quand même saisir la virgule après celui-ci. A défaut, Python ne considérera pas l’objet
comme un tuple mais comme une variable dont la valeur sera celle indiquée entre parenthèses (qui deviendront donc inutiles).
Il est assez rare que l’on travaille directement sur les tuples. Néanmoins, il est bon de savoir que cela existe car nous avons eu l’occasion de les utiliser à plusieurs reprises
sans nous en rendre réellement compte.
L’affectation multiple consiste à affecter plusieurs valeurs à plusieurs variables (une valeur par variable) en une seule ligne de code.
Cette syntaxe passe par les tuples qui ne sont pas déclarés explicitement. On pourrait d’ailleurs écrire aussi :
Comme indiqué dans le chapitre 6, une fonction peut renvoyer plusieurs valeurs. Voyons un exemple.
def decomposer(entier, divise_par):
"Cette fonction retourne la partie entière et le reste de entier / divise_par"
partie_entiere = entier // divise_par
reste = entier % divise_par
return partie_entiere, reste
partie_entiere, reste = decomposer(20, 3)
print(partie_entiere)
print(reste)
Là encore, on passe par les tuples sans que ce soit indiqué explicitement à Python. La fonction decomposer
retourne un tuple composé respectivement de la partie entière
de la division (p_e)
et de son reste (reste)
. On peut donc affecter ces valeurs à deux variables en procédant à une affectation multiple.