Boucles conditionnelles#

Qu'est-ce qu'une boucle conditionnelle ?#

De manière générale, une boucle conditionnelle permet de répéter l'exécution d'un bloc d'instructions plusieurs fois tant qu'une certaine condition est respectée. On peut typiquement penser à un système de connexion qui ne laisse pas l'utilisateur entrer dans le système avant que le bon mot de passe soit donné. Le programme ressemblerait alors à ceci.

Afficher "Connectez-vous"
Demander le mot de passe à l’utilisateur
Tant que le mot de passe est différent de "Fr1B0urg"
    Afficher "Mot de passe incorrect"
    Redemander le mot de passe à l’utilisateur
Afficher "Mot de passe correct, bienvenue"

Grâce à l'instruction tant que, le bloc d'instruction indenté en dessous est répété en boucle tant que la condition mot de passe est différent de "Fr1B0urg" est vraie. Comme la dernière instruction n'est pas indentée, celle-ci ne sera pas exécutée avant que l'exécution de la boucle soit terminée, et ainsi que le mot de passe soit correct. Ainsi, en fonction des entrées de l'utilisateur, on peut distinguer les exécutions suivantes.

La boucle while#

En Python, la boucle conditionnelle tant que se traduit littéralement par le mot anglais while. Ce mot-clef est suivi d'une expression conditionnelle qui détermine la condition d'arrêt de la boucle, et la ligne se termine par deux points. À chaque fois que le programme passe par cette ligne, l'expression conditionnelle est réévaluée, et, à chaque fois que le résultat de cette évaluation est True, le bloc d'instructions indenté en dessous est exécuté. Après ce bloc indenté, l'exécution remonte à la ligne du while pour réévaluer l'expression conditionnelle. Ainsi, l'exemple du programme de connexion avec un mot de passe peut s'écrire de la manière suivante en Python.

Programme Python de contrôle de mot de passe#
print("Connectez-vous")
mdp = input("Entrez le mot de passe")
while mdp != "Fr1B0urg" :
    print("Mot de passe incorrect")
    mdp = input("Entrez à nouveau le mot de passe")
print("Mot de passe correct")

Dans ce deuxième exemple, les nombres de 0 à 100 sont affichés :

nombre = 0
while nombre <= 100:
    print(nombre)
    nombre += 1

Dans ce troisième exemple, le programme demande à l'utilisateur d'entrer les notes qu'il a faites en informatique, et compte combien sont insuffisantes. Le programme s'arrête lorsque l'utilisateur entre une note invalide (inférieure à 1 ou supérieure à 6). Notez qu'il est impératif que la variable note soit définie avant la ligne du while de sorte que la condition puisse être exécutée une première fois pour entrer dans la boucle.

nombre_notes_insuffisantes = 0
note = 5
while note > 1 and note < 6:
    note = input("Entrez une note : ")
    if note < 4 and note > 1 :
        nombre_notes_insuffisantes += 1
print("Vous avez fait", nombre_notes_insuffisantes, "note insuffisantes.")