Boucle while#

Répétition d'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
  ...

Programme

nb_points = 0
max = 10
while nb_points < max:
  print("Points:", nb_points)
  nb_points += 3
print("Bravo!")

Ordinogramme

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 for

for _ in range(10):
  print("Hello")

Boucle while

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 47#

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 48#

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 49#

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 50#

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 51#

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 52#

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

Écrivez 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 53#

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 = input("Quelle est la capitale de la Suisse?")

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

Exercice 54#

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 1

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

Programme 2

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

Exercice 55#

Déterminez ce qu'affichera le programme en utilisant un tableau d'états.

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

Exercice 56#

É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 57#

Reprenez l'exercice 52 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