Mathématiques (spécialité) · PremièreÉpreuve anticipée de mathématiques
Listes en Python et compréhension : exercices corrigés de 1re
Publié le 6 novembre 2026 · Mis à jour le 6 novembre 2026 · Signaler une erreur
L'essentiel
- Une liste se définit par énumération de ses éléments ou en compréhension :
[expression for x in ...]. 1 - La compréhension peut filtrer une autre liste avec une condition
if: on garde seulement les éléments qui la vérifient. 3 - Les indices commencent à 0 : le premier élément est
L[0], etlen(L)donne le nombre d'éléments. - Pour une suite ou une fonction, une liste en compréhension donne d'un coup toutes les valeurs, que l'on peut ensuite sommer, comparer ou tracer. 1
Comment utiliser ces exercices
Ces exercices te font manipuler les listes Python comme tu le ferais dans un devoir de première : lire une liste, la construire, la filtrer, puis l'utiliser pour une suite ou une fonction. Chaque exercice se fait d'abord sans ordinateur, sur papier : on te demande de prévoir ce que Python afficherait. Vérifie ensuite dans un éditeur si tu veux, mais l'important est de savoir raisonner avant d'exécuter.
Les exercices
Exercice 1 Lire une liste
On définit en Python la liste L = [4, 7, 1, 9, 12].
- Que vaut
L[0]? Que vautL[3]? - Que vaut
len(L)? - Calcule la valeur de
L[3] + len(L).
Indice 1
Le premier élément a l'indice 0.
Indice 2
len(L) compte les éléments de la liste, pas leur somme.
Voir la correction pas à pas
On numérote les éléments à partir de 0 :
L[0] = 4,L[1] = 7,L[2] = 1,L[3] = 9,L[4] = 12.Donc
L[0]vaut 4 etL[3]vaut 9.La liste contient cinq éléments, donc
len(L)vaut 5. Le dernier indice valide est 4, un de moins.On calcule
L[3] + len(L) = 9 + 5 = 14.
Retiens la règle : pour une liste de n éléments, les indices vont de 0 à n − 1. Confondre « position » et « indice » est la source d'erreur la plus fréquente.
Exercice 2 Somme de carrés
On considère C = [n**2 for n in range(6)].
- Écris la liste
Cen énumérant ses éléments. - Calcule la somme des éléments de
C.
Indice 1
range(6) donne les entiers de 0 à 5.
Indice 2
n**2 signifie .
Voir la correction pas à pas
range(6)parcourt 0, 1, 2, 3, 4, 5.On élève chaque valeur au carré : , , , , , .
La liste est donc
C = [0, 1, 4, 9, 16, 25].On additionne : .
Cette liste est du même type que celle des carrés des entiers de 0 à 9 citée dans les ressources Éduscol. 1 Ici l'arrêt est à 5, car range(6) exclut 6.
Exercice 3 Filtrer les nombres pairs
Soit P = [n for n in range(1, 21) if n % 2 == 0]. L'opération n % 2 donne le reste de la division de n par 2.
- Écris la liste
P. - Combien d'éléments contient-elle ?
Indice 1
Un entier est pair quand le reste de sa division par 2 vaut 0.
Indice 2
range(1, 21) va de 1 jusqu'à 20 inclus.
Voir la correction pas à pas
On parcourt les entiers de 1 à 20.
On ne garde que ceux dont le reste dans la division par 2 est 0, c'est-à-dire les nombres pairs.
P = [2, 4, 6, 8, 10, 12, 14, 16, 18, 20].On compte : il y a 10 éléments, donc
len(P)vaut 10.
Exercice 4 Écrire la compréhension
Écris, en une seule ligne de Python, une liste en compréhension qui donne :
- les multiples de 5 compris entre 5 et 50 ;
- les carrés des entiers impairs de 1 à 9.
Précise pour chacune la liste obtenue.
Indice 1
Pour les multiples de 5, tu peux soit filtrer avec n % 5 == 0, soit calculer 5 * k.
Indice 2
Pour les impairs, le reste dans la division par 2 vaut 1.
Voir la correction pas à pas
Première liste, par calcul :
[5 * k for k in range(1, 11)]. Elle donne 5, 10, 15, …, 50.Autre écriture possible, par filtrage :
[n for n in range(1, 51) if n % 5 == 0], qui donne le même résultat.Deuxième liste :
[n**2 for n in range(1, 10) if n % 2 == 1].On garde 1, 3, 5, 7, 9 puis on élève au carré :
[1, 9, 25, 49, 81].
Plusieurs écritures différentes peuvent donner la même liste. Une bonne vérification consiste à écrire à la main les deux ou trois premiers éléments.
Exercice 5 Les termes d'une suite arithmétique
On considère la suite arithmétique définie par . On construit la liste U = [3*n + 2 for n in range(10)].
- Donne les trois premiers éléments de
U. - Quel est le dernier élément de
U? - Calcule la somme des éléments de
U.
Indice 1
range(10) donne les indices de 0 à 9 : la liste contient donc .
Indice 2
Tu peux additionner à la main, ou regrouper : .
Voir la correction pas à pas
Pour , ; pour , ; pour , .
Le dernier indice est 9, donc .
La somme des indices de 0 à 9 vaut .
La somme des éléments vaut .
Chaque élément de la liste correspond à un terme de la suite : la compréhension remplace ici le tableau de valeurs que tu ferais à la main.
Exercice 6 Valeurs d'une fonction et minimum
Soit la fonction . On construit V = [x**2 - 4*x + 1 for x in range(-2, 6)].
- Quels entiers
xsont parcourus ? - Écris la liste
V. - Quelle est la plus petite valeur de
V?
Indice 1
range(-2, 6) commence à −2 et s'arrête avant 6.
Indice 2
Fais un petit tableau : une ligne pour x, une ligne pour .
Voir la correction pas à pas
Les valeurs de
xsont −2, −1, 0, 1, 2, 3, 4, 5, soit huit entiers.On calcule : ; ; ; .
Suite : ; ; ; .
V = [13, 6, 1, -2, -3, -2, 1, 6]. La plus petite valeur est −3, atteinte pour .
On retrouve le minimum de la parabole en , ce qui est cohérent avec la forme . Une liste de valeurs permet donc de conjecturer un extremum avant de le démontrer.
Exercice 7 Carrés multiples de 3
On définit M = [n**2 for n in range(11) if (n**2) % 3 == 0].
- Écris la liste des carrés de 0 à 10.
- Écris la liste
M. - Calcule la somme de ses éléments.
Indice 1
Commence par écrire tous les carrés de 0 à 10, puis barre ceux qui ne sont pas divisibles par 3.
Indice 2
Un carré est divisible par 3 exactement quand l'entier de départ l'est.
Voir la correction pas à pas
Les carrés de 0 à 10 sont : 0, 1, 4, 9, 16, 25, 36, 49, 64, 81, 100.
On garde ceux dont le reste dans la division par 3 est 0 : 0, 9, 36 et 81.
M = [0, 9, 36, 81], qui correspond aux entiers 0, 3, 6 et 9.La somme vaut .
Ici, la condition porte sur la valeur calculée n**2 et non sur n : lis toujours ce qui est testé après if. Le résultat est le même que si l'on avait filtré les multiples de 3 parmi les entiers puis élevé au carré.
Exercice 8 Termes d'une suite définie par récurrence
La suite est définie par et . On remplit une liste T avec les huit premiers termes ( à ) grâce à une boucle :
T = [1]
for k in range(7):
T.append(2 * T[-1] + 1)
- Écris la liste
T. - Conjecture une formule explicite pour en observant
T. - Calcule la somme des éléments de
T.
Indice 1
T[-1] désigne le dernier élément de la liste, et append ajoute un élément à la fin.
Indice 2
Compare chaque terme à une puissance de 2 : 2, 4, 8, 16…
Voir la correction pas à pas
Tcommence par 1. À chaque tour de boucle, on ajoute le double du dernier terme, plus 1.On obtient : 1, 3, 7, 15, 31, 63, 127, 255. La boucle s'exécute sept fois, d'où huit éléments en tout.
Chaque terme est une puissance de 2 moins 1 : . Cette formule reste une conjecture, qu'une récurrence permettrait de démontrer.
On additionne avec la formule : .
Une boucle construit la liste terme après terme quand on connaît la relation de récurrence ; une compréhension s'utilise dès qu'on dispose d'une formule explicite. Les deux écritures donnent ici la même liste.
Exercice 9 Abscisses et ordonnées pour un tracé
Pour tracer la courbe de sur l'intervalle avec un pas de 0,5, on construit d'abord la liste des abscisses :
abscisse = [-2 + 0.5 * k for k in range(9)]
ordonnee = [x**2 for x in abscisse]
- Écris la liste
abscisse. - Écris la liste
ordonnee. - Calcule la somme des éléments de
ordonnee. - Que remarques-tu sur la symétrie de la liste
ordonnee?
Indice 1
La première abscisse est −2, la dernière vaut .
Indice 2
Les abscisses opposées ont le même carré.
Voir la correction pas à pas
Pour de 0 à 8, on obtient : −2 ; −1,5 ; −1 ; −0,5 ; 0 ; 0,5 ; 1 ; 1,5 ; 2. La dernière valeur est bien 2.
On élève au carré : 4 ; 2,25 ; 1 ; 0,25 ; 0 ; 0,25 ; 1 ; 2,25 ; 4.
On additionne par paires symétriques : .
La liste
ordonneese lit de la même façon de gauche à droite et de droite à gauche, car : la fonction carré est paire, ce qui se voit sur sa courbe.
Les ressources Éduscol utilisent justement une liste en compréhension de la forme [f(x) for x in abscisse] pour préparer le tracé d'une courbe. 1 Les deux listes ont la même longueur, ce qui permet d'associer chaque abscisse à son ordonnée.
Les questions qu'on se pose
Pourquoi le premier élément d'une liste a-t-il l'indice 0 ?
C'est la convention de Python : l'indice mesure le décalage par rapport au début de la liste. Le premier élément est à décalage 0, le deuxième à décalage 1, et ainsi de suite. Pour une liste de éléments, le dernier indice est donc . Si tu écris un indice égal à len(L), Python signale une erreur car il dépasse la fin de la liste.
Quelle est la différence entre une liste définie par énumération et une liste en compréhension ?
Une liste par énumération écrit chaque élément un par un, comme [0, 1, 4, 9]. Une liste en compréhension donne une règle qui produit les éléments, comme un ensemble défini par une propriété en mathématiques. 1 La seconde est plus courte et reste lisible quand la liste est longue ; la première convient aux petites listes.
Comment savoir où placer le `if` dans une compréhension ?
Le if se place à la fin, après la source : [n**2 for n in range(11) if n % 2 == 0]. Il décide quels éléments de la source sont retenus, puis l'expression au début calcule la valeur de chacun. 3 Pour t'y retrouver, lis la phrase à haute voix : « le carré de n, pour n dans les entiers de 0 à 10, si n est pair ».
Sources
- Ressources Éduscol - Algorithmique et listes en Python, Éduscol - Ministère de l'Éducation. Consulté le 6 novembre 2026.
- Ressources Éduscol - Programmation en Python (doc 30007), Éduscol - Ministère de l'Éducation. Consulté le 6 novembre 2026.
- Liste en compréhension, Wikipédia. Consulté le 6 novembre 2026.
- Python (langage), Wikipédia. Consulté le 6 novembre 2026.
Les numéros dans le texte renvoient à ces sources. Une source qui ne dit pas ce qu'on lui fait dire ? Signale-le.