Questions de variables help

Bonjour,

J'ai une question je débute en python...

x,y, u,v = u,v, x-(q*u),y-(q*v)

si je devrais développer ça... est-ce bien la même chose que :

x = u;
y = v;
u = x-(q*u);
v = y-(q*v);

??

Cordialement,

Capa57.

2 réponses

  1. Oui mais dans le 1 cas sa prend moins de place.
    0
    1. Bonjour,

      Ce n'est pas tout à fait la même chose. Dans le 1er cas, toutes les expressions à droite du signe égal sont exécutées, avant les affectations avec les variables situées à gauche du signe égal.

      Dans l'exemple présenté, la 3ème expression "x-(q*u)" utilisera la valeur initiale de x. Par contre, avec les lignes séparées, cette même expression utilisera la nouvelle valeur de x=u

      Il faut donc se méfier de cette instruction condensée, mais elle permet des astuces intéressantes, par exemple d'échanger 2 valeurs sans nécessité d'une 3ème variable:

      a, b = b, a

      au lieu de:

      c = b
      b = a
      a = c
      
      0