Boucles conditionnées while
⚓︎
Une alternative à l'instruction for
couramment utilisée en informatique est la boucle while
. Avec ce type de boucle, une série d'instructions est exécutée tant qu'une condition est vraie.
syntaxe d'une boucle conditionnée
L'instruction while ... : ...
permet d'exécuter un bloc indenté tant qu'une condition est vraie :
Important
Cliquez sur les + et prenez le temps de lire les commentaires !
syntaxe d'une boucle finie | |
---|---|
1 2 3 4 5 6 |
|
Les
:
sont obligatoires aprèsif
,elif
,else
,for
etwhile
bloc indenté exécuté tant que la condition
<test>==True
exécutée lorsque
<test>==False
Example 1
- Exécuter le script ci-dessous.
- Modifier la ligne 2 pour que la boucle s'arrète lorsque \(n=2\).
Solution
Pour une sortie de boucle lorsque \(n\geqslant2\) il faut poursuivre tant que \(n>2\).
Example 2
La racine carrée entière d'un entier naturel \(n\) est le plus grand entier inférieur à \(\sqrt{n}\).
isqrt(10)=3
, car \(3^2\leqslant 10 < 4^2\).isqrt(25)=5
, car \(5^2\leqslant 25 < 6^2\).
La fonction isqrt()
prend pour paramètre n
et renvoie sa racine carrée entière.
Corriger les 2 erreurs de ce script et valider votre réponse.
# Tests
(insensible à la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)
Example 3
Analyser le script ci-dessus et déterminer ce qui est affiché.
1 2 3 4 |
|
Solution
n |
1 | 2 | 3 | 4 | 5 | 6 |
---|---|---|---|---|---|---|
1.15**n |
1.15 |
1.3224999999999998 |
1.5208749999999998 |
1.7490062499999994 |
2.0113571874999994 |
2.313060765624999 |
Lorsque \(n=5\), la condition de la boucle est fausse, et elle s'arrète.
Le script affiche la valeur \(5\), c'est le plus petit entier tel que \(1.15^n\geqslant 2\).
QCM⚓︎
Je vérifie ma compréhension (bouton en bas pour recommencer)
-
Analyser le script ci-dessus et déterminer ce qui est affiché :
1 2 3 4
n=1 while 1.11**n < 2 : n = n+1 print(n)
- Tous les entiers tels que \(1.11^{n}<2\)
- Le plus grand entier \(n\) tel que \(1.11^{n}\geqslant 2\)
- Le plus petit entier \(n\) tel que \(1.11^{n}\geqslant 2\)
- Rien car il ne s'arrête pas
-
Analyser le script ci-dessus et déterminer ce qui est affiché :
1 2 3 4
n=1 while 1.17**n<2: n = n+1 print(n)
- Rien car il ne s'arrête pas
- Le plus grand entier \(n\) tel que \(1.17^{n}\geqslant 2\)
- 2.192448
- 5
-
Analyser le script ci-dessus et déterminer ce qui est affiché :
1 2 3 4
n=1 while 0.88**n>0.5: n = n+1 print(n)
- Rien car il ne s'arrête pas
- Le plus grand entier \(n\) tel que \(0.88^{n}> 0.5\)
- 6
- 5
-
Analyser le script ci-dessus et déterminer ce qui est affiché :
1 2 3 4
n=1 while 0.85**n>0.5: n = n+1 print(n)
- 0.44370531
- 4
- Le plus petit entier \(n\) tel que \(0.85^n \leqslant 0.5\)
- Le plus grand entier \(n\) tel que \(0.85^n > 0.5\)
# Tests
(insensible à la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)