3e⏱ 50 minutes
Python : boucles et fonctions — Entraînement type évaluation
Pour un entraînement qui sert vraiment à quelque chose : pas de cours sous les yeux, une feuille et un stylo (pas d'ordinateur). Note-toi ensuite avec le corrigé.
Barème indicatif : 20 points.
Exercice 1 (4 points) — Vocabulaire
- Dans quel cas utilise-t-on une boucle
for, plutôt qu'une bouclewhile? (1 point) - Que produit
range(6)? (1 point) - Quelle est la différence entre définir une fonction et l'appeler ? (1 point)
- À quoi sert le mot-clé
returndans une fonction ? (1 point)
Voir le corrigé
- On utilise
forquand le nombre de répétitions est connu à l'avance ;whilequand ce nombre dépend d'une condition qui évolue en cours d'exécution. range(6)produit les valeurs .- Définir une fonction (avec
def) décrit son code sans l'exécuter ; l'appeler exécute réellement ce code. returnpermet à une fonction de renvoyer un résultat, utilisable ensuite par le programme qui l'a appelée.
Exercice 2 (4 points) — Lire une boucle for
for i in range(3, 8):
print(i, "->", i * i)
- Quelles valeurs successives prend
idans ce programme ? (1 point) - Combien de lignes ce programme affiche-t-il au total ? (1 point)
- Que va afficher la toute première ligne produite par ce programme ? (1 point)
- Que va afficher la toute dernière ligne produite par ce programme ? (1 point)
Voir le corrigé
iprend successivement les valeurs .- lignes (une par valeur de
i). - La première ligne affichée est
3 -> 9(car ). - La dernière ligne affichée est
7 -> 49(car ).
Exercice 3 (4 points) — Lire une boucle while
total = 0
n = 1
while total < 20:
total = total + n
n = n + 1
print(total)
- Donne les valeurs successives de
totalau fil des tours de boucle. (2 points) - Quelle valeur ce programme affiche-t-il finalement ? (1 point)
- Pourquoi une boucle
whileest-elle adaptée ici plutôt qu'une bouclefor? (1 point)
Voir le corrigé
- Tour par tour : ; ; ; ;
; . Les valeurs successives de
totalsont donc . - Dès que
totalatteint , la conditiontotal < 20devient fausse ( n'est pas strictement inférieur à ) : la boucle s'arrête, et le programme affiche 21. - On ne connaît pas à l'avance le nombre de tours nécessaires pour que
totaldépasse (cela dépend des valeurs accumulées à chaque tour) : une bouclewhile, pilotée par une condition, est donc adaptée, contrairement àforqui suppose un nombre de tours fixé d'avance.
Exercice 4 (4 points) — Écrire une fonction
- Écris une fonction
est_pair(nombre)qui renvoieTruesinombreest pair, etFalsesinon (indication : un nombre est pair si le reste de sa division par vaut ; en Python, ce reste s'obtient avecnombre % 2). (2 points) - Écris un programme qui utilise cette fonction pour afficher si est pair. (1 point)
- Écris un programme qui utilise cette fonction pour afficher si est pair. (1 point)
Voir le corrigé
-
def est_pair(nombre): return nombre % 2 == 0 -
Afficheprint(est_pair(17))False(car est impair : laisse un reste de ). -
Afficheprint(est_pair(24))True(car est pair : laisse un reste de ).
Exercice 5 (4 points) — Combiner boucle et fonction
Écris une fonction compte_pairs(n) qui renvoie le nombre d'entiers pairs compris entre
et (inclus), en utilisant une boucle for (tu peux réutiliser le principe de la
question précédente, sans être obligé de réutiliser est_pair). (4 points)
Voir le corrigé
def compte_pairs(n):
compteur = 0
for i in range(1, n + 1):
if i % 2 == 0:
compteur = compteur + 1
return compteur
La variable compteur est initialisée à , puis augmente de à chaque fois que i est
pair (reste nul dans la division par ), en parcourant tous les entiers de à grâce
à range(1, n + 1).