Exercices avec boucles for et while#
Exercice 1#
Cochez la bonne réponse.
Qu'affiche le progamme suivant?
1x = 0 2while x < 4: 3 print(x) 4 x += 1
Qu'affiche le progamme suivant?
1x = 0 2while x < 4: 3 x += 1 4 print(x)
Qu'affiche le progamme suivant?
1x = 0 2while x <= 6: 3 print(x) 4 x += 2
Qu'affiche le progamme suivant?
1x = 1 2while x < 6: 3 x += 3 4 print(x)
Qu'affiche le progamme suivant?
1x = 10 2while x >= 4: 3 x -= 2 4 print(x)
Exercice 2#
Il est toujours possible de convertir une boucle for en boucle while, par
contre il n'est pas toujours possible de convertir une boucle while en boucle
for, notamment si on ne sait pas à l'avance le nombre d'itérations.
Quel(s) code(s) correspond(ent) à la boucle
forci-dessous?1for i in range(5): 2 print(i)
Quel(s) code(s) correspond(ent) à la boucle
forci-dessous?1for i in range(4): 2 print(i + 1)
Quel(s) code(s) correspond(ent) à la boucle
whileci-dessous?1x = 4 2while x < 7: 3 print(x) 4 x += 1
Quel(s) code(s) correspond(ent) à la boucle
whileci-dessous?1x = 2 2while x <= 5: 3 print(x) 4 x += 1
Cochez les boucles
whilequi ne peuvent pas être transformées en bouclefor.
Exercice 3#
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
1# É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")
1for compte_a_rebours in range( 10,0, -1):
2 print(compte_a_rebours)
3print("BOOM")
Exercice 4#
Reprenez l'exercice 3 ci-dessus et modifiez-le pour qu'à partir de 3, il affiche également "Fuyez!".
10
9
...
4
3 Fuyez!
2 Fuyez!
1 Fuyez!
BOOM
1# Écrivez le programme ici
Solution
1compte_a_rebours = 10
2while compte_a_rebours > 0:
3 if compte_a_rebours <= 3:
4 print(compte_a_rebours, "Fuyez!")
5 else:
6 print(compte_a_rebours)
7 compte_a_rebours -= 1
8print("BOOM")
1for compte_a_rebours in range( 10,0, -1):
2 if compte_a_rebours <= 3:
3 print(compte_a_rebours, "Fuyez!")
4 else:
5 print(compte_a_rebours)
6print("BOOM")
Exercice 5#
Écrivez un programme qui correspond à l'algorithme suivant:
Une boutique a initialement 200 produits en stock. Chaque jour, 40 produits sont vendus.
Affichez le nombre de produits restants chaque jour dans le format Jour x, produits en stock: y (les valeurs x et y étant modifiées chaque jour)
Affichez "Stock épuisé!" lorsque tous les produits ont été vendus.
1# Écrivez le code ici...
Solution
1# Initialisation du nombre de produits en stock
2produits_en_stock = 200
3jour = 0
4
5# Tant qu'il y a des produits en stock
6while produits_en_stock > 0:
7
8 # incrémentation du jour
9 jour += 1
10
11 # Réduire le stock de 40 produits chaque jour
12 produits_en_stock -= 40
13
14 # Afficher le nombre de produits restants
15 print("Jour", jour, ", produits en stocks: ", produits_en_stock)
16
17# Afficher que le stock est épuisé une fois que la boucle est terminée
18print("Stock épuisé après ", jour, "jours!")
Exercice 6#
Bob souhaite construire une pyramide à base carrée comme sur la photo.
Écrivez un programme qui permet de calculer le nombre de billes nécessaires pour construire la pyramide de l'image (elle a 7 étages). Utilisez une boucle
for.1# Écrivez le programme iciSolution
1nb_billes = 0 2for i in range(7): 3 nb_billes += (i + 1) ** 2 4print(nb_billes)
1nb_billes = 0 2for etage in range(1, 8): 3 nb_billes += etage ** 2 4print(nb_billes)
Modifiez le programme précédent pour calculer le nombre de billes nécessaires pour construire une pyramide à 100 étages.
1# Écrivez le programme iciSolution
1nb_billes = 0 2for i in range(100): 3 nb_billes += (i + 1) ** 2 4print(nb_billes)
1nb_billes = 0 2for etage in range(1, 101): 3 nb_billes += etage ** 2 4print(nb_billes)
Modifiez le programme pour que l'utilisateur puisse choisir le nombre d'étages.
1# Écrivez le programme iciSolution
1nb_etages = int(input("Choisissez le nombre d'étages: ")) 2nb_billes = 0 3for i in range(nb_etages): 4 nb_billes += (i + 1) ** 2 5print(nb_billes)
1nb_etages = int(input("Choisissez le nombre d'étages: ")) 2nb_billes = 0 3for etage in range(1, nb_etages + 1): 4 nb_billes += etage ** 2 5print(nb_billes)