Boucle while#

Répétition un bloc d'instructions#

La boucle while (qui signifie "tant que" en anglais) permet de répéter un bloc d'instructions tant qu'une condition est vraie.

while condition:
  instruction 1
  instruction 2
  ...
ProgrammeOrdinogramme
nb_points = 0
max = 10
while nb_points < max:
  print("Points:", nb_points)
  nb_points += 3
print("Bravo!")
Ordinogramme boucle for

La boucle while peut être utilisée comme une boucle for. Pour cela, il faut définir un compteur qui va "compter" le nombre de répétitions.

Boucle forBoucle while
for _ in range(10):
  print("Hello")
compteur = 0
while compteur < 10:
  print("Hello")
  compteur += 1

Important

Il ne faut pas oublier d'incrémenter (augmenter) le compteur à chaque passage dans la boucle, sinon la condition sera toujours vraie et la boucle ne s'arrêtera jamais (boucle infinie). Cela fait "planter" le programme.

Exercice 50#

Sans l'exécuter, qu'affiche ce programme?

Ensuite, exécutez le programme pour vérifier votre réponse.

i = 1
while i <= 10:
  print("7 *", i, "=", 7 * i)
  i = i + 1

Exercice 51#

Sans l'exécuter, qu'affiche ce programme?

Ensuite, exécutez le programme pour vérifier votre réponse.

n = 2
while n <= 50:
  print(n)
  n = n + 2

Exercice 52#

Sans exécuter le programme, faites un tableau d'états des variables de ce programme.

Qu'affichera-t-il?

s = 0
i = 1
while i <= 5:
  s = s + i
  i = i + 1
print(s)

Exercice 53#

En utilisant une boucle while, écrivez un programme qui:

  • affiche tous les nombres entiers jusqu'à 15,

  • à la fin, affiche "J'ai fini de compter!".

# Écrivez le programme ici

Exercice 54#

En utilisant une boucle while, écrivez un programme qui:

  • demande un nombre entier à l'utilisateur,

  • affiche les 5 premiers multiples de ce nombre.

# Écrivez le programme ici

Exercice 55#

Nous souhaitons créer un programme qui compte le temps avant qu'une bombe explose. Pour cela, un compte à rebours commencera à 10 et ira jusqu'à 1, puis le programme affichera "BOOM".

Écrire un programme qui correspond à l'algorithme suivant:

Initialiser une variable compte_a_rebours à 10
Tant que compte_a_rebours est plus grand que 0
    Afficher La valeur de compte_a_rebours
    Retirer 1 à compte_a_rebours
Afficher "BOOM"

Ce programme doit alors afficher:

10
9
8
7
6
5
4
3
2
1
BOOM
# Écrivez le programme ici

Exercice 56#

Complétez le programme pour qu'il demande à l'utilisateur la capitale de la Suisse. Tant que la réponse n'est pas "Berne", le programme redemande une nouvelle réponse.

Exemple d'exécution:

Quelle est la capitale de la Suisse?
Zurich
Faux, essaie encore!
Genève
Faux, essaie encore!
Berne
Bravo!
capitale = await input_line("Quelle est la capitale de la Suisse?")

# Complétez le programme ici
while ...:
  capitale = await input_line("Faux, essaie encore!")
print("Bravo!")

Exercice 57#

Tout d'abord, sans les exécuter, expliquez la différence entre les deux programmes. Ensuite, testez-les pour vérifier votre réponse.

Programme 1Programme 2
n = 5
if n < 10:
  n += 1
  print(n)
n = 5
while n < 10:
  n += 1
  print(n)

Exercice 58#

Déterminez la valeur de chacune des variables de ce programme en créant un tableau d'états.

1x = 0
2y = 20
3while x < y:
4  y -= x * 2
5  x = x + 2
6  print(x + y)

Exercice 59#

Écrivez un programme dans lequel l'utilisateur peut consécutivement entrer les notes qu'il a faites dans une branche. À la fin, le programme affichera le nombre de notes insuffisantes qui ont été entrées. Les notes invalides seront simplement ignorées. Pour terminer le programme, l'utilisateur entrera la note 99.

Exemple d'exécution:

Entrez une note: 4.5
Entrez une note: 3.4
Entrez une note: 6
Entrez une note: 3.9
Entrez une note: 5.1
Entrez une note: 99
Vous avez fait 2 notes insuffisantes
# Écrivez le programme ici

Exercice 60#

Reprenez l'exercice 55 et modifiez le pour qu'à partir de 3, il affiche également "Fuyez!".

10
9
...
4
3 Fuyez!
2 Fuyez!
1 Fuyez!
BOOM
# Écrivez le programme ici