La boucle for (pour)
Le modèle index-variable
Lors de l'usage de la boucle while, vous aurez possiblement remarqué qu'il existe un modèle très commun qui consiste à utiliser une variable pour compter le nombre d'itérations. Par exemple, pour afficher les nombres de 1 à 10, vous pourriez écrire le code suivant :
Cet exemple qui inclus trois parties (déclaration de l'index, comparaison de l'index avec une condition et incrémentation/décrémentation de l'index) est très commun et est utilisé dans plusieurs situations. Tellement qu'une autre structure existe pour simplifier ce modèle. Il s'agit de la boucle for
. Elle utilise généralement la syntaxe suivante :
Avec la boucle for
, vous n'avez pas besoin de déclarer une variable avant votre boucle, dans notre exemple, la variable index contiendra la valeur de l'index à chaque itération.
La fonction range est une fonction qui génère une séquence de nombres. Elle prend trois arguments : le début de la séquence, la fin de la séquence et le pas. Par défaut, le pas est de 1 et le début est 0. C'est-à-dire que range(10) génère une séquence de nombres de 0 à 9. Si vous voulez une séquence de 1 à 10, vous devez spécifier le début de la séquence en passant 1 comme premier argument de cette manière : range(1, 11). On pourrait également faire un compteur qui décompte de 10 à 1 en spécifiant un pas de -1 : range(10, 0, -1).
La boucle for
est très utile pour répéter un bloc de code un nombre déterminé de fois. Elle peut également être utilisée pour parcourir les éléments d'une liste, d'une chaîne de caractères ou d'un dictionnaire. Par exemple, nous pouvons utiliser une boucle for pour afficher les caractères d'une chaîne de caractères un par un :
Dans cet exemple, la variable lettre contiendra un caractère de la chaîne de caractères mot à chaque itération. La boucle for est donc très utile pour parcourir les éléments d'une séquence. Nous verrons plus en détail comment parcourir les éléments d'une liste et d'un dictionnaire dans les sections suivantes lorsque nous aborderons ces structures de données.
Comme vous pouvez le voir, il est possible de faire la même chose avec une boucle while mais la boucle for est plus adaptée pour ce genre de situation. Elle est plus concise et plus lisible. C'est pourquoi il est recommandé d'utiliser une boucle for lorsque vous savez à l'avance combien de fois vous devez répéter un bloc de code.
Boucles imbriquées
Que ce soit les boucles for ou while, rien ne nous empêche d'imbriquer plusieurs boucles. C'est-à-dire de mettre une boucle à l'intérieur d'une autre boucle. Cela peut être utile pour parcourir des éléments d'une liste de plusieurs dimensions ou pour générer des tableaux (matrices). Voici un exemple de boucles imbriquées :