1.1 Boucle TANT QUE
A - Principe
Le mot-clé while permet de réaliser une boucle sous condition. Le principe est le suivant :
Lorsqu’on tombe sur le début de la boucle, on évalue l’expression de poursuite.
Si elle est vraie, on réalise un tour de boucle et on revient au début.
Si elle est fausse, on arrête la boucle, en cherchant la première instruction hors boucle (non indentée).
Comme pour for et if, c'est l'indentation qui renseigne sur le bloc à réaliser :
L1 début du programme
L2
L3 while condition de poursuite:
L4 instruction A
L5 instruction B
L6 instruction C
L7
L8 suite du programme
On a donc deux possibilités d'exécution :
- si poursuite est True en L3 : L3(True) - L4-L5-L6 puis L3 à nouveau.
- si poursuite est False en L3 : L3(True) - L8.
B - Un classique : valeur de seuil
Le programme suivant permet de répondre à ce problème :
- on considère une épargne initiale de 10 euros.
- On double l'épargne tous les mois.
- Tant que l'épargne est inférieure à 500 euros, on laisse la somme sur le compte.
- Au bout de combien de mois va-t-on atteindre 5000 euros ou plus ?
1
2
3
4
5
6
7
8
9 |
|
Si on lance le programme :
>>> %Run boucleTQ.py
5120
9
On voit qu'on atteint 640 euros au bout de 6 mois. Un compte bancaire qui rapporte 100% tous les mois, c'est rentable mais malheureusement totalement imaginaire.
Traduction et déroulé
- L1 (epargne=10) - L2 (nb_mois=0)
- L4 (condition 10<500 vrai) - L5 (epargne=10*2=20) - L6 (nb_mois=0+1=1)
- L4 (condition 20<500 vrai) - L5 (epargne=20*2=40) - L6 (nb_mois=1+1=2)
- L4 (condition 20<500 vrai) - L5 (epargne=40*2=80) - L6 (nb_mois=2+1=3)
- L4 (condition 20<500 vrai) - L5 (epargne=160) - L6 (nb_mois=3+1=4)
- L4 (condition 20<500 vrai) - L5 (epargne=320) - L6 (nb_mois=4+1=5)
- L4 (condition 20<500 vrai) - L5 (epargne=640) - L6 (nb_mois=5+1=6)
- L4 (condition 640<500 faux) : FIN DU TANT QUE.
- L8-L9 : affichage des variables