Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
| python:bases:tuples [2022/01/31 19:09] – [7. Fonction renvoyant un tuple] phil | python:bases:tuples [2025/06/19 19:29] (Version actuelle) – modification externe 127.0.0.1 | ||
|---|---|---|---|
| Ligne 12: | Ligne 12: | ||
| * ** Mots-clés** : immuable, unpacking, tuple | * ** Mots-clés** : immuable, unpacking, tuple | ||
| - | <note important>Les mots ci-dessous sont dits " | + | <callout type=" |
| | and | continue | | and | continue | ||
| Ligne 27: | Ligne 27: | ||
| ==== 1. Introduction ==== | ==== 1. Introduction ==== | ||
| - | Le tuple est une séquence. Comme la liste, il référence des objets | + | Le tuple est une séquence. Comme la liste, il référence des objets |
| - | <note Important>Un **tuple**, ou **P-uplet** est une liste de **constantes**. Il est **immuable** donc non modifiable. Les **parenthèses ( )** délimitent les **tuples**.</ | + | <callout type=" |
| ==== 2. Création ==== | ==== 2. Création ==== | ||
| Ligne 36: | Ligne 36: | ||
| <code python *.py> | <code python *.py> | ||
| # Affectation simple | # Affectation simple | ||
| - | tp = " | + | >>> |
| - | tp = () # Création d'un tuple vide (peu d' | + | >>> |
| - | tp = 6, # un élément nécessite une virgule | + | >>> |
| # Les parenthèses sont obligatoires dès que l' | # Les parenthèses sont obligatoires dès que l' | ||
| - | tp = 3, | + | >>> |
| + | >>> | ||
| # Tuple contenant des tuples | # Tuple contenant des tuples | ||
| - | t2d = (1," | + | >>> |
| - | (2," | + | # |
| - | # Affectation | + | # Affectation |
| - | a,b,c = 1,2,3 # a=1, b=2, c=3 | + | >>> |
| </ | </ | ||
| - | <note important>Un tuple avec **un seul élément** nécessite une **virgule**.</ | + | <callout type=" |
| ==== 3. Accès aux éléments ==== | ==== 3. Accès aux éléments ==== | ||
| Ligne 59: | Ligne 60: | ||
| # Accès à une valeur en lecture | # Accès à une valeur en lecture | ||
| tp = " | tp = " | ||
| - | len(tp) # renvoie 5 | + | >>> |
| - | tp[2] # renvoie 8 | + | >>> |
| + | >>> | ||
| # i peut être négatif ! | # i peut être négatif ! | ||
| - | tp[-1] # renvoie " | + | >>> |
| </ | </ | ||
| - | ====4. Construction==== | + | ==== 4. Construction ==== |
| + | * **Issue d'une concatenation avec +** | ||
| - | * **Concatenation avec +** | + | <callout type=" |
| - | + | ||
| - | <note>Bien que le type tuple soit immuable, il est tout à fait légal d'" | + | |
| //Exemple// | //Exemple// | ||
| <code python *.py> | <code python *.py> | ||
| - | tuple1 = (1, 2,) | + | >>> |
| - | tuple2 = (3, 4,) | + | >>> |
| - | print(' | + | >>> |
| </ | </ | ||
| - | * ** Concaténation | + | * ** Issue d'une concaténation |
| //Exemple// | //Exemple// | ||
| <code python *.py> | <code python *.py> | ||
| - | tuple3 = 3*tuple1 # (1, | + | >>> |
| </ | </ | ||
| - | * **A partir | + | * **Issue d'une liste** |
| //Exemple// | //Exemple// | ||
| <code python *.py> | <code python *.py> | ||
| - | liste = list(range(10)) # résultat[0, | + | >>> |
| - | liste[9] = ' | + | >>> |
| - | del liste [2:5] # résultat : [0, 1, 5, 6, 7, 8, ' | + | >>> |
| - | mon_tuple = tuple(liste) # résultat : (0, 1, 5, 6, 7, 8, ' | + | >>> |
| </ | </ | ||
| Ligne 98: | Ligne 98: | ||
| <code python *.py> | <code python *.py> | ||
| - | t = " | + | >>> |
| - | " | + | >>> |
| - | " | + | >>> |
| </ | </ | ||
| ====6. Modification !==== | ====6. Modification !==== | ||
| - | <note warning> | + | <callout type="warning" icon=" |
| //Exemple// | //Exemple// | ||
| <code python *.py> | <code python *.py> | ||
| + | >>> | ||
| + | >>> | ||
| + | >>> | ||
| + | # Traceback (most recent call last): | ||
| + | # File "< | ||
| + | # TypeError: ' | ||
| + | >>> | ||
| + | >>> | ||
| + | >>> | ||
| + | >>> | ||
| + | >>> | ||
| </ | </ | ||
| ====7. Fonction renvoyant un tuple ==== | ====7. Fonction renvoyant un tuple ==== | ||
| - | Les affectations multiples s' | + | Les affectations multiples |
| //Exemple// : calcul des longueurs des trois côtés d'un triangle. | //Exemple// : calcul des longueurs des trois côtés d'un triangle. | ||
| Ligne 138: | Ligne 148: | ||
| ====8. tuple unpacking ==== | ====8. tuple unpacking ==== | ||
| - | <note tip> | + | <callout type="tip" icon=" |
| //Exemple 1// | //Exemple 1// | ||
| Ligne 158: | Ligne 168: | ||
| </ | </ | ||
| - | <note warning>Les seules contraintes fixées par Python sont que : \\ | + | <callout icon=" |
| - le terme à droite du signe = soit un itérable (tuple, liste, string, etc.) ; \\ | - le terme à droite du signe = soit un itérable (tuple, liste, string, etc.) ; \\ | ||
| - le terme à gauche soit écrit comme un tuple ou une liste - notons tout de même que l' | - le terme à gauche soit écrit comme un tuple ou une liste - notons tout de même que l' | ||
| - | - les deux termes aient la même longueur - en tout cas avec les concepts que l'on a vus jusqu' | + | - les deux termes aient la même longueur - en tout cas avec les concepts que l'on a vus jusqu' |
| //Exemple 3// | //Exemple 3// | ||
| - | <note tip> Il est possible de faire une boucle for qui itère sur une seule liste mais qui agit sur **plusieurs variables**.</ | + | <callout type="tip" icon=" |
| <code python *.py> | <code python *.py> | ||
| Ligne 180: | Ligne 190: | ||
| ====9. Extended unpacking==== | ====9. Extended unpacking==== | ||
| - | <note>Le mécanisme ici est une extension de sequence unpacking ; Python vous autorise à mentionner une seule fois, parmi les variables qui apparaissent à gauche de l' | + | <callout type=" |
| //Exemple 1// | //Exemple 1// | ||
| Ligne 205: | Ligne 215: | ||
| </ | </ | ||
| - | <note conseil>On peut utiliser plusieurs fois la même variable dans la partie gauche de l' | + | <callout type=" |
| Cette technique n'est utilisée en pratique que pour les parties de la structure dont on n'a que faire dans le contexte. Dans ces cas-là, il arrive qu'on utilise le nom de variable _. | Cette technique n'est utilisée en pratique que pour les parties de la structure dont on n'a que faire dans le contexte. Dans ces cas-là, il arrive qu'on utilise le nom de variable _. | ||