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
  ...

Important

En Python, les instructions appartenant à un même bloc d'instructions sont reconnaissables car elles ont toutes exactement la même indentation.

Programme

1nb_points = 0
2max = 10
3while nb_points < max:
4  print("Points:", nb_points)
5  nb_points += 3
6print("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

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

Boucle while

1compteur = 0
2while compteur < 10:
3  print("Hello")
4  compteur += 1

Important

Si on utilise un compteur dans la condition du while, il ne faut pas oublier d'incrémenter (augmenter) ce 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 1#

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

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

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

Exercice 2#

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

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

1n = 2
2while n <= 50:
3  print(n)
4  n = n + 2

Exercice 3#

Sans exécuter le programme, qu'affichera-t-il?

1s = 0
2i = 1
3while i <= 5:
4  s = s + i
5  i = i + 1
6print(s)

Exercice 4#

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

  • affiche tous les nombres entiers jusqu'à 15,

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

1# Écrivez le programme ici

Exercice 5#

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

  • demande un nombre entier à l'utilisateur,

  • affiche les 5 premiers multiples de ce nombre.

1# Écrivez le programme ici

Exercice 6#

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!
1capitale = input("Quelle est la capitale de la Suisse?")
2
3# Complétez le programme ici
4while ...:
5  capitale = input("Faux, essaie encore!")
6print("Bravo!")

Exercice 7#

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

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

Programme 2

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

Exercice 8#

Déterminez ce qu'affichera le programme suivant.

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

Exercice 9#

Implémentez l'algorithme d'Euclide qui permet de déterminer le PGDC de 2 nombres donnés par l'utilisateur. L'algorithme d'Euclide est décrit par un ordinogramme au début du chapitre Algorithme.

1# Écrivez le programme ici

Exercice 10#

Vous achetez un scooter à 3'500 CHF avec un crédit dont le taux annuel est de 9%. Vous pouvez rembourser 100 CHF par mois (intérêts compris).

  • Combien de mensualités sont nécessaires pour rembourser la totalité du montant?

  • Quel sera le montant total que vous aurez alors payé?

Afin de faciliter la lecture du programme, définissez une variable pour chacun des paramètres de cet exercice: prix, dette, taux d'intérêt, nombre de mensualités ...

Calculez également le taux d'intérêt mensuel puisque la simulation va se faire mois par mois et qu'il faudra donc recalculer les intérêts mois par mois. Le taux d'intérêt mensuel correspond au douzième du taux d'intérêt annuel.

Créez une boucle qui s'exécutera tant que la dette ne sera pas totalement remboursée.

Chaque passage dans la boucle correspond à un mois. Il faut donc mettre à jour les différentes variables à chaque passage dans la boucle.

Faites quelques autres simulations de remboursement en changeant les paramètres de votre programme (durée, prix...)

1# Écrivez le programme ici