La boucle While pour automatiser un programme Python

Une des opérations de base en programmation consiste à répéter une action. Pour cela, les langages de programmation permettent de déclarer des boucles. le langage Python dispose de deux structures : les boucles for et les boucles while. La première sert à parcourir des collections et la seconde à répéter une action en fonction d’une condition.

Je vais parler ici de la seconde, la boucle while. Et en particulier de son usage pour les programme qui tourne de manière permanente en tâche de fond (comme les deamons Linux).

While : exécuter une action tant que

Rassurez vous, mon titre est complet. La structure d’une boucle avec le mot-clef while est la suivante :

while condition:
    action

La boucle utilisant le mot-clef while va répéter son action tant que la condition est vrai. Cette boucle sert donc à répéter une action en fonction de l’état d’un programme. Le nombre d’itérations n’est pas connu lors du démarrage de la boucle.

Cette boucle est souvent illustrée par la suite de Fibonacci pour laquelle nous souhaitons afficher les valeurs de la suite jusqu’à une certaine limite. D’avance, nous ne savons pas de combien d’itérations nous allons avoir besoin. Nous évaluons donc à chaque itération la valeur obtenue et si elle est inférieur à la limite, nous recommençons. Tant que la valeur est inférieur à la limite, nous recommençons.

value = 1
previous = 0
while value < 30:
    print(value)
    value, previous = value + previous, value

While : les bases de l’automatisation

Un code qui fait souvent réagir avec la boucle while est le suivant :

while True:
    do_something()

Au lieu d’une condition, nous avons une valeur True. En soi, c’est cohérent, une condition retourne la valeur vrai (True), et dans ce cas la boucle continue ou la valeur faux (False) et dans ce cas, l’interpréteur sortira de la boucle.

Ici, nous n’avons pas de condition mais directement la valeur True. La condition sera toujours vrai et la boucle s’exécutera de manière infinie. À l’école, nous apprenons que c’est mal car le programme tourne alors sans fin. Mais c’est au contraire très souvent le but !

L’objectif de la programmation est l’automatisation. Il s’agit donc de répéter une action. Souvent, cette action consiste simplement à rester à l’écoute afin de réagir en fonction d’un état. C’est le cas par exemple avec un Raspberry Pi en utilisant un capteur sur les GPIOs. Nous voudrons alors répéter la mesure du capteur pour faire quelque chose en fonction de la valeur. Ainsi, nous pouvons avoir un programme selon cette structure (c’est du pseudocode) :

while True:
    if sensor.is_activated():
        do_something()
    time.sleep(1000)

Cette boucle fera quelque chose si le capteur est activé puis (dans tous les cas) attendra une seconde avant de recommencer.

N’ayez donc pas d’inquiétude à utiliser une boucle while qui est toujours vrai. Bien entendu avec l’instruction break il y a possibilité de l’interrompre. Mais si vous voulez utiliser un ordinateur comme un Raspberry Pi qui fonctionne en permanence pour faire quelque chose, alors la boucle infinie est la base.

Si vous avez aimé ce post, n’hésitez pas à laisser un commentaire ci-dessous ou sur la page Facebook 😉

À propos de... Darko Stankovski

iT guy, photographe et papa 3.0, je vous fais partager mon expérience et découvertes dans ces domaines. Vous pouvez me suivre sur les liens ci-dessous.

Vous aimerez aussi...

1 réponse

  1. 16 octobre 2021

    […] Vous trouverez plus d’infos dans mon article sur l’automatisation avec la boucle while. […]

Laisser un commentaire

En naviguant sur Dad 3.0, vous acceptez l’utilisation de cookies pour une navigation optimale et nous permettre de réaliser des statistiques de visites. Plus d'informations

Le blog Dad 3.0 utilise les cookies pour vous permettre une navigation optimale et nous permettre de réaliser des statistiques de visite. Dad 3.0 affichant des publicités, celles-si utilisent également des cookies pour un ciblage publicitaire. En continuant la navigation sur Dad 3.0, vous acceptez le dépôt et la lecture de cookies.

Fermer