1. La boucle for
Exercice 1 — ⭐
- Combien de fois le message
"Salut"est-il affiché par ce programme ?for i in range(7): print("Salut") - Quelles sont les valeurs successives prises par
idansfor i in range(4):? - Écris un programme qui affiche les nombres de à (inclus), un par ligne, à l’aide
d’une boucle
foret derange.
Voir le corrigé
- fois, car
range(7)produit valeurs. iprend successivement les valeurs (quatre valeurs, de à ).-
(for i in range(1, 11): print(i)range(1, 11)produit les valeurs de à , le nombre n’étant jamais atteint.)
2. La boucle while
Exercice 2 — ⭐⭐
On donne le programme suivant :
compteur = 0
while compteur < 5:
print(compteur)
compteur = compteur + 1
- Quelles valeurs successives ce programme affiche-t-il ?
- Pourquoi la boucle s’arrête-t-elle après avoir affiché ?
- Que se passerait-il si on oubliait la ligne
compteur = compteur + 1?
Voir le corrigé
- Il affiche (cinq valeurs).
- Après avoir affiché ,
compteurdevient : la conditioncompteur < 5devient fausse ( n’est pas strictement inférieur à ), donc la boucle s’arrête. - Sans cette ligne,
compteurresterait toujours égal à : la conditioncompteur < 5resterait toujours vraie, et la boucle tournerait indéfiniment (boucle infinie), affichant0sans jamais s’arrêter.
3. Écrire une fonction
Exercice 3 — ⭐⭐
- Écris une fonction
dire_au_revoir(sans paramètre) qui affiche"Au revoir !". - Appelle cette fonction trois fois dans ton programme.
- Quelle est la différence entre définir une fonction et l’appeler ?
Voir le corrigé
-
def dire_au_revoir(): print("Au revoir !") -
dire_au_revoir() dire_au_revoir() dire_au_revoir() - Définir une fonction (avec
def) décrit ce qu’elle fait, sans encore l’exécuter. L’appeler (en écrivant son nom suivi de parenthèses) exécute réellement les instructions qu’elle contient.
4. Paramètres et valeur de retour
Exercice 4 — ⭐⭐⭐
- Écris une fonction
double(nombre)qui reçoit un paramètrenombreet renvoie le double de ce nombre (utilisereturn). - Utilise cette fonction pour calculer et afficher le double de .
- Quelle est la différence entre
print(...)à l’intérieur d’une fonction etreturn ...?
Voir le corrigé
-
def double(nombre): return nombre * 2 -
(Afficheresultat = double(17) print(resultat)34.) print(...)affiche une valeur à l’écran, mais le programme qui a appelé la fonction ne peut pas la récupérer pour un calcul ultérieur.return ...renvoie la valeur au programme appelant, qui peut alors la stocker dans une variable ou la réutiliser, sans qu’elle soit forcément affichée.
5. Combiner boucles et fonctions
Exercice 5 — ⭐⭐⭐⭐
- Écris une fonction
produit_jusqua(n)qui calcule et renvoie le produit des entiers de à (par exemple,produit_jusqua(4)doit renvoyer ), à l’aide d’une bouclefor. - Teste ta fonction en affichant
produit_jusqua(5). Vérifie le résultat par un calcul à la main. - Pourquoi faut-il initialiser la variable qui accumule le produit à , et non à , contrairement à une somme ?
Voir le corrigé
-
def produit_jusqua(n): total = 1 for i in range(1, n + 1): total = total * i return total -
Afficheprint(produit_jusqua(5))120, car , ce que l’on peut vérifier : , , , . - Si
totalvalait au départ, alorstotal * ivaudrait toujours à chaque tour de boucle (multiplier par donne toujours ), et le résultat final serait au lieu du produit attendu. En partant de (l’élément neutre de la multiplication), les multiplications successives donnent bien le produit recherché.