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))

4 réponses

  1. jee pee Messages postés 9437 Date d'inscription   Statut Modérateur Dernière intervention   9 973
     
    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
  2. JFL
     
    Un grand merci encore pour ton aide .
    0
  3. mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   7 940
     
    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
  4. JFL
     
    Toute ces explications m'aident beaucoup dans mon apprentissage du langage Python. J'apprécie énormément. Merci +++
    0