5.3 Boucles imbriquées
Objectifs d'apprentissage
À la fin de cette section, vous devriez être capable de :
- Implémenter des boucles
whileimbriquées. - Implémenter des boucles
forimbriquées.
Boucles imbriquées
Une boucle imbriquée (nested loop) comporte une ou plusieurs boucles à l'intérieur du corps d'une autre boucle. Les deux boucles sont appelées boucle externe (outer loop) et boucle interne (inner loop). La boucle externe contrôle le nombre d'exécutions complètes de la boucle interne. Il peut exister plus d'une boucle interne dans une boucle imbriquée.
Exemple 5.3
Rendez-vous disponibles
Considérons l'emploi du temps d'un cabinet médical. Chaque rendez-vous dure 30 minutes. Un programme permettant d'afficher les rendez-vous disponibles peut utiliser une boucle for imbriquée où la boucle externe itère sur les heures et la boucle interne itère sur les minutes. Cet exemple affiche l'heure sous forme d'heures et de minutes dans la plage comprise entre 8h00 et 10h00. Dans cet exemple, la boucle externe itère sur la partie des heures entre 8 et 9, et la boucle interne itère sur la partie des minutes entre 0 et 59.
hour = 8
minute = 0
while hour <= 9:
while minute <= 59:
print(hour, ":", minute)
minute += 30
hour += 1
minute = 0
La sortie du code ci-dessus est :
8 : 0
8 : 30
9 : 0
9 : 30
Concepts en pratique
Ensemble de questions sur les boucles while imbriquées
Boucles for imbriquées
Une boucle for imbriquée peut être implémentée et utilisée de la même manière qu'une boucle while imbriquée. Une boucle for est une option préférable lorsqu'une boucle est utilisée pour compter à l'aide d'une fonction range(), ou lors de l'itération sur un objet conteneur, y compris dans des situations imbriquées. Ex. : itérer sur les listes d'inscrits de plusieurs cours. La boucle externe itère sur les différents cours, et la boucle interne itère sur les noms figurant dans chaque liste d'inscrits.
Concepts en pratique
Exercices pratiques sur les boucles imbriquées
Boucles mixtes
Les deux structures de boucle for et while peuvent également être combinées dans une structure de boucle imbriquée. Ex. : afficher les nombres pairs inférieurs à un nombre donné dans une liste. La boucle externe peut être implémentée à l'aide d'une boucle for qui itère sur la liste fournie, et la boucle interne itère sur tous les nombres pairs inférieurs au nombre donné de la liste à l'aide d'une boucle while.
numbers = [12, 5, 3]
i = 0
for n in numbers:
while i < n:
print (i, end = " ")
i += 2
i = 0
print()
À vous d'essayer
Afficher un triangle de nombres
Écrivez un programme qui affiche la sortie suivante :
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8
1 2 3 4 5 6 7
1 2 3 4 5 6
1 2 3 4 5
1 2 3 4
1 2 3
1 2
1
Finish!
À vous d'essayer
Afficher deux triangles
Écrivez un programme qui affiche la sortie suivante à l'aide de boucles while et for imbriquées :
****
***
**
*
++++
+++
++
+