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.

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