À propos des boucles « while »

Effectué

Quand vous écrivez du code, l’un des défis courants est de lui faire exécuter une tâche un nombre de fois inconnu. Dans cette unité, vous voulez autoriser un utilisateur à entrer une liste de noms de planète. Malheureusement, vous ne savez pas combien de noms sont entrés par l’utilisateur. Pour prendre en charge l’exécution d’une boucle un nombre de fois inconnu, vous pouvez utiliser une boucle while.

Une boucle while effectue une opération tant qu’une certaine condition est vraie. Vous pouvez utiliser une boucle while pour :

  • Rechercher une autre ligne dans un fichier.
  • Vérifier si un indicateur a été défini.
  • Vérifier si un utilisateur a terminé d’entrer des valeurs.
  • Vérifier si quelque chose d’autre a changé pour indiquer que le code peut arrêter l’exécution de l’opération.

Important

La chose la plus importante à retenir quand vous créez des boucles while est qu’il faut que la condition change. Si la condition est toujours vraie, Python continue d’exécuter votre code jusqu’à ce que le programme se bloque.

La syntaxe d’une boucle while ressemble à celle d’une instruction if. Vous fournissez à la fois une condition et le code à exécuter quand la condition est vraie.

Une boucle while est composée de trois parties importantes :

  • Le mot-clé while, suivi d’un espace.

  • La condition que vous testez. Si la condition est vraie, le code à l’intérieur de la boucle while s’exécute.

  • Code que vous souhaitez exécuter pour chaque itération, mis en retrait par un espace blanc imbriqué. Par exemple :

    while <condition>:
        # code here
    

Voyons comment créer du code pour inviter les utilisateurs à entrer des valeurs, puis les autoriser à entrer done une fois qu’ils ont terminé d’entrer les valeurs. Dans notre exemple, l’entrée utilisateur est la condition qui est testée en haut de la boucle while.

user_input = ''

while user_input.lower() != 'done':
    user_input = input('Enter a new value, or done when done')

Notez que vous utilisez input pour inviter les utilisateurs à entrer une valeur. Chaque fois que les utilisateurs entrent une nouvelle valeur, ils changent la condition, ce qui signifie que la boucle while se termine dès qu’ils ont entré done.

Notes

Dans notre exemple, nous avons utilisé lower pour convertir l’entrée en minuscules, ce qui nous permet de lancer une comparaison insensible la casse.

Vous pouvez utiliser la chaîne que vous venez d’entrer comme toute autre chaîne capturée avec input. Pour l’ajouter à une liste, vous pouvez utiliser du code similaire à l’exemple suivant :

# Create the variable for user input
user_input = ''
# Create the list to store the values
inputs = []

# The while loop
while user_input.lower() != 'done':
    # Check if there's a value in user_input
    if user_input:
        # Store the value in the list
        inputs.append(user_input)
    # Prompt for a new value
    user_input = input('Enter a new value, or done when done')

Notez l’instruction if à l’intérieur de la boucle while. Cette instruction teste une valeur de chaîne à l’intérieur de user_input. Si la boucle while s’exécute pour la première fois, il n’y a pas de valeur, donc rien n’est stocké dans inputs. Dès qu’elle a été exécutée une fois, user_input conserve la valeur que l’utilisateur a entrée. Comme while vérifie que la valeur n’est pas égale à done (le mot que l’utilisateur entre pour quitter l’application), vous savez que la valeur actuelle peut être ajoutée à la liste.

Notes

Vous connaissez peut-être d’autres langages de programmation qui prennent en charge une boucle do, laquelle permet d’effectuer un test en bas de la boucle. Python ne fournit pas de boucle do.