
23 exercices classés par difficulté (★ facile, ★★ moyen, ★★★ difficile). Cherche d’abord sans regarder le corrigé !
1 Lire une boucle for ★★★
On considère le programme suivant.
s = 0
for k in range(1, 6):
s = s + k * k
print(s)
- Quelles valeurs prend la variable k ?
- Quel nombre le programme affiche-t-il ?
- Modifie-le pour qu’il affiche la somme des cubes des entiers de 1 à 5.
2 Définir une fonction ★★★
Écris en Python une fonction f qui prend un réel x et renvoie 3x² − 2x + 1. Calcule à la main f(4), f(−1) et f(0,5), puis vérifie avec ton programme. Quelle différence y a-t-il entre return et print ?
3 Manipuler une liste ★★★
Voici un programme.
L = [3, 8, 1, 9, 4, 7] print(len(L), sum(L), max(L), L[2], L[-1]) print(sum(L) / len(L)) print([2 * x for x in L if x > 3])
Prévois ce qu’il affiche (trois lignes), puis exécute-le pour vérifier. Explique pourquoi L[2] n’est pas le deuxième élément de la liste.
4 Calculer le terme d’une suite ★★★
La suite (un) est définie par u0 = 2 et un+1 = 3un − 1.
- Calcule à la main u1, u2, u3.
- Écris une fonction terme(n) qui renvoie un à l’aide d’une boucle for.
- Quelle valeur renvoie terme(5) ?
5 Un premier seuil ★★★
La valeur d’un appareil perd 20 % par an. Il vaut 1 000 € au départ. On cherche en combien d’années sa valeur devient strictement inférieure à 50 €.
- Quel coefficient multiplicateur correspond à une baisse de 20 % ?
- Complète puis exécute un programme qui répond (utilise une boucle while).
6 Range et indices ★★★
Sans exécuter, écris les listes obtenues avec : list(range(5)) ; list(range(2, 8)) ; list(range(1, 10, 3)) ; list(range(5, 0, -1)). Vérifie ensuite avec Python.
7 Simuler des lancers de pièce ★★★
Voici un programme.
import random
random.seed(7)
faces = 0
for i in range(20):
if random.randint(0, 1) == 1:
faces = faces + 1
print(faces, faces / 20)
- Que simule-t-il ?
- Pourquoi le nombre de « faces » n’est-il pas toujours égal à 10 ?
- À quoi sert random.seed(7) ?
8 Suite convergente et précision ★★★
On définit u0 = 20 et un+1 = 0,5un + 3.
- Résous ℓ = 0,5ℓ + 3 et montre que la suite (un − ℓ) est géométrique.
- Écris un programme qui donne le plus petit entier n tel que un − ℓ < 0,01.
- Retrouve ce rang par le calcul.
9 Doubler un capital ★★★
Un capital de 5 000 € est placé à 3 % d’intérêts composés par an. Écris un programme qui donne le nombre d’années nécessaires pour que le capital atteigne ou dépasse 10 000 €. Justifie le résultat par le calcul.
10 Somme des inverses des carrés ★★★
Pour n ≥ 1, on pose Sn = 1 + 1/4 + 1/9 + … + 1/n². Écris un programme qui renvoie le plus petit entier n tel que Sn > 1,6. Explique pourquoi le programme s’arrête (on admet que Sn tend vers π² / 6 ≈ 1,645).
11 Dichotomie à la main ★★★
Soit f(x) = x² − 5 sur [2 ; 3].
- Justifie que f s’annule une seule fois sur [2 ; 3].
- Applique trois étapes de dichotomie en complétant un tableau (a, b, m, f(m)).
- Donne un encadrement de √5 d’amplitude 0,125.
- Combien d’étapes faut-il pour une amplitude strictement inférieure à 10−4 ?
12 Quatre rectangles à la main ★★★
On veut encadrer I = ∫ x² dx entre 0 et 1 avec n = 4 rectangles de même largeur.
- Quelle est la largeur h ?
- Calcule la somme des aires des rectangles « sous la courbe » et celle des rectangles « au-dessus ».
- Donne l’encadrement obtenu, puis vérifie que 1/3 s’y trouve.
- Quel écart sépare les deux sommes ? Quel n garantit un écart inférieur à 0,001 ?
13 Compter des couples ★★★
On lance deux dés équilibrés à six faces, un rouge et un bleu. Écris un programme qui compte les couples (a ; b) de somme 7 et calcule la probabilité de cet événement. Retrouve le résultat par un raisonnement direct.
14 Fréquence et probabilité ★★★
Voici une simulation de 5 000 lancers de deux dés.
import random
random.seed(21)
N = 5000
sept = 0
for i in range(N):
if random.randint(1, 6) + random.randint(1, 6) == 7:
sept = sept + 1
print(sept / N)
- Que calcule-t-il ?
- Compare la fréquence obtenue à la probabilité de l’exercice précédent.
- Quel ordre de grandeur d’écart peut-on attendre ?
15 Newton pour une racine carrée ★★★
On veut une valeur approchée de √7, solution positive de f(x) = x² − 7 = 0.
- Montre que la méthode de Newton donne xn+1 = (xn + 7 / xn) / 2.
- Calcule x1 et x2 pour x0 = 3 (fractions puis valeurs approchées).
- Écris le programme qui affiche x1, x2, x3 et compare avec 7 ** 0.5.
16 Newton sur une équation du troisième degré ★★★
Soit f(x) = x³ + 2x − 5.
- Montre que f s’annule une seule fois sur ℝ et que cette solution α est dans [1 ; 2].
- Écris un programme qui applique la méthode de Newton à partir de x0 = 1,5 jusqu’à ce que |f(xn)| ≤ 10−12.
- Donne la valeur approchée trouvée et le nombre d’itérations.
17 Dichotomie et exponentielle ★★★
Soit f(x) = ex + x − 3 sur [0 ; 2].
- Prouve que l’équation f(x) = 0 a une unique solution α dans [0 ; 2].
- Écris et exécute une dichotomie qui encadre α avec une amplitude inférieure ou égale à 10−6.
- Prévois le nombre d’étapes à l’aide de la formule k ≥ log2((b − a) / e) puis compare avec le programme.
18 Estimer ln 2 par les rectangles ★★★
La fonction f(x) = 1/x est décroissante sur [1 ; 2] et son intégrale entre 1 et 2 vaut ln 2 ≈ 0,6931.
- Pour une découpe en n bandes, écris les deux sommes qui encadrent l’intégrale (explique lequel est le minorant).
- Montre que leur écart vaut 1 / (2n).
- Trouve le plus petit n pour lequel cet écart est strictement inférieur à 10−3 et exécute le programme pour n = 500.
19 Seuil de probabilité ★★★
Un joueur réussit un tir avec la probabilité 0,3, indépendamment des autres tirs. On veut que la probabilité de réussir au moins un tir sur n tirs dépasse 0,99.
- Exprime cette probabilité en fonction de n.
- Écris un programme qui renvoie le plus petit n convenable.
- Retrouve ce n par le calcul avec un logarithme.
20 Estimer π par Monte-Carlo ★★★
On tire au hasard un point (x ; y) dans le carré [0 ; 1] × [0 ; 1].
- Quelle est la probabilité que le point soit dans le quart de disque de centre O et de rayon 1 ?
- Explique le programme suivant et donne sa sortie.
import random
random.seed(2024)
N = 100000
dedans = 0
for i in range(N):
x = random.random()
y = random.random()
if x * x + y * y <= 1:
dedans = dedans + 1
print(4 * dedans / N)
c) Quelle précision peut-on espérer ? Combien de points faut-il pour gagner une décimale de plus ?
21 Arrangements et combinaisons ★★★
Voici un programme qui utilise itertools et math.comb.
import itertools from math import comb lettres = "ABCDE" print(len(list(itertools.permutations(lettres, 4)))) print(comb(32, 5)) print(comb(5, 3), len(list(itertools.combinations(lettres, 3))))
- Calcule à la main chaque nombre affiché (justifie par un dénombrement).
- Pourquoi vaut-il mieux utiliser comb(32, 5) que générer la liste de toutes les combinaisons ?
22 Loi binomiale par programme ★★★
Soit X qui suit la loi binomiale B(10 ; 0,3).
- Écris une fonction binom(n, p, k) qui renvoie P(X = k).
- Calcule P(X = 3), P(X ≤ 2) et P(X ≥ 2).
- Que vaut l’espérance ? Vérifie-la en calculant la somme des k × P(X = k).
23 Problème : un parc de vélos ★★★
Un parc compte 1 000 vélos en libre-service au 1er janvier 2025. Chaque année, 10 % des vélos sont retirés (usure), puis la mairie en installe 80 nouveaux. On note un le nombre de vélos au 1er janvier de l’année 2025 + n.
- Montre que un+1 = 0,9un + 80.
- Montre que vn = un − 800 est géométrique et exprime un en fonction de n. Quelle est la limite ?
- Programme : à partir de quelle année y aura-t-il moins de 810 vélos ?

