Instructions while
Contents
Instructions while#
Après avoir découvert, for
et if
, il est temps de découvrir while
. L’instruction while
s’utilise quand il faut exécuter certaines instructions tant qu’une condition est vraie.
Par exemple, tant que a
est plus petit que 5, j’affiche sa valeur et j’augmente ensuite cette valeur de 1. A chaque itération, la valeur de a
est affichée. Ensuite, a
augmente de 1. Finalement, on teste si a
est toujours plus petit que 5.
![](../../_static/images/python/while.png)
a = 0
while a < 5:
print(a)
a = a + 1
0
1
2
3
4
Boucle infinie#
Lorsqu’on utilise while
, il est possible de créer une boucle infinie… Il faut donc être particulièrement attentif à ce qui est écrit. Si plutôt que d’écrire a = a - 1
, j’écris (de manière eronnée) a = a + 1
, a
sera toujours plus grand que zéro et le script continuera à l’infini…
a = 5
print("i vaut:", a)
while a > 0:
print("Je diminue a de 1")
print("a vaut maintenant: ", a)
a = a + 1 # erreur!
Exercices#
Exercice 1#
Modifier le script du jeu “Deviner un chiffre” de manière à permettre à l’utilisateur d’entrer un essai tant qu’il ne trouve pas la bonne réponse.
import random
valeur = random.randint(1, 10)
jeu_termine = False
while jeu_termine == False:
essai = int(input("Entrer un chiffre: "))
if essai == valeur:
print('Bravo')
jeu_termine = True
Entrer un chiffre: 5
Entrer un chiffre: 4
Entrer un chiffre: 6
Entrer un chiffre: 3
Entrer un chiffre: 2
Entrer un chiffre: 1
Entrer un chiffre: 8
Entrer un chiffre: 7
Entrer un chiffre: 9
Bravo
Exercice 2#
Modifier le script du jeu “Deviner un chiffre” de manière à permettre à l’utilisateur d’entrer un essai tant qu’il ne trouve pas la bonne réponse, avec un maximum de 3 essais.
import random
valeur = random.randint(1, 10)
jeu_termine = False
nb_essai = 0
while jeu_termine == False and nb_essai < 3:
essai = int(input("Entrer un chiffre: "))
nb_essai += 1
if essai == valeur:
print('Bravo')
jeu_termine = True
if nb_essai >= 3:
print('Game Over!')
print('Bonne reponse:', valeur)
Entrer un chiffre: 1
Entrer un chiffre: 2
Entrer un chiffre: 3
Game Over!
Bonne reponse: 5