Parcourir les éléments d'un t-uplet☘
Comme pour les chaînes de caractères et les tableaux, il existe trois méthodes pour parcourir les valeurs d'un t-uplet.
Parcours par les valeurs☘
On peut parcourir élément par élément d'un t-uplet avec for ... in ...:
>>> uplet = ('informatique', 'python', 'réseau', 'javascript')
>>> for mot in uplet:
... print(mot)
...
informatique
python
réseau
javascript
Parcours par les indices☘
On peut parcourir le t-uplet indice par indice grâce à
for ... in range(len(...)):
>>> uplet = ('informatique', 'python', 'réseau', 'javascript')
>>> for indice in range(len(uplet)):
... print(indice, uplet[indice])
...
0 informatique
1 python
2 réseau
3 javascript
Parcours des indices et valeurs☘
On peut aussi parcourir le t-uplet en utilisant à la fois les indices et
les valeurs des éléments grâce à for ... in enumerate(...):
>>> uplet = ('informatique', 'python', 'réseau', 'javascript')
>>> for indice, valeur in enumerate(uplet):
... print(f"L'élément d'indice {indice} a pour valeur {valeur}.")
...
L'élément d'indice 0 a pour valeur informatique.
L'élément d'indice 1 a pour valeur python.
L'élément d'indice 2 a pour valeur réseau.
L'élément d'indice 3 a pour valeur javascript.
Exemples☘
-
Complétez la définition de la fonction
signes()qui prend pour paramètre un t-uplettcontenant des eniers et renvoie un t-uplet de même longueur contenant un0lorsque l'élément correspondant detest strictement positif, un1sinon.1 2 3 4 5 6 7 8 9
def signes(t): """ t – tuple, t-uplet d’entiers Sortie: tuple – t-uplet de même longueur que t contenant : 0 si l’élément de même rang dans t est strictement positif 1 si l’élément de même rang dans t est négatif >>> signes( (3, -2, -6, 0) ) (0, 1, 1, 1) """Une solution
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
def signes(t): """ t – tuple, t-uplet d’entiers Sortie: tuple – t-uplet de même longueur que t contenant : 0 si l’élément de même rang dans t est strictement positif 1 si l’élément de même rang dans t est négatif >>> signes( (3, -2, -6, 0) ) (0, 1, 1, 1) """ reponse = () # Création d’un tuple « vide » for valeur in t: if valeur > 0: reponse = reponse + (0, ) else: reponse = reponse + (1, ) return reponse -
Donnez la définition par compréhension d'un t-uplet qui génère 20 entiers aléatoires compris entre
-50et50(après avoir importé la modulerandom).Une solution
1 2 3
from random import randint uplet = tuple( randint(-50, 50) for i in range(20) ) -
Regroupez les deux questions dans un unique programme afin de tester la fonction
signes()dans le «main» à l'aide de t-uplets générés aléatoirement (cf. question 2.).Une solution
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
from random import randint def signes(t): """ t – tuple, t-uplet d’entiers Sortie: tuple – t-uplet de même longueur que t contenant : 0 si l’élément de même rang dans t est strictement positif 1 si l’élément de même rang dans t est négatif >>> signes( (3, -2, -6, 0) ) (0, 1, 1, 1) """ reponse = () # Création d’un tuple « vide » for valeur in t: if valeur > 0: reponse = reponse + (0, ) else: reponse = reponse + (1, ) return reponse if __name__ == '__main__': import doctest doctest.testmod() # Cinq tests avec t-uplets générés aléatoirement for k in range(5): uplet = tuple( randint(-50, 50) for i in range(20) ) print(f"Le t-uplet généré est {uplet}") print(f"Le signe des éléments du t-uplet sont {signes(uplet)}") print()