1. La boucle bornée for et le protocole d’itération

En Python, la boucle for n’est pas un simple compteur d’indices comme dans d’autres langages, mais un itérateur universel capable de parcourir n’importe quelle séquence (listes, chaînes, tuples, dictionnaires, générateurs). Associée à la fonction range(), elle permet d’effectuer des répétitions strictement bornées :

# Parcours avec pas et bornes définies
for i in range(1, 10, 2):
    print(f"Valeur impaire : {i}")

# Parcours direct d'une collection
villes_suisses = ["Genève", "Lausanne", "Neuchâtel", "Fribourg"]
for ville in villes_suisses:
    print(f"Centre d'examen : {ville}")

2. La boucle non bornée while et la condition d’arrêt

La boucle while répète un bloc d’instructions tant qu’un prédicat demeure vrai. Elle est particulièrement indiquée lorsque le nombre total d’itérations dépend d’un événement externe ou d’un calcul dynamique. L’ingénieur doit prêter une attention absolue à l’actualisation de la condition pour bannir tout risque de boucle infinie :

compteur = 1
seuil = 100
puissance = 2

while puissance < seuil:
    puissance *= 2
    compteur += 1

print(f"Puissance atteinte : {puissance} en {compteur} itérations.")

3. Contrôle fin du flux : break, continue et la clause else

Le mot-clé break stoppe prématurément la boucle, tandis que continue saute immédiatement à l'itération suivante. Python propose en outre une clause méconnue mais puissante : le else de boucle, qui s'exécute uniquement si la boucle s'est achevée normalement sans rencontrer de break.

Synthèse pédagogique : Privilégiez systématiquement la boucle for lorsque la séquence à explorer est connue ou bornable ; réservez la boucle while aux processus itératifs convergents dont l'arrêt dépend d'une condition d'état.