Python - Boucles Imbriquées
Bonjour, aspirants programmeurs !aujourd'hui, nous allons plonger dans le monde fascinant des boucles imbriquées en Python. En tant que votre enseignant de informatique de quartier, je suis ravi de vous guider à travers ce voyage. Croisez les doigts, à la fin de cette leçon, vous serez en mesure de boucler comme un pro !
Qu'est-ce qu'une Boucle Imbriquée ?
Avant de plonger dans les profondeurs, commençons par les bases. Imaginez que vous organisez votre placard. Vous traversez chaque étagère (c'est une boucle), et pour chaque étagère, voustriez tous les articles qu'elle contient (c'est une autre boucle à l'intérieur de la première). C'est essentiellement ce qu'ellesont les boucles imbriquées en programmation - des boucles à l'intérieur d'autres boucles !
Boucle for
Imbriquée en Python
Commençons par la boucle for
, qui est comme un vieil ami fiable dans le monde Python.
Structure de Base
Voici la structure générale d'une boucle for
imbriquée :
for variable_extérieure in séquence_extérieure:
# Corps de la boucle extérieure
for variable_intérieure in séquence_intérieure:
# Corps de la boucle intérieure
Exemple Simple : Table de Multiplication
Créons une simple table de multiplication pour mieux comprendre cela :
for i in range(1, 6):
for j in range(1, 6):
print(f"{i} x {j} = {i*j}", end="\t")
print() # Passer à la ligne suivante après chaque rangée
Ce code produira :
1 x 1 = 1 1 x 2 = 2 1 x 3 = 3 1 x 4 = 4 1 x 5 = 5
2 x 1 = 2 2 x 2 = 4 2 x 3 = 6 2 x 4 = 8 2 x 5 = 10
3 x 1 = 3 3 x 2 = 6 3 x 3 = 9 3 x 4 = 12 3 x 5 = 15
4 x 1 = 4 4 x 2 = 8 4 x 3 = 12 4 x 4 = 16 4 x 5 = 20
5 x 1 = 5 5 x 2 = 10 5 x 3 = 15 5 x 4 = 20 5 x 5 = 25
Analysons cela :
- La boucle extérieure (
for i in range(1, 6)
) s'exécute 5 fois, représentant les lignes. - Pour chaque itération de la boucle extérieure, la boucle intérieure (
for j in range(1, 6)
) s'exécute 5 fois, représentant les colonnes. - Nous imprimons chaque résultat de multiplication, en utilisant
end="\t"
pour ajouter une tabulation au lieu d'un saut de ligne. - Après chaque ligne (itération de la boucle extérieure), nous imprimons une ligne vide pour passer à la ligne suivante.
Exemple du Monde Réel : Arrangement des Places
Imaginez que vous êtes un enseignant (comme moi !) en train d'arranger les places pour une classe. Créons un plan de sièges :
étudiants = ["Alice", "Bob", "Charlie", "David", "Eve"]
rangées = 3
places_par_rangée = 2
numéro_de_place = 0
for rangée in range(1, rangées + 1):
print(f"Rangée {rangée} :")
for place in range(1, places_par_rangée + 1):
if numéro_de_place < len(étudiants):
print(f" Place {place} : {étudiants[numéro_de_place]}")
numéro_de_place += 1
else:
print(f" Place {place} : Vide")
print() # Ligne vide entre les rangées
Ce qui donnera :
Rangée 1 :
Place 1 : Alice
Place 2 : Bob
Rangée 2 :
Place 1 : Charlie
Place 2 : David
Rangée 3 :
Place 1 : Eve
Place 2 : Vide
Dans cet exemple :
- La boucle extérieure itère à travers chaque rangée.
- La boucle intérieure affecte des étudiants aux places de chaque rangée.
- Nous utilisons une variable
numéro_de_place
pour suivre quel étudiant nous affectons ensuite. - Si nous manquons d'étudiants, nous marquons les places restantes comme "Vide".
Boucle while
Imbriquée en Python
Maintenant, rencontrons le cousin de la boucle while
- la boucle while
imbriquée. C'est comme un gardien vigilant qui vérifieconstamment une condition.
Structure de Base
Voici à quoi ressemble typiquement une boucle while
imbriquée :
while condition_extérieure:
# Corps de la boucle extérieure
while condition_intérieure:
# Corps de la boucle intérieure
Exemple : Pyramide de Nombres
Créons une pyramide de nombres pour voir les boucles while
imbriquées en action :
rangée = 1
while rangée <= 5:
colonne = 1
while colonne <= rangée:
print(colonne, end=" ")
colonne += 1
print() # Passer à la ligne suivante
rangée += 1
Ce qui donnera :
1
1 2
1 2 3
1 2 3 4
1 2 3 4 5
Analysons cela :
- La boucle
while
extérieure contrôle le nombre de lignes (1 à 5). - Pour chaque ligne, la boucle
while
intérieure imprime des nombres de 1 au nombre de la ligne actuelle. - Nous incrémentons
colonne
à l'intérieur de la boucle intérieure etrangée
à l'intérieur de la boucle extérieure.
Exemple du Monde Réel : Vérification de l'Inventaire
Imaginez que vous gérez un petit magasin. Vous devez vérifier votre inventaire régulièrement. Simulons cela avec desboucles while
imbriquées :
inventaire = {
"pommes": 50,
"bananes": 30,
"oranges": 40
}
jours = 1
while jours <= 3: # Vérification pour 3 jours
print(f"Jour {jours} Vérification de l'Inventaire :")
for fruit, quantité in inventaire.items():
while quantité > 0:
print(f"Vérification de {fruit}...")
quantité -= 10 # Simuler la vente de 10 unités à chaque vérification
if quantité <= 20:
print(f"Alerte de stock faible pour {fruit} ! Il ne reste plus que {quantité}.")
break # Arrêter de vérifier ce fruit si le stock est faible
inventaire[fruit] = quantité # Mettre à jour l'inventaire
print(f"Fin du Jour {jours} Inventaire : {inventaire}\n")
jours += 1
Ce qui donnera quelque chose comme :
Jour 1 Vérification de l'Inventaire :
Vérification de pommes...
Vérification de pommes...
Vérification de pommes...
Alerte de stock faible pour pommes ! Il ne reste plus que 20.
Vérification de bananes...
Alerte de stock faible pour bananes ! Il ne reste plus que 20.
Vérification de oranges...
Vérification de oranges...
Alerte de stock faible pour oranges ! Il ne reste plus que 20.
Fin du Jour 1 Inventaire : {'pommes': 20, 'bananes': 20, 'oranges': 20}
Jour 2 Vérification de l'Inventaire :
Vérification de pommes...
Alerte de stock faible pour pommes ! Il ne reste plus que 10.
Vérification de bananes...
Alerte de stock faible pour bananes ! Il ne reste plus que 10.
Vérification de oranges...
Alerte de stock faible pour oranges ! Il ne reste plus que 10.
Fin du Jour 2 Inventaire : {'pommes': 10, 'bananes': 10, 'oranges': 10}
Jour 3 Vérification de l'Inventaire :
Vérification de pommes...
Alerte de stock faible pour pommes ! Il ne reste plus que 0.
Vérification de bananes...
Alerte de stock faible pour bananes ! Il ne reste plus que 0.
Vérification de oranges...
Alerte de stock faible pour oranges ! Il ne reste plus que 0.
Fin du Jour 3 Inventaire : {'pommes': 0, 'bananes': 0, 'oranges': 0}
Dans cet exemple :
- La boucle
while
extérieure simule la vérification de l'inventaire pour 3 jours. - Nous utilisons une boucle
for
pour itérer à travers chaque fruit de l'inventaire. - La boucle
while
intérieure simule la vérification et la vente de chaque fruit jusqu'à ce que le stock soit faible ou épuisé. - Nous utilisons
break
pour arrêter de vérifier un fruit si sa quantité tombe à 20 ou en dessous.
Conclusion
Félicitations ! Vous venez de maîtriser l'art des boucles imbriquées en Python. Souvenez-vous, les boucles imbriquées sont des outils puissants, mais utilisez-les avec sagesse. Elles peuvent rendre votre code plus lent si elles ne sont pas utilisées efficacement.
Comme pour tous les concepts de programmation, la pratique fait le maître. Essayez de créer vos propres scénarios de boucles imbriquées - peut-être une configuration de plateau d'échecs, ou un calendrier scolaire hebdomadaire. Les possibilités sont infinies !
Continuez à coder, à apprendre, et surtout, amusez-vous bien ! Jusqu'à la prochaine fois, c'est votre enseignant de informatique de quartier qui vous dit aurevoir. Bon bouclage !
Credits: Image by storyset