5. Les itérations avec for¶
On utilise le mot clé for si on veut répéter des instructions un nombre de fois connu à l’avance. Pour ce faire, on l’utilise souvent avec la fonction range
Voici la syntaxe la plus simple :
for i in range(valeur_finale) :
instructions
En français, ce bout de code se lirait ainsi : pour chaque élément nommé i dans l’intervalle allant de 0 à valeur_finale (non-compris), répéter les instructions. Par exemple :
for i in range(0, 4) :
print("bonjour")
donne :
bonjour
bonjour
bonjour
bonjour
Exercice 1
Transformez le triangle en rectangle.
5.1. Variable d’itération¶
Que représente i dans l’expression for i in range(n) ?
C’est ce qu’on appelle une variable d’itération. Cette variable commence à 0 et augmente de 1 à chaque répétition jusqu’à \(n-1\). Pour visualiser cette valeur nous pouvons l’afficher dans le dessin avec l’instruction write(i).
Le nom i n’est pas obligatoire, on peut lui donner le nom que l’on veut.
Exercice 2
Pour dessiner un escalier, il faut simplement répéter dans une boucle le dessin pour une seule marche.
Ajoutez une ligne en utilisant la variable i pour numéroter les marches sur le dessin.
Exercice 3
Complétez le code pour obtenir la sortie suivante :
A ce passage, m vaut 0
A ce passage, m vaut 1
A ce passage, m vaut 2
5.2. For i in range avec deux paramètres¶
Pour le moment, on a utilise range avec un seul paramètre. Mais on peut l’utiliser avec deux paramètres :
for i in range(valeur_depart, valeur_finale) :
instructions
En français, ce bout de code se lirait ainsi : pour chaque élément nommé i dans l’intervalle allant de valeur_depart à valeur_finale (non-compris), répéter les instructions. Par exemple :
for i in range(0, 4) :
print("bonjour")
donne :
bonjour
bonjour
bonjour
bonjour
La variable d’itération prendrait les valeurs 0, 1, 2 et 3, mais pas 4, car si on ne met qu’un paramètre dans range, valeur_depart vaut par défaut 0.
5.3. For i in range avec trois paramètres¶
La fonction range peut prendre 1, 2 ou 3 arguments. Avec trois arguments, la syntaxe est
range(valeur_depart, valeur_fin, pas)
avec :
- `valeur_depart` : la valeur de départ de l'intervalle
- `valeur_fin` : la valeur finale de l'intervalle (non comprise)
- `pas` : la valeur d'incrémentation (combien on ajoute) entre chaque passage dans la boucle
Si on ne met qu’un seul paramètre, valeur_depart = 0 et pas = 1 par défaut.
Si on ne met que deux paramètres: pas = 1 par défaut.
Par exemple, dans le code ci-dessous, la tortue tourne au début de 90°, puis de 85°, 80°, etc, jusqu’à ne tourner finalement que de 5°.
Exercice 4
Complétez le code (arguments de range) pour qu’il produise la sortie suivante :
10
8
6
4
2
0
5.4. Itérations sans range¶
L’utilisation de range est une possibilité pour faire des itérations parmi beaucoup d’autres. On peut itérer sur n’importe quelle structure, appelée itérable qu’on peut décomposer en éléments, comme une liste ou une chaîne de caractères.
Dans l’exemple suivant, on répète l’instruction print autant de fois qu’il y a de caractères dans Magique!.
Dans l’exemple suivant, on répète l’instruction print autant de fois qu’il y a d’éléments dans la liste (on verra les listes plus en détails ultérieurement).