Boucle for#
Répétition un bloc d'instructions#
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
...
Exemple 5#
Programme | Ordinogramme |
---|---|
print("Voici ma punition:")
for _ in range(10):
print("Je dois faire mes devoirs.")
print("J'ai fini.")
|
Exercice 39#
Sans les exécuter, qu'afficheront les programmes suivants?
Ensuite, tester vos réponses en les exécutant.
1print("Lancer d'une pièce.") 2for _ in range(5): 3 print("Pile") 4print("Fin du jeu")
1print("Lancer d'une pièce.") 2for _ in range(3): 3 print("Pile") 4 print("Face") 5print("Fin du jeu")
1print("Lancer d'une pièce.") 2for _ in range(2): 3 print("Pile") 4 print("Face") 5 print("Pile") 6print("Fin du jeu")
1print("Lancer d'une pièce.") 2for _ in range(2): 3 print("Pile") 4 print("Face") 5 print("Pile") 6 print("Fin du jeu")
Exercice 40#
Que fait le programme suivant?
Modifiez-le pour qu'il affiche 9 fois "Salut".
Modifiez-le pour qu'il affiche:
Salut Comment ça va? Salut Comment ça va? Salut Comment ça va?
Modifiez-le pour qu'à la fin du programme, il afficher "Au revoir!".
for _ in range(6):
print("Salut")
Solution
1for _ in range(3):
2 print("Salut")
3 print("Comment ça va?")
4print("Au revoir!")
Utilisation de la variable de la boucle for#
La boucle for
fait plus que juste répéter x fois un bloc d'instructions: pour
chaque itération (passage de la boucle), la variable (dans l'exemple ci-dessous
nommée i
) va prendre la valeur 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.
Important
Dans for _ in range(nb_repetitions):
, le _
représente une variable que nous
pouvons appeler comme nous le souhaitons (en respectant les règles de nommage
des variables.)
Toutes ces notations sont correctes: for _ in range(3):
,
for nombre in range(3):
, for i in range(3):
.
for _ in range(3):
est utilisée seulement lorsque nous n'utilisons pas la
valeur de la variable dans la boucle.
Exemple 6#
Le programme suivant affiche les nombres de 0 à 9.
for i in range(10):
print(i)
Exercice 41#
Écrivez un programme qui affiche les nombres entiers de 0 jusqu'à 17 et affiche à la fin "J'ai fini de compter!".
# Écrivez le programme ici
Solution
1for nombre in range(18):
2 print(nombre)
3print("J'ai fini de compter!")
Exercice 42#
Modifiez le programme de l'exemple pour qu'il affiche les nombres entiers de 1 à 10.
for i in range(10):
print(i)
Solution
1for i in range(10):
2 print(i + 1)
Python permet aussi de déterminer la valeur de départ et la valeur de fin (pas comprise), en utilisant le construction suivante:
1for i in range(1, 11):
2 print(i)
Exercice 43#
Écrivez un programme qui calcule et affiche la somme des dix premiers nombres entiers.
# Écrivez le programme ici
Solution
Il y a plusieurs manières de faire.
Comme ajouter 0 à une somme ne change rien, je peux effectuer le calcul suivant: \(0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10\)
1somme = 0 2for i in range(11): 3 somme += i 4print(somme)
Les deux programmes suivants font exactement ce qu'il faut: \(1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10\)
1somme = 0 2for i in range(10): 3 somme += i + 1 4print(somme)
1somme = 0 2for i in range(1, 11): 3 somme += i 4print(somme)
Exercice 44#
Écrivez un programme qui calcule et affiche le produit des cinq premiers nombres entiers.
# Écrivez le programme ici
Solution
1produit = 1
2for i in range(5):
3 produit *= i + 1
4print(produit)
1produit = 1
2for i in range(1, 6):
3 produit *= i
4print(produit)
Exercice 45#
Écrivez un programme qui demande à l'utilisateur un nombre entier et affiche les 10 premiers multiples de ce nombre.
# Écrivez le programme ici
Solution
1nombre = int(await input_line("Choisissez un nombre: "))
2for i in range(10):
3 print(nombre * (i + 1))
1nombre = int(await input_line("Choisissez un nombre: "))
2for i in range(1, 11):
3 print(nombre * i)
Exercice 46#
Écrivez un programme qui affiche les nombres paires jusqu'à 20.
# Écrivez le programme ici
Solution
1for i in range(20):
2 if (i + 1) % 2 == 0:
3 print(i + 1)
1for i in range(1, 21):
2 if i % 2 == 0:
3 print(i)
Exercice 47#
Écrivez un programme qui affiche le résultat des calculs suivants:
\(1 + 2 + 3 + 4 + ... + 99 + 100\)
# Écrivez le programme ici
Solution
1somme = 0 2for i in range(100): 3 somme += i + 1 4print(somme)
1somme = 0 2for i in range(1, 101): 3 somme += i 4print(somme)
\(1 + 3 + 5 + 7 + ... + 97 + 99\)
# Écrivez le programme ici
Solution
1somme = 0 2for i in range(100): 3 if (i + 1) % 2 == 1: 4 somme += i + 1 5print(somme)
1somme = 0 2for i in range(1, 101): 3 if i % 2 == 1: 4 somme += i 5print(somme)
Exercice 48#
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). Utiliser une boucle
for
.# Écrivez le programme ici
Solution
1nb_billes = 0 2for i in range(7): 3 nb_billes += (i + 1) ** 2 4print(nb_billes)
1nb_billes = 0 2for i in range(1, 8): 3 nb_billes += i ** 2 4print(nb_billes)
Modifiez le programme précédent pour calculer le nombre de billes nécessaires pour construire une pyramide à 100 étages.
# Écrivez le programme ici
Solution
1nb_billes = 0 2for i in range(100): 3 nb_billes += (i + 1) ** 2 4print(nb_billes)
1nb_billes = 0 2for i in range(1, 101): 3 nb_billes += i ** 2 4print(nb_billes)
Modifiez le programme pour que l'utilisateur puisse choisir le nombre d'étages.
# Écrivez le programme ici
Solution
1nb_etages = int(await input_line("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(await input_line("Choisissez le nombre d'étages: ")) 2nb_billes = 0 3for i in range(1, nb_etages + 1): 4 nb_billes += i ** 2 5print(nb_billes)
Exercice 49#
Le 1er janvier, les parents de Chrystel ont déposé sur son livret d'épargne 1500 CHF au taux de 2 %.
Écrivez un programme pour calculer le montant qu'elle aura après 1 an.
# Écrivez le programme ici
Solution
1montant = 1500 2montant += 2 / 100 * montant 3print(montant)
1montant = 1500 2montant = 102 / 100 * montant 3print(montant)
Modifiez le programme précédent pour calculer le montant qu'elle aura dans 10 ans. Utilisez une boucle
for
.# Écrivez le programme ici
Solution
1montant = 1500 2for _ in range(10): 3 montant += 2 / 100 * montant 4print(montant)
1montant = 1500 2for _ in range(10): 3 montant = 102 / 100 * montant 4print(montant)
Modifiez le programme pour que l'utilisateur puisse choisir la durée (le nombre d'années) et la montant initial.
# Écrivez le programme ici
Solution
1montant = float(await input_line("Montant déposé: ")) 2duree = int(await input_line("Durée du placement: ")) 3for _ in range(duree): 4 montant += 2 / 100 * montant 5print(montant)
1montant = float(await input_line("Montant déposé: ")) 2duree = int(await input_line("Durée du placement: ")) 3for _ in range(duree): 4 montant = 102 / 100 * montant 5print(montant)
Modifiez le programme pour que l'utilisateur puisse aussi choisir le taux d'intérêt (en %).
# Écrivez le programme ici
Solution
1montant = float(await input_line("Montant déposé: ")) 2duree = int(await input_line("Durée du placement: ")) 3taux = int(await input_line("Taux d'intérêt en %: ")) 4for _ in range(duree): 5 montant += taux / 100 * montant 6print(montant)
1montant = float(await input_line("Montant déposé: ")) 2duree = int(await input_line("Durée du placement: ")) 3taux = int(await input_line("Taux d'intérêt en %: ")) 4for _ in range(duree): 5 montant = (taux + 100) / 100 * montant 6print(montant)