HOWTO · Python

Python en boucle avec plusieurs conditions

Ce tutoriel montre comment utiliser des boucles while avec plusieurs conditions

Sur cette page

La boucle while en Python est une boucle qui continue d’exécuter le code tant que la condition de l’instruction while, c’est-à-dire la condition de test, reste vraie ; elle s’arrête dès que la condition devient fausse. Cette boucle est utilisée lorsque l’utilisateur ne connaît pas à l’avance le nombre d’itérations à effectuer. Il existe de nombreux cas où une boucle while est utilisée avec plusieurs conditions.

Dans ce tutoriel, nous verrons comment utiliser les boucles while avec plusieurs conditions.

Utiliser les opérateurs logiques and et or pour créer une boucle while Python avec plusieurs conditions

L’opérateur logique and exige que les deux conditions soient satisfaites. Il évalue les conditions de gauche à droite et s’arrête dès que l’une d’elles est fausse, car le résultat combiné est déjà décidé ; ce n’est que lorsque la première condition est vraie qu’il passe à la vérification de la seconde. Si l’une des deux conditions n’est pas satisfaite ou n’est pas vraie, l’instruction sera considérée comme fausse et le code ne s’exécutera pas.

Exemple :

x = 10
y = 20
initial_count = 0
while initial_count < x and initial_count < y:
    print(f"count: {initial_count}, x = {x}, y = {y}")
    initial_count += 1

Sortie :

count: 0, x = 10, y = 20
count: 1, x = 10, y = 20
count: 2, x = 10, y = 20
count: 3, x = 10, y = 20
count: 4, x = 10, y = 20
count: 5, x = 10, y = 20
count: 6, x = 10, y = 20
count: 7, x = 10, y = 20
count: 8, x = 10, y = 20
count: 9, x = 10, y = 20

Dans cette méthode, nous créons d’abord deux variables, x et y, égales respectivement à 10 et 20. Ensuite, nous initialisons le compteur à zéro. Après tout cela, nous commençons notre boucle while, qui crée deux conditions comme indiqué dans le code ci-dessus. La boucle ne continue que tant que les deux conditions sont vraies en même temps. Après dix itérations, le compteur atteint 10, et à ce moment-là la première condition, initial_count < x, est fausse, donc la boucle se termine même si la deuxième condition, initial_count < y, serait encore satisfaite. C’est pourquoi la dernière ligne affichée montre le compteur à 9.

Passons maintenant à l’opérateur logique or. L’opérateur or évalue lui aussi les conditions de gauche à droite, mais il s’arrête dès que l’une d’elles est vraie, car le résultat combiné est déjà décidé. L’avantage d’utiliser cet opérateur est que, même si une seule des deux instructions conditionnelles est vraie, le code s’exécutera. Ce n’est que si les deux instructions s’avèrent fausses que le code ne s’exécutera pas.

Exemple :

x = 10
y = 20
initial_count = 0
while initial_count < x or initial_count < y:
    print(f"count: {initial_count}, x = {x}, y = {y}")
    initial_count += 1

Sortie :

count: 0, x = 10, y = 20
count: 1, x = 10, y = 20
count: 2, x = 10, y = 20
count: 3, x = 10, y = 20
count: 4, x = 10, y = 20
count: 5, x = 10, y = 20
count: 6, x = 10, y = 20
count: 7, x = 10, y = 20
count: 8, x = 10, y = 20
count: 9, x = 10, y = 20
count: 10, x = 10, y = 20
count: 11, x = 10, y = 20
count: 12, x = 10, y = 20
count: 13, x = 10, y = 20
count: 14, x = 10, y = 20
count: 15, x = 10, y = 20
count: 16, x = 10, y = 20
count: 17, x = 10, y = 20
count: 18, x = 10, y = 20
count: 19, x = 10, y = 20

Notez que dans cette méthode, la boucle ne s’arrête pas lorsque le compteur atteint 10. La première condition devient fausse à ce moment-là, mais la deuxième condition, initial_count < y, est toujours vraie, et une seule condition vraie suffit pour or. La boucle continue donc jusqu’à ce que le compteur atteigne 20, où les deux conditions sont fausses, et la dernière ligne affichée montre le compteur à 19.

Utiliser l’opérateur logique not pour créer une boucle while Python avec plusieurs conditions

Il existe un autre opérateur logique avec lequel nous pouvons utiliser la boucle while avec plusieurs conditions, et cet opérateur s’appelle not. Cet opérateur est utilisé pour renvoyer la valeur opposée de l’instruction booléenne. Par exemple, si l’état booléen est not False, la valeur renvoyée sera vraie, et si l’instruction booléenne est not True, la valeur renvoyée sera fausse.

Exemple :

x = 10
y = 20
initial_count = 0
while not initial_count > x and not initial_count > y:
    print(f"count: {initial_count}, x = {x}, y = {y}")
    initial_count += 1

Sortie :

count: 0, x = 10, y = 20
count: 1, x = 10, y = 20
count: 2, x = 10, y = 20
count: 3, x = 10, y = 20
count: 4, x = 10, y = 20
count: 5, x = 10, y = 20
count: 6, x = 10, y = 20
count: 7, x = 10, y = 20
count: 8, x = 10, y = 20
count: 9, x = 10, y = 20
count: 10, x = 10, y = 20

Ici, la condition du while signifie que la boucle s’exécute tant que le compteur initial n’est pas supérieur à x et n’est pas supérieur à y. Le and au milieu suit la même règle que précédemment : comme la première instruction avec not est vraie pour chaque compteur jusqu’à 10, la deuxième instruction avec not est également évaluée. La boucle s’arrête au compteur 11, où not initial_count > x devient faux et où and court-circuite sans vérifier la deuxième partie. Comme x est la plus petite des deux limites, c’est elle qui termine la boucle, et la dernière ligne affichée montre le compteur à 10. Autrement dit, not A and not B équivaut à not (A or B), donc cette boucle s’exécute tant que le compteur ne dépasse aucune des deux limites.

Ainsi, de même que nous n’avons pris que deux conditions dans la boucle while à titre d’exemple, d’autres instructions de ce type peuvent être ajoutées.