Questions de variables help

capa57 Messages postés 352 Date d'inscription   Statut Membre Dernière intervention   -  
tyrtamos Messages postés 4 Date d'inscription   Statut Membre Dernière intervention   -
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

niort17 Messages postés 53 Date d'inscription   Statut Membre Dernière intervention  
 
Oui mais dans le 1 cas sa prend moins de place.
0
tyrtamos Messages postés 4 Date d'inscription   Statut Membre Dernière intervention   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