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é.
Exécuter le programme suivant puis donner une explication au dernier nombre affiché.
On s’intéresse à l’expression \(n^2 + 3n + 6\) pour des entiers \(n = 0, 1, 2, 3, …\) Plus \(n\) grandit, plus le résultat est grand.
Écris une fonction appelée premier_n_depasse qui prend :
limite un nombre à dépasser.La fonction doit renvoyer le plus petit entier n
(à partir de 0) pour lequel n² + 3n + 6 est
strictement supérieur à limite.
Pour cela :
n à 0.n² + 3n + 6 ne dépasse pas la limite, augmenter n de 1.n.Exemples :
premier_n_depasse(5) → 0 (car 0² + 0 + 6 = 6 dépasse 5)premier_n_depasse(6) → 1 (car 1 + 3 + 6 = 10 dépasse 6)premier_n_depasse(10) → 2premier_n_depasse(16) → 3
Un jardinier plante une jeune pousse. On modélise sa hauteur (en cm) après \(n\) semaines par :
\(h(n) = 2n^2 + 5n + 10\)
Au départ (semaine 0), la pousse mesure donc \(h(0) = 10\) cm,
puis elle grandit de plus en plus vite.
Écris une fonction appelée semaines_pour_hauteur qui prend :
hauteur_cible une hauteur à dépasser, en cm.La fonction doit renvoyer le nombre de semaines à attendre
pour que la plante dépasse (strictement) la hauteur_cible.
Pour cela :
n à 0.hauteur_cible, augmenter n de 1.n.Exemples :
semaines_pour_hauteur(10) → 1 (semaine 0 : 10 cm, pas encore dépassé ; semaine 1 : 17 cm)semaines_pour_hauteur(20) → 2 (semaine 2 : 28 cm)semaines_pour_hauteur(50) → 4 (semaine 4 : 62 cm)semaines_pour_hauteur(100) → 6 (semaine 6 : 112 cm)
Une vidéo est mise en ligne. On modélise son nombre total de vues après \(n\) jours par :
\(v(n) = 3n^2 + 10n + 50\)
Le jour de la publication (jour 0), elle compte déjà
\(v(0) = 50\) vues, puis elle est partagée de plus en plus.
Écris une fonction appelée jours_pour_vues qui prend :
objectif_vues un nombre de vues à dépasser.La fonction doit renvoyer le nombre de jours à attendre
pour que la vidéo dépasse (strictement) l’objectif_vues.
Pour cela :
n à 0.objectif_vues, augmenter n de 1.n.Exemples :
jours_pour_vues(50) → 1 (jour 0 : 50 vues, pas encore dépassé ; jour 1 : 63 vues)jours_pour_vues(100) → 3 (jour 3 : 107 vues)jours_pour_vues(200) → 6 (jour 6 : 218 vues)jours_pour_vues(300) → 8 (jour 8 : 322 vues)
Léa met de l’argent dans sa tirelire. Elle commence à 0 €
et ajoute 5 € chaque semaine.
Écris une fonction appelée semaines_pour_objectif qui prend :
objectif la somme à atteindre, en euros.La fonction doit :
0.objectif :5 € ;1 au nombre de semaines.Exemples :
semaines_pour_objectif(0) → 0semaines_pour_objectif(5) → 1semaines_pour_objectif(12) → 3semaines_pour_objectif(20) → 4
3 marches par jour.
Écris une fonction appelée jours_pour_haut qui prend :
hauteur_visee la hauteur de l’escalier en nombre de marches.La fonction doit :
0.hauteur_visee :3 marches ;1 au nombre de jours.Exemples :
jours_pour_haut(0) → 0jours_pour_haut(2) → 1jours_pour_haut(5) → 2jours_pour_haut(10) → 4
Dans une réserve naturelle, une colonie de lapins compte 100 individus
au départ. Chaque mois, sa population augmente d'un certain pourcentage appelé
taux de croissance.
Les biologistes souhaitent savoir au bout de combien de mois la population aura
au moins doublé, c'est-à-dire atteint 200 individus.
Écrire une fonction mois_pour_doubler(taux) qui prend en paramètre le taux
de croissance mensuel (en pourcentage) et qui renvoie le nombre de mois nécessaires
pour que la population ait au moins doublé.
On ne connaît pas à l'avance le nombre de mois : on répète tant que la population n'a
pas doublé. C'est exactement pour cela que la boucle while est adaptée.
Exemples :
mois_pour_doubler(100) → 1 (la population double chaque mois)mois_pour_doubler(50) → 2mois_pour_doubler(25) → 4mois_pour_doubler(10) → 8
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 strictement inférieur à N :
population par 2.heures de 1.heures.
Une immense piscine est vide et contient 0 L d’eau.
Chaque jour, 5% de l'eau s'évapore mais on peut la remplir de 500 L d’eau à l'aide d'un tuyau.
On se pose la question de savoir en combien de jours elle peut atteindre une certaine quantité d'eau.
On ne dépassera jamais une année c'est-à-dire 365 jours. On considèrera alors qu'il est non réalisable de mettre cette quantité d'eau dans la piscine.
Écrire la fonction nb_de_jours(quantité_voulue) qui prend un nombre entier correspondant à une quantité d'eau souhaitée à l'intérieur de la piscine et qui renvoie le nombre de jours nécessaire pour la remplir.
Puis répondre aux questions suivantes :
On souhaite modéliser un lancer de dé à l'aide de la commande random.randint(1, 6) de la bibliothèque random
Le but est de simuler plusieurs lancers d'un dé à la suite et déterminer combien de fois il a fallu lancer le dé pour obtenir un certain nombre de 6.
Pour cela, programmer la fonction simulation(nb_6_voulu) qui va simuler les lancers de dés et qui retourne le nombre de fois où il a fallu lancer le dé pour obtenir un nombre nb_6_voulu de 6.
Par exemple, si l'exécution de simulation(30) retourne 150 cela veut dire que lors de cette simulation, il a fallu lancer 150 fois le dé pour obtenir 30 fois le nombre 6.
# Pas de tests ici puisque le résultat est aléatoire.