Révisions - Boucles#
En programmation, nous sommes souvent amenés à répéter des instructions plusieurs fois. Pour cela nous pouvons utiliser des boucles.
Boucle for#
La boucle for
permet de répéter un bloc d'instructions un nombre de fois connu
à l'avance.
for _ in range(nb_repetitions):
instruction 1
instruction 2
...
Programme | Ordinogramme |
---|---|
for i in range(5):
print(i)
|
Quelles valeurs prend la variable i?
Changez le nombre de répétitions.
Modifiez le code pour afficher les nombres de 1 à 10?
En réalité, la boucle for
fait plus que juste répéter x fois: pour
chaque itération (passage de la boucle), la variable (ici nommée i) va prendre
la valeur d'un élément de l'ensemble range(n), c'est-à-dire l'ensemble des
nombres entiers de 0 à n non compris \(\{0; 1; 2; ...; n-1\}\). Il est donc
possible d'utiliser la valeur de cette variable dans la boucle.
Boucle while#
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 | Ordinogramme |
---|---|
nb_points = 0
max = 10
while nb_points < max:
print("Points:", nb_points)
nb_points += 3
print("Bravo!")
|
Exercice 18#
1somme = 0
2for nombre in range(6):
3 somme += nombre
4print("La somme est:", somme)
Quel est le résultat affiché par ce programme?
Solution
Vérifie ta réponse en exécutant le code.
1somme = 0
2for nombre in range(6):
3 somme += nombre
4print("La somme est:", somme)
Exercice 19#
Écrivez un programme en utilisant le boucle
for
qui affiche les nombres de 0 à 9.
# Écrivez le programme ici
Solution
1for nombre in range(10):
2 print(nombre)
Écrivez un programme en utilisant le boucle
for
qui affiche les nombres de 1 à 10.
# Écrivez le programme ici
Solution
1for nombre in range(10):
2 print(nombre + 1)
1for nombre in range(1, 11):
2 print(nombre)
Écrivez un programme en utilisant le boucle
for
qui affiche les 12 premiers multiples de 5.
# Écrire le programme ici
Solution
1for nombre in range(12):
2 print((nombre + 1) * 5)
1for nombre in range(1, 13):
2 print(nombre * 5)
Exercice 20#
Indiquez l'ordre d'exécution des lignes et ce qu'affichera le programme.
1a = 4
2b = 1
3for i in range (3):
4 a += 5
5 b *= 2
6 print("i =", i)
7print("a =", a, "b =", b)
Solution
L'ordre d'exécution des ligne est le suivant:
1-2-3-4-5-6-3-4-5-6-3-4-5-6-7
1a = 4
2b = 1
3for i in range (3):
4 a += 5
5 b *= 2
6 print("i =", i)
7print("a =", a, "b =", b)
Exercice 21#
Nous voulons créer un programme qui demande à l'utilisateur un nombre strictement positif. Tant que l'utilisateur entre un nombre plus petit ou égal à 0, alors le programme devra lui redemander d'entrer un nouveau nombre.
Écrivez un programme qui correspond à l'algorithme suivant:
Demander un nombre strictement positif à l'utilisateur et le stocker dans la variable n
Tant que n est plus petit ou égal à 0
Afficher "Le nombre doit être strictement positif!"
Demander un nombre positif à l'utilisateur et le stocker dans n
Afficher "Merci"
# Complétez le programme
n = int(await input_line("Entrer un nombre strictement positif: "))
print("Le nombre doit être strictement positif!")
print("Merci")
Solution
1n = int(await input_line("Entrer un nombre strictement positif: "))
2while n <= 0:
3 print("Le nombre doit être strictement positif!")
4 n = int(await input_line("Entrer un nombre strictement positif: "))
5print("Merci")
Exercice 22#
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".
É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
Solution
1compte_a_rebours = 10
2while compte_a_rebours > 0:
3 print(compte_a_rebours)
4 compte_a_rebours -= 1
5print("BOOM")
Exercice 23#
Écrivez un programme qui demande à l'utilisateur combien il y a de cantons en Suisse. Tant que la réponse n'est pas 26, le programme redemande une nouvelle réponse.
Exemple d'exécution:
Combien y a-t-il de cantons en Suisse?
16
Faux, essaie encore!
27
Faux, essaie encore!
26
Bravo!
# Écrivez le programme ici
Solution
1nb_cantons = int(await input_line("Combien y a-t-il de cantons en Suisse?"))
2while nb_cantons != 26:
3 nb_cantons = int(await input_line("Faux, essaie encore!"))
4print("Bravo!")
Bonus 1#
Améliorez le programme de l'exercice précédent en indiquant à l'utilisateur s'il y a plus ou moins de cantons en fonction de sa réponse.
Exercice 24#
Indiquez l'ordre d'exécution des lignes et faites le tableau d'états du programme suivant:
1a = 0
2b = 1
3while a < 5:
4 a += 1
5 if a % 2 == 0:
6 b *= 2
7a = 1
8print(a, b)
Solution
L'ordre d'exécution des ligne est le suivant:
1-2-3-4-5-3-4-5-6-3-4-5-3-4-5-6-3-4-5-3-7-8
Instruction |
a |
b |
---|---|---|
a = 0 |
0 |
- |
b = 1 |
0 |
1 |
a += 1 |
1 |
1 |
a += 1 |
2 |
1 |
b *= 2 |
2 |
2 |
a += 1 |
3 |
2 |
a += 1 |
4 |
2 |
b *= 2 |
4 |
4 |
a += 1 |
5 |
4 |
a = 1 |
1 |
4 |