Creation tuple

Résolu
JFL -  
 JFL -
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 42365 Statut Modérateur 9 736
 
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
JFL
 
Un grand merci encore pour ton aide .
0
mamiemando Messages postés 34180 Statut Modérateur 7 887
 
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
JFL
 
Toute ces explications m'aident beaucoup dans mon apprentissage du langage Python. J'apprécie énormément. Merci +++
0