Différences entre les versions de « Programmation Python/Instructions répétitives »

déplacement des réaffectations dans les affectations
(déplacement des réaffectations dans les affectations)
<noinclude>{{Python}}</noinclude>
 
== Ré-affectation ==
 
Nous ne l'avions pas encore signalé explicitement : il est permis de ré-affecter une nouvelle valeur à une même variable, autant de fois qu'on le souhaite.
 
L'effet d'une ré-affectation est de remplacer l'ancienne valeur d'une variable par une nouvelle.
 
<pre>
>>> altitude = 320
>>> print altitude
320
>>> altitude = 375
>>> print altitude
375
</pre>
 
Ceci nous amène à attirer une nouvelle fois votre attention sur le fait que le symbole ''égale'' utilisé sous Python pour réaliser une affectation ne doit en aucun cas être confondu avec un symbole d'égalité tel qu'il est compris en mathématique. Il est tentant d'interpréter l'instruction <code>altitude = 320</code> comme une affirmation d'égalité, mais ce n'en n'est pas une !
 
* Premièrement, l'égalité est ''commutative'', alors que l'affectation ne l'est pas. Ainsi, en mathématique, les écritures <code>a = 7</code> et <code>7 = a</code> sont équivalentes, alors qu'une instruction de programmation telle que <code>375 = altitude</code> serait illégale.
 
* Deuxièmement, l'égalité est ''permanente'', alors que l'affectation peut être remplacée comme nous venons de le voir. Lorsqu'en mathématique, nous affirmons une égalité telle que <code>a = b</code> au début d'un raisonnement, alors <tt>a</tt> continue à être égal à <tt>b</tt> durant tout le développement qui suit.
 
En programmation, une première instruction d'affectation peut rendre égales les valeurs de deux variables, et une instruction ultérieure en changer ensuite l'une ou l'autre. Exemple :
 
<pre>
>>> a = 5
>>> b = a # a et b contiennent des valeurs égales
>>> b = 2 # a et b sont maintenant différentes
</pre>
 
Rappelons ici que Python permet d'affecter leurs valeurs à plusieurs variables simultanément :
 
<pre>
>>> a, b, c, d = 3, 4, 5, 7
</pre>
 
Cette fonctionnalité de Python est bien plus intéressante encore qu'elle n'en a l'air à première vue.
 
Supposons par exemple que nous voulions maintenant échanger les valeurs des variables <tt>a</tt> et <tt>c</tt>. (Actuellement, <tt>a</tt> contient la valeur 3, et <tt>c</tt> la valeur 5. Nous voudrions que ce soit l'inverse). Comment faire ?
 
{{exercices}}
# Écrivez les lignes d'instructions nécessaires pour obtenir ce résultat.
{{solution}}
 
Réfléchissez !
{{fin}}
 
Sous Python, ''l'affectation multiple'' permet de programmer l'échange d'une manière particulièrement élégante :
<pre>
>>> a, b = b, a
</pre>
 
== L'instruction "while" ==