En Python, la boucle while
permet de répéter une série d'instructions tant qu'une condition est
vraie.
Elle est utile lorsqu’on ne sait pas à l’avance combien de fois on devra répéter le code.
La boucle while
répète un bloc d'instructions tant qu’une condition est vraie.
Elle est utile lorsqu’on ne sait pas d’avance combien de fois répéter : on s’arrête dès que la condition
devient fausse.
while condition:
# bloc exécuté tant que vaut True
n = 5
while n > 0:
print(n)
n -= 1 # on rapproche n de 0 pour arrêter la boucle
print("Décollage !")
Sortie : 5 4 3 2 1 Décollage !
secret = "python"
code = ""
while code != secret:
code = input("Mot de passe : ")
print("Accès autorisé")
Si la condition ne devient jamais fausse, la boucle tourne sans fin :
while True:
crée volontairement une boucle infinie, qu’on interrompt généralement avec
break
ou Ctrl + C.
while
répète tant qu’une condition est vraie.Exécuter le programme suivant puis donner une explication au dernier nombre affiché.
Affichage :
Exécuter le programme suivant puis donner une explication au dernier nombre affiché.
Affichage :
Écris une fonction appelée somme_n_premiers_while
qui prend un entier
n
en paramètre et utilise une boucle while
pour calculer la somme des n
premiers entiers, de 1
à
n
(inclus).
La fonction doit retourner cette somme :
n = 5
, elle renverra 15
,
car 1 + 2 + 3 + 4 + 5 = 15
.Exemples :
somme_n_premiers_while(0)
→ 0
somme_n_premiers_while(5)
→ 15
somme_n_premiers_while(10)
→ 55
Tests :
# Tests
Console :
Mia dépose exactement 2€
dans sa tirelire chaque jour.
Elle veut savoir combien de jours il lui faudra pour atteindre (ou dépasser)
une somme cible.
Écris une fonction appelée jours_economie
qui prend :
montant_cible
la somme que Mia souhaite réunir.La fonction doit :
0
.while
pour ajouter
2€
par jour jusqu’à ce que le total économisé soit
supérieur ou égal à montant_cible
.Exemples:
jours_economie(0)
→ 0
jours_economie(1)
→ 1
jours_economie(5)
→ 3
Tests :
# Tests
Console :
3 marches
par jour,
mais chaque nuit il glisse de 1 marche
.
Écris une fonction appelée jours_pour_haut
qui prend:
hauteur
la hauteur de l’escalier en nombre de marches.La fonction doit:
0
.3
marches.1
marche et continue.Exemples:
jours_pour_haut(0)
→ 0
jours_pour_haut(2)
→ 1
jours_pour_haut(5)
→ 2
jours_pour_haut(10)
→ 4
Tests :
# Tests
Console :
Sophie doit emballer N
cadeaux dans des boîtes. Chaque boîte peut contenir C
cadeaux. Elle prépare une boîte après l’autre tant qu’il reste des cadeaux à emballer.
Écrire une fonction nombre_boites(N, C)
qui calcule et renvoie le nombre de boîtes nécessaires pour emballer tous les cadeaux.
La fonction doit :
N
vaut 0, retourner 0.compte
à 0 et un nombre restant de cadeaux à N
.C
du nombre restant.compte
de 1.compte
.def nombre_boites(N, C):
"""
Calcule le nombre de boîtes nécessaires pour emballer N cadeaux,
en mettant jusqu'à C cadeaux par boîte.
"""
# À vous de jouer !
pass
Tests :
# Tests
Console :
Une culture bactérienne compte 1
bactérie au départ. Chaque heure, la population double.
Écrire une fonction heures_doublement(N)
qui calcule et renvoie le nombre d’heures nécessaires pour atteindre au moins N
bactéries.
La fonction doit :
N
vaut 1 ou moins, retourner 0
(déjà atteint).heures
à 0
et une variable population
à 1
.population
est inférieur à N
:
population
par 2
.heures
de 1
.heures
.def heures_doublement(N):
"""
Calcule le nombre d'heures nécessaires pour qu'une population
de bactéries, partant de 1, atteigne au moins N par doublement horaire.
"""
# À vous de jouer !
pass
Tests :
# Tests
Console :
La factorielle d’un entier k
, notée k!
, est le produit de tous les entiers de 1
à k
.
Par exemple :
On cherche le plus petit entier k
tel que k!
soit au moins égal à N
.
Écrire une fonction etapes_factorielle(N)
qui renvoie ce k
.
La fonction doit :
k
à 1
et fact
à 1
.fact < N
:
k
de 1
.fact
par k
.k
.def etapes_factorielle(N):
"""
Renvoie le plus petit k tel que k! >= N.
"""
# À vous de jouer !
pass
Tests :
# Tests
Console :