Listes et boucles en Python

Publié le 1 juin 2026 à 17:17
Chapitre V-1 - Listes et boucles en Python | Révision Bac Mathématiques
1

Les listes en Python

Une liste est une collection ordonnée d'éléments, modifiable, qui peut contenir des nombres, des chaînes ou même d'autres listes. C'est la structure de base pour stocker les termes d'une suite ou des données.

Création et accès

Créer une liste : On utilise des crochets []. Exemple : ma_liste = [1, 4, 9, 16, 25]. Une liste vide se crée par vide = [].

Chaque élément a un indice : le premier est à l'indice 0, le deuxième à l'indice 1, etc. On accède à un élément par ma_liste[indice]. On peut aussi accéder à partir de la fin avec des indices négatifs : ma_liste[-1] donne le dernier élément.

Exemple :
cubes = [1, 8, 27, 64, 125]
print(cubes[0])   # affiche 1
print(cubes[3])   # affiche 64
print(cubes[-1])  # affiche 125

Modifier une liste

On peut changer un élément en affectant à son indice : cubes[2] = 30 remplace 27 par 30. Pour ajouter un élément à la fin, on utilise append(). La fonction len(liste) donne le nombre d'éléments.

Opérations essentielles :
  • liste.append(x) : ajoute x à la fin.
  • len(liste) : retourne la longueur.
  • liste.pop() : supprime le dernier élément (utile parfois).
  • Concaténation : liste1 + liste2 crée une nouvelle liste.
Construction progressive d'une liste :
termes = []
for i in range(5):
    termes.append(i**2)   # ajoute 0, 1, 4, 9, 16
print(termes)             # [0, 1, 4, 9, 16]
2

La boucle for

La boucle for permet de répéter une action pour chaque élément d'une séquence (liste, range, etc.). Elle est parfaite pour générer des termes de suite ou parcourir une liste.

range()

range(n) génère les entiers de 0 à n-1. range(début, fin) va de début à fin-1. range(début, fin, pas) permet de préciser le pas.
for i in range(5):    # i prend les valeurs 0,1,2,3,4
    print(i)

for k in range(2, 6): # 2,3,4,5
    print(k)

for n in range(1, 10, 2): # 1,3,5,7,9 (pas de 2)
    print(n)

Parcourir une liste

On peut itérer directement sur les éléments d'une liste :

couleurs = ["rouge", "vert", "bleu"]
for c in couleurs:
    print(c)

Application : génération d'une suite définie explicitement

Pour stocker les termes d'une suite $u_n = f(n)$, on crée une liste vide et on ajoute chaque terme avec append dans une boucle for.

Exemple : $u_n = n^2$ pour $n$ de 0 à 9.
u = []
for n in range(10):      # n = 0..9
    u.append(n**2)
print(u)                 # [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
3

La boucle while

La boucle while répète un bloc tant qu'une condition est vraie. On l'utilise surtout pour rechercher un seuil ou pour des suites définies par récurrence où le nombre d'itérations n'est pas connu à l'avance.

Syntaxe :
while condition:
    instruction 1
    instruction 2
    ...

Attention aux boucles infinies : il faut que la condition finisse par devenir fausse (par exemple en modifiant une variable dans la boucle).

Exemple typique : atteindre un seuil

Problème : On place 1000 € à 3% par an. Au bout de combien d'années le capital dépasse-t-il 1500 € ?
capital = 1000
annee = 0
while capital <= 1500:
    capital = capital * 1.03
    annee = annee + 1
print("Cela prendra", annee, "ans.")   # Résultat : 14 ans

Boucle while avec récurrence

On peut utiliser while pour calculer les termes successifs d'une suite récurrente jusqu'à une condition d'arrêt.

Suite $u_{n+1} = 0.5 u_n + 3$, $u_0 = 10$. On veut la première valeur de $n$ telle que $u_n < 4$.
u = 10
n = 0
while u >= 4:
    u = 0.5 * u + 3
    n = n + 1
print("n =", n, "et u =", u)  # n=5, u=3.5
Quand utiliser for ou while ?
  • for : quand on connaît à l'avance le nombre d'itérations (ex: 10 termes, parcourir une liste).
  • while : quand la répétition dépend d'une condition (ex: dépasser un seuil, convergence).
4

Exercices corrigés

Exercice 1 – Suite arithmétique (for)

Écrire un programme qui stocke dans une liste les 20 premiers termes de la suite arithmétique de premier terme $u_0 = 5$ et de raison $r = 3$.

Solution :

u = []
terme = 5
for i in range(20):
    u.append(terme)
    terme = terme + 3
print(u)
# [5, 8, 11, 14, 17, 20, 23, 26, 29, 32,
#  35, 38, 41, 44, 47, 50, 53, 56, 59, 62]

Exercice 2 – Somme des termes d'une suite géométrique (for)

Écrire un programme qui calcule la somme des 10 premiers termes de la suite géométrique de premier terme 2 et de raison 3 (c'est-à-dire $2 + 6 + 18 + \cdots + 2\times 3^9$).

Solution :

somme = 0
terme = 2
for i in range(10):   # 10 termes
    somme = somme + terme
    terme = terme * 3
print("Somme =", somme)  # 59048

Exercice 3 – Recherche de seuil avec while

On considère la suite $u_0 = 1$ et $u_{n+1} = 1.2 \times u_n$. Déterminer le plus petit entier $n$ tel que $u_n > 100$. Donner le code Python correspondant.

Solution :

u = 1
n = 0
while u <= 100:
    u = 1.2 * u
    n = n + 1
print("n =", n, "et u =", u)  # n = 24, u ≈ 119.6

Exercice 4 – Fibonacci (for + while combinés)

La suite de Fibonacci est définie par $F_0 = 1$, $F_1 = 1$, et $F_{n+2} = F_{n+1} + F_n$. Écrire un programme qui construit la liste des 15 premiers termes, puis un autre qui trouve le premier terme dépassant 1000.

Solution (liste des 15 termes) :

fib = [1, 1]
for i in range(2, 15):
    fib.append(fib[-1] + fib[-2])
print(fib)  # [1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610]

Solution (dépassement de 1000) :

a, b = 1, 1
n = 1
while b <= 1000:
    a, b = b, a + b   # décale d'un cran
    n = n + 1
print("F_", n, "=", b)  # F_16 = 1597

© 2026 – Cours de spécialité Mathématiques Première • Préparation au Bac

Ce cours est conforme au programme officiel en vigueur.