Boucles While
Les boucles while
sont l'outil principal pour gérer l'itération indéfinie, ce qui est utile dans les situations où le nombre d'itérations n'est pas connu à l'avance, comme la surveillance des niveaux de stock jusqu'à ce qu'ils atteignent un seuil spécifique.
Regardez Alex démontrer comment utiliser les boucles while
pour gérer des situations dynamiques :
Une boucle while
en Python exécute en continu un bloc de code tant qu'une condition spécifiée reste True
.
Syntaxe
Pour démarrer une boucle while
, il faut définir une variable de compteur puis utiliser le mot-clé while
suivi d'une condition booléenne. La condition est suivie d'un deux-points :
, qui indique le début du bloc de code de la boucle.
La boucle s'exécutera de façon répétée jusqu'à ce que la condition devienne False
. En général, la variable de compteur est mise à jour à l'intérieur de la boucle afin de rendre la condition False
et d'arrêter la boucle.
Considérez cet exemple de boucle while
:
# Handling a queue at a grocery store checkout queue_length = 5 # Initial number of people in the queue while queue_length > 0: # Start the `while` loop as long as the queue isn't empty print(f"Current queue size: {queue_length}") # Simulate serving a customer print("Serving the next customer...") # Decrease the queue length by 1 as a customer leaves # The `-=` operator is a shortcut for `queue_length = queue_length - 1` queue_length -= 1
Dans cet exemple, queue_length
agit comme notre variable de compteur, débutant à 5
. À chaque itération de la boucle, la valeur de queue_length
diminue de 1
jusqu'à atteindre 0
. À ce moment-là, la boucle se termine car la condition 0 > 0
s'évalue à False
.
Remarque
Il est essentiel de mettre à jour la variable de compteur à l'intérieur de la boucle afin de remplir la condition d'arrêt de la boucle. Sans cela, la boucle s'exécutera indéfiniment, empêchant l'exécution du reste du code.
Exemple d'application
Supposons que vous gérez le stock de lait dans une épicerie. Vous devez vous assurer que le stock ne descende pas en dessous d'un certain seuil, et lorsqu'il le fait, vous devez réapprovisionner pour maintenir le niveau de stock.
Une boucle while
est utile dans cette situation car elle permet de réapprovisionner le lait par incréments sur plusieurs itérations jusqu'à ce que le stock atteigne le niveau souhaité. Sans boucle while
, il faudrait calculer la quantité exacte de lait à réapprovisionner en une seule fois.
Par exemple, considérez qu'un employé du magasin ne peut réapprovisionner qu'une quantité fixe de lait à chaque trajet (par exemple, 20
packs par réapprovisionnement). Si le stock n'est pas entièrement reconstitué, l'employé retourne à l'entrepôt pour apporter un autre lot de lait.
# Initial amount of milk in stock milk_stock = 15 # Minimum stock level before restocking is necessary min_stock = 50 # Quantity a worker can restock at one time restock_quantity = 20 # Start the loop to restock milk until the stock exceeds the minimum required level while milk_stock < min_stock: # If the loop is running, the condition is `True`, indicating we need more milk print(f"Milk stock is low: {milk_stock} units remaining.") # Simulate the process of restocking milk print("Restocking milk...") # Increase the stock by the quantity the worker can bring in one trip milk_stock += restock_quantity # Output the final stock level after restocking is complete print(f"Milk stock updated: {milk_stock} units, which is now sufficient.")
Remarque
milk_stock += restock_quantity
est équivalent àmilk_stock = milk_stock + restock_quantity
. Il s'agit simplement d'une manière plus concise et lisible d'exprimer la même opération.
Le diagramme de flux ci-dessus illustre la logique du while
loop utilisé pour gérer l'inventaire de lait. Remarquez comment la variable de compteur milk_stock
, initialisée à 15
, est incrémentée de la valeur de restock_quantity
à chaque itération de la boucle.
La boucle continue de s'exécuter jusqu'à ce que milk_stock
dépasse le seuil min_stock
de 50
, moment auquel elle s'arrête.
Swipe to start coding
Gérer l'inventaire d'une épicerie en utilisant des boucles while pour s'assurer que Bread
, Eggs
et Apples
atteignent leurs niveaux de stock minimum. Les quantités de réapprovisionnement sont stockées dans un dictionnaire.
- Utiliser une boucle
while
pour vérifier si le stock de"Bread"
est inférieur à son minimum. Le cas échéant, augmenter son stock en utilisant la quantité de réapprovisionnement correspondante du dictionnaire. - Répéter la même logique pour
"Eggs"
et"Apples"
, chacune avec sa propre bouclewhile
. - Après le réapprovisionnement, parcourir le dictionnaire
inventory
à l'aide d'une bouclefor
et afficher les niveaux de stock finaux pour tous les articles.
Exigences de sortie
- Pour chaque article réapprovisionné, afficher :
"<Item> stock is low: <$current_stock> units. Restocking..."
- Après tous les réapprovisionnements, afficher
Final Inventory after restocking:
suivi des niveaux de stock mis à jour :
"<Item>: <$current_stock> units (Minimum required: <$minimum_stock> units)"
- Insérer une nouvelle ligne avant l'inventaire final en utilisant
\n
. - Utiliser des f-strings pour le formatage et des guillemets simples à l'intérieur des chaînes de caractères pour les clés du dictionnaire.
Remarque
Pour éviter les conflits de syntaxe dans les f-strings, utiliser des guillemets doubles autour de la chaîne et des guillemets simples à l'intérieur :
f"Bread stock is low: {inventory['Bread'][0]} units."
Utiliser\n
pour commencer une nouvelle ligne dans la sortie :"First line.\nSecond line."
Solution
Merci pour vos commentaires !