Partage
  • Partager sur Facebook
  • Partager sur Twitter

apprehension fonction

Sujet résolu
    24 juillet 2010 à 17:42:30

    Bonjour comme je débute en python c'est pourquoi je vous demande de l'aide pour analyser cette fonction:

    def Toto(n):
        global a
        a, b = 0, 1
        for i in range(n):
          a, b = b, a-b
        return a
    


    cela équivaut bien a ceci ?

    def Toto(n):
        global a
        a=0
        b=1
        for i in range(n):
          a=b
          b=a-b
        return a
    


    Si oui vous serrez daccord avec moi pour dire que la variable a retourner ne peut contenir que des 1 et 0??
    • Partager sur Facebook
    • Partager sur Twitter
      24 juillet 2010 à 18:00:20

      Peuh !

      La notation :

      a, b = 0, 1
      

      est bien équivalente à :

      a = 0
      b = 1
      

      Tu peux en fait affecter plusieurs variables sur la même ligne en les séparant par des virgules et en séparent les valeurs à leur donner par des virgules aussi.
      Cependant, dans le cas de ta fonction, il n'y a pas équivalence ! Car en fait, lorsque tu utilises ce type de notation, les variables sont affectées exactement en même temps !
      Donc si tu fais :

      a, b = b, a-b
      

      ce n'est pas la même chose que si tu fais :

      a = b
      b = a - b
      

      Pourquoi ?
      Dans le premier cas, tu mets a à 1 et en même temps, tu mets b à 0 - 1 (-1 donc).
      Dans le second cas, tu mets a à 1 puis ensuite tu effectues le calcul a - b qui donne 0.

      Donc les deux fonctions que tu donnes ne sont pas équivalentes !
      Le meilleur moyen de le savoir c'est de tester les deux fonctions avec plusieurs valeurs et de voir que les résultats diffèrent.

      Etudions un peu ta boucle pour savoir ce qu'elle fait.
      Initialisation :
      a = 0
      b = 1
      Première itération :
      a = 1
      b = -1
      Deuxième itération :
      a = -1
      b = 2
      Troisième itération :
      a = 2
      b = -3
      Etc...

      J'espère que ça répond à ta question ! Tu peux tjrs aller voir mon tutoriel sur le langage Python !
      • Partager sur Facebook
      • Partager sur Twitter
        24 juillet 2010 à 18:03:59

        OK je n'avait pas capter la différence en grand merci encore une fois pour cette réponse
        • Partager sur Facebook
        • Partager sur Twitter

        apprehension fonction

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown