ÉMILIE DE RODAT
TECHNOLOGIE
Chapitre 5 : Python, « Structures Itératives ou Boucles non bornées »

Il existe en Python deux types de boucles : la boucle « while » (non-bornée) et la boucle « for » (bornée). « while » se traduit par « tant que » en français. « for » se traduit par « pour » en français.
1. Boucle while
La boucle for a l'avantage d'être simple à utiliser, mais elle nécessite de connaître à l'avance (avant d'entrer dans la boucle) le nombre de tours de boucles qui vont être effectués. Dans certaines situations, on souhaiterait demander au programme de sortir de la boucle lorsqu'une certaine condition est réalisée, par exemple lorsqu'une valeur dépasse un certain seuil, ou lorsque l'utilisateur a saisi le bon mot de passe ou cliqué sur un bouton. La boucle while permet de
répondre à ce besoin.
Syntaxe de la boucle while : :
while condition:
bloc d'instructions A
bloc d'instructions B
Tant que la condition est vraie, le bloc d'instructions A est exécuté, généralement plusieurs fois. Les instructions du bloc A agissent sur la condition pour la rendre fausse au bout d'un certain nombre de tours. Alors le programme sort de la boucle et se poursuit avec l'exécution du bloc B.
Remarques :
• Il est possible que la boucle ne soit jamais exécutée, si la condition est initialement fausse.
• Il est possible que le programme boucle indéfiniment et ne s'arrête jamais, lorsque la condition est toujours vraie. On parle alors de boucle infinie (à éviter !!!)
Exemple de boucle infinie :
i = 0
while i < 10 :
i = i -1
On peut se passer complètement des boucles for et les remplacer par des boucles while comme le montrent les deux programmes équivalents ci-dessous :
Boucle bornée:
for i in range(5):
print("Coucou")
Boucle non bornée:
i = 0
while i < 5:
print("Coucou")
i = i + 1
On utilise donc la boucle « while » si on ne connais pas le nombre itérations en amont, ou si on veut incrémenter par un nombre non-entier. Sinon, on peut utiliser la boucle « for », ce qui est plus simple.
Remarque : i=i+1 peut aussi s’écrire i+=1 sous Python
Autre exemple, on ne sait pas quand la boucle va s’arreter :
e=int(input('entrer un nombre entier différent de 0'))
while e==0:
e=int(input('il faut un nombre entier différent de 0'))
print(e)
Ce programme permet de demander à un utilisateur un nombre entier différent de 0, tant que l’utilisateur n’entre pas une valeur respectant cette contrainte, il devra recommencer. L’intérêt de ce type de boucle est d’être sûr que l’utilisateur aura entré une valeur qui respectera les contraintes souhaitées par le programme. Nous remarquerons que cette boucle n’utilise pas d’itérateur.
Remarque : On peut combiner des boucles « while » sur plusieurs niveaux, tout comme des conditions, il faut donc être toujours très vigilant au bon usage des indentations. Exemples :

2. Problèmes de seuil
La boucle "while" est souvent utilisée (notamment en mathématiques) pour déterminer le rang à partir duquel un certain seuil sera dépassé ou atteint. Exemple : La population d'un village de 1000 habitants augmente chaque année de 17 habitants en moyenne. Voici un programme qui calcule le nombre d'années au bout duquel la population de ce village risque de dépasser 1300 habitants.
def nombreAnnees(population):
annee = 0
while population <= 1300:
population = population + 17
annee = annee + 1
return annee
print(nombreAnnees(1000))