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-uplett
contenant des eniers et renvoie un t-uplet de même longueur contenant un0
lorsque l'élément correspondant det
est strictement positif, un1
sinon.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
-50
et50
(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()