Creation tuple

Résolu/Fermé
JFL - Modifié le 1 févr. 2022 à 16:28
 JFL - 1 févr. 2022 à 18:17
Bonjour,

Je n'arrive pas à récupérer le deuxième tuple
fin
(ici égal à
(10,11)
) dans ma fonction
test
. Sauriez-vous me dire comment sortir de cette impasse ?

D'avance merci beaucoup.

def test(debut, fin):
    x = [((debut), (fin))]
    print(x)

(test (0,1),(10,11))
A voir également:

4 réponses

jee pee Messages postés 39712 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 12 mai 2024 9 270
Modifié le 1 févr. 2022 à 16:27
Bonjour,

De nombreuses solutions

def test(debut, fin):
   x = [(debut), (fin)]
   print(x)
   x = fin
   print(x)
   x = fin[0], fin[1]
   print(x)

def test2(debut):
   x = debut
   print(x)
   x = debut[1]
   print(x)

test((0,1), (10,11))
test2([(0,1), (10,11)]) 


0
Un grand merci encore pour ton aide .
0
mamiemando Messages postés 33093 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 4 mai 2024 7 752
Modifié le 1 févr. 2022 à 16:43
Bonjour,

Quelques rappels sur la syntaxe

... pour que tu comprennes ce qui se passe dans le code que tu as partagé.
  • Généralement on entoure les paramètres d'une fonction par des parenthèse (e.g.
    f(x, y, z)
    ). Dans le code que tu as partagé :

(test (0,1), (10, 11))
... signifie construit un tuple de deux éléments, le premier élément étant le résultat de
test(0, 1)
, le second élément étant
(10, 11)
. On comprend alors que
(10, 11)
n'entre pas dans la fonction
test
. Cette dernière reçoit en argument respectivement
debut = 0
et
fin = 1
, et c'est pour ça qu'elle retourne
[(0, 1)]
.
  • Il n'est pas utile d'entourer un nom variable de parenthèse (comme tu l'as fait dans ta fonction
    test
    pour les variables
    debut
    et
    fin
    ).
  • Une fois réécrit le code s'écrit plutôt :


def test(debut, fin):
    x = [(debut, fin)]
    print(x)

test((0,1), (10,11)) # != (test(0, 1), (10, 11))


Sous cette forme, on comprend que
x
construit une liste qui contient un tuple de deux éléments (respectivement tes paramètres
debut
et
fin
).

J'avoue ne pas trop voir l'intérêt d'encapsuler le tuple
(debut, fin)
dans une liste, tu pourrais te contenter de directement mémoriser ce tuple.

Accéder aux valeurs d'un tuple

Tu peux extraire les valeurs d'un tuple avec l'opérateur
[ ]
comme l'a indiqué jee pee ou en l'affectant à une série de variables.

Exemple 1 :

def test(tuple1, tuple2):
    a = tuple1[0]
    b = tuple1[1]
    c = tuple2[0]
    d = tuple2[1]
    print(a, b, c, d)

test((1, 2), (3, 4))


Exemple 2 :

def test(tuple1, tuple2):
    (a, b) = tuple1
    (c, d) = tuple2
    print(a, b, c, d)

test((1, 2), (3, 4))


Bonne chance
0
Toute ces explications m'aident beaucoup dans mon apprentissage du langage Python. J'apprécie énormément. Merci +++
0