Première⏱ 50 minutes
Algorithmique et programmation : les listes en Python — Entraînement type évaluation
Pour un entraînement qui sert vraiment à quelque chose : pas de cours sous les yeux, une feuille et un crayon. Note-toi ensuite avec le corrigé.
Barème indicatif : 20 points. Sans ordinateur ni calculatrice : les programmes sont à lire et à écrire « à la main ».
Exercice 1 (4 points) — Automatismes
Réponds directement, sans justification (0,5 point par question).
- Que vaut
len([5, 2, 7])? L = [4, 9, 1]. Que vautL[-1]?- Avec la même liste, que vaut
L[0]? - Que vaut
[2 * k for k in range(4)]? - Combien de valeurs
range(3, 7)produit-il ? - Que vaut
17 % 5? - Écris sous forme décimale.
- Après
L = [1]puisL.append(5), que vautL?
Voir le corrigé
3.1.4.[0, 2, 4, 6].- valeurs : .
2.- .
[1, 5].
Exercice 2 (5 points) — Faire tourner un programme à la main
L = []
for k in range(1, 6):
if k % 2 == 1:
L.append(k * k)
else:
L.append(0)
print(L, len(L))
- Recopie et complète le tableau donnant, pour chaque tour de boucle, la valeur de
ket le contenu deLà la fin du tour. (2,5 points) - Qu'affiche le programme ? (1 point)
- Écris, en une seule ligne et en compréhension, la liste des carrés des entiers impairs de à . (1,5 point)
Voir le corrigé
| Tour | k | L à la fin du tour |
|---|---|---|
| 1 | 1 | [1] |
| 2 | 2 | [1, 0] |
| 3 | 3 | [1, 0, 9] |
| 4 | 4 | [1, 0, 9, 0] |
| 5 | 5 | [1, 0, 9, 0, 25] |
[1, 0, 9, 0, 25] 5.[k * k for k in range(1, 6) if k % 2 == 1], qui vaut[1, 9, 25].
Exercice 3 (5 points) — Une suite
On considère la suite définie par et .
- Calcule et . (1 point)
- Écris une fonction
liste_termes(n)qui renvoie la liste . (2 points) - Écris une fonction
premier_indice(L, seuil)qui renvoie le premier indiceitel queL[i] < seuil, ou-1s'il n'y en a pas. (2 points)
Voir le corrigé
- ; .
-
def liste_termes(n): L = [100] for i in range(n): L.append(0.9 * L[-1] + 5) return L -
Dès qu'on trouve un indice qui convient,def premier_indice(L, seuil): for i in range(len(L)): if L[i] < seuil: return i return -1returnarrête la fonction ; si la boucle se termine sans l'avoir trouvé, on renvoie-1.
Exercice 4 (6 points) — Statistiques
On considère la liste L = [12, 7, 15, 9, 7].
- Écris une fonction
etendue(L)qui renvoie la différence entre le plus grand et le plus petit élément, sans utilisermaxnimin. (2,5 points) - Écris une fonction
moyenne(L)sans utilisersum. (1,5 point) - Que renvoient
etendue(L)etmoyenne(L)pour la liste ci-dessus ? (1 point) - Écris en compréhension la liste des éléments de
Lstrictement supérieurs à la moyenne. (1 point)
Voir le corrigé
-
def etendue(L): grand = L[0] petit = L[0] for x in L: if x > grand: grand = x if x < petit: petit = x return grand - petit -
def moyenne(L): s = 0 for x in L: s = s + x return s / len(L) etendue(L)renvoie ;moyenne(L)renvoie (affiché10.0).[x for x in L if x > moyenne(L)], qui vaut[12, 15].