Questions de variables help

capa57 Messages postés 383 Statut Membre -  
tyrtamos Messages postés 4 Statut Membre -
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. niort17 Messages postés 56 Statut Membre
     
    Oui mais dans le 1 cas sa prend moins de place.
    0
  2. tyrtamos Messages postés 4 Statut Membre 2
     
    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