Boucle for
Cette fiche permet d'introduire la structure et la syntaxe de la boucle bornée for et propose deux exercices d'application corrigés.
La boucle for
est communément utilisée lorsque l'on souhaite répéter plusieurs fois une même instruction. Il faut connaitre le nombre de fois que vous souhaitez répéter l'instruction.
Vous aurez besoin d'une variable permettant de compter le nombre de fois que vous répétez l'instruction.
En Python, on indique les valeurs que doit prendre cette variable "compteur" dans une liste.
Dans cet exemple, la variable qui permet de compter est i
. À la première iteration, i
prend la valeur du premier élément de la liste, c'est-à-dire 1, et l'instruction est exécutée : on affiche "Hello!". Une fois l'instruction exécutée, i
prend la valeur du deuxième élément de la liste et l'instruction est à nouveau exécutée : on affiche "Hello!" une deuxième fois. Une fois la boucle terminée, on aura donc affiché cinq fois "Hello!".
La plupart du temps, on n'écrira pas la liste des valeurs que prend i
. On préfèrera utiliser range(n)
qui génère la liste des premiers entiers. Et pour afficher cinq fois "Hello!", on écrira :
Attention !
range(n)
génère la liste des premiers entiers en commençant par 0 (et en finissant donc en ). Ainsi :
>>> range(5) [0,1,2,3,4]
Vous pouvez aussi utiliser range(n,m)
qui liste les entiers entre et :
>>> range(1,5) [1,2,3,4]
Enfin, la commande range(n,m,p)
liste les entiers de à par pas de :
>>> range(1,10,2) [1,3,5,7,9]
Écrire une fonction somme(n)
qui prend un nombre entier en argument et renvoie la somme des premiers entiers et qui contient une boucle for
.
On cherche à utiliser une boucle for
dans la fonction somme(n)
. Il faut donc tout d'abord repérer l'opération répétitive et déterminer combien de fois elle est répétée.
A la main, on peut donc commencer en testant les cas , , , …
Pour , ;
Pour , ;
Pour , .
On voit bien en continuant , , … qu'il est préférable d'ajouter 4, 5, … au résultat précédent plutôt que tout recalculer. On préfèrera donc faire plutôt que .
On a distingué ici l'étape répétitive : .
Pour calculer la somme des entiers de 1 à , il faudra faire varier i
de 1 à . On utilisera donc range(1,n+1)
.
On note S la somme cherchée. Au début de la boucle, la variable S
vaut zéro : S = 0
. A la fin de la boucle, on veut que .
Avant la boucle for
, on crée donc la variable S
en l'initialisant à 0. A chaque itération de la boucle for
, on réalise l'opération répétitive suivante : "stocke S+i
dans S
".
Il existe une formule explicite en fonction de pour calculer la somme des premiers entiers :
Écrire une fonction puissance(x,n)
qui prend un réel et un entier naturel en argument et renvoie la puissance -ième de : .
Comme on répète fois , on utilise une boucle for
tout comme la somme des premiers entiers. Ici on multiplie le résultat par à chaque itération.
En Python, il y a la possibilité d'utiliser une double étoile pour calculer une puissance.
Aussi, le module math
de Python dispose d'une fonction pow(x,n)
pour calculer la puissance d'un nombre.