Vidéo 27 : Boucles for imbriquées¶
Boucles for imbriquées¶
Soit à écrire un code Python qui affiche un texte comme le suivant :
1
1 2
1 2 3
1 2 3 4
1 2 3 4 5
1 2 3 4 5 6
1 2 3 4 5 6 7
1 2 3 4 5 6 7 8
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9 10
1 2 3 4 5 6 7 8 9 10 11
1 2 3 4 5 6 7 8 9 10 11 12
1 2 3 4 5 6 7 8 9 10 11 12 13
1 2 3 4 5 6 7 8 9 10 11 12 13 14
Plus précisément, chaque ligne L
reprend la ligne précédente K
mais L
est complétée par l’entier qui suit le dernier entier de la liste affichée dans K
.
Noter qu’il y a deux types de répétition d’actions :
- répétition d’affichage de ligne
- répétition d’affichage de nombres dans chaque ligne
Un code répondant au problème pourrait être le suivant :
1 2 3 4 | for lig in range(1,15):
for col in range(1,lig + 1):
print(col, end = " ")
print()
|
On constate qu’une boucle for (lignes 2-3) est imbriquée dans une boucle for (lignes 1-4). On dit que :
- la boucle ligne 1 est la boucle externe ;
- la boucle ligne 2 est la boucle interne (ou encore la boucle la plus profonde).
La boucle for
(ligne 1) contrôle la progression par ligne. Un numéro lig
de ligne étant fixée, l’autre boucle for (ligne 2) contrôle la progression de gauche à droite dans la ligne fixée.
Noter à la ligne 3 la présence de l’argument nommé de la fonction print :
end = " "
qui permet
- d’empêcher le passage à la ligne pendant qu’on affiche les éléments de la \(i^\text{e}\) ligne,
- de séparer deux nombres par un espace.
Noter aussi ligne 4, l’appel à la fonction print
pour séparer deux lignes consécutives de l’affichage.
D’une façon générale, le corps de toute boucle for
peut contenir n’importe quel type d’instructions, et en particulier une autre boucle for
.