Questions de variables help

Fermé
capa57 Messages postés 352 Date d'inscription lundi 30 juin 2008 Statut Membre Dernière intervention 26 mai 2016 - 23 avril 2013 à 12:37
tyrtamos Messages postés 4 Date d'inscription samedi 4 mai 2013 Statut Membre Dernière intervention 6 mai 2013 - 6 mai 2013 à 13:48
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 mercredi 1 mai 2013 Statut Membre Dernière intervention 17 février 2017
3 mai 2013 à 20:38
Oui mais dans le 1 cas sa prend moins de place.
0
tyrtamos Messages postés 4 Date d'inscription samedi 4 mai 2013 Statut Membre Dernière intervention 6 mai 2013 2
6 mai 2013 à 13:48
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