Loading
Loading
Python est l'outil numérique transversal du programme de spécialité : il sert à calculer des termes de suites, des sommes et des intégrales approchées, à rechercher un seuil, à encadrer une solution d'équation et à simuler des expériences aléatoires. Ce thème rassemble les bases du langage (variables, conditions, boucles for/while), les fonctions et les listes, les algorithmes liés au programme (seuils, sommes, suites, dichotomie/balayage, méthode des rectangles) et la simulation aléatoire (module random, estimation d'une probabilité par fréquence). On y apprend aussi à lire un programme, à en faire la trace d'exécution et à corriger une erreur.
5sectionsca. 25min de lecture4compétencesNiveauBase 1 · Standard 2 · Approfondissement 2Vérifié · 06/2026
niveau de base
Maîtriser d'abord la lecture et la trace d'exécution d'un programme court (variables, boucle for/while, condition), savoir compléter une ligne manquante et reconnaître l'algorithme attendu (seuil, somme, simulation).
niveau approfondi
En spécialité, savoir écrire entièrement une fonction Python demandée (recherche de seuil, dichotomie, méthode des rectangles, simulation), relier la sortie du programme à un résultat d'analyse (limite, aire, probabilité) et repérer puis corriger une erreur en justifiant la correction.
Lesetiefe: Approfondi
Schriftgröße: Standard
for vs while : choisir la bonne boucle
Sémantique de range
`range(n)` produit les entiers de à inclus : la boucle effectue exactement itérations, et la borne N'est PAS atteinte.
Affectation / incrémentation
On évalue le membre de droite avec l'ANCIENNE valeur de x, puis on range le résultat dans x : c'est une instruction, pas une équation.
On donne le programme Python suivant. Indiquer ce qu'il affiche, puis le réécrire avec une boucle `while` produisant le même résultat. ``` s = 0 for k in range(1, 5): s = s + k print(s) ```
La variable `s` part de ; `k` prend successivement les valeurs (range(1, 5) exclut ). À chaque tour on ajoute `k` à `s`.
Après la boucle, `s` vaut : le programme calcule et affiche `10`.
On introduit un compteur `k` initialisé à , qu'on incrémente tant qu'il ne dépasse pas : ``` s = 0 k = 1 while k <= 4: s = s + k k = k + 1 print(s) ``` La condition `k <= 4` joue le rôle de la borne de `range`.
Résultat : Le programme affiche `10` ; la version `while` (compteur `k` de à ) donne le même résultat. Ici une boucle `for` est plus naturelle car le nombre de tours est connu.
Erreurs fréquentes
Révision active
Écrire un programme qui demande un entier (`n = 50` par exemple), puis affiche le nombre d'entiers entre et qui sont multiples de (on utilisera une boucle `for`, un test avec l'opérateur `%` de reste, et un compteur incrémenté).
Rappel actif
Rappelle-toi les points clés — puis révèle.
Sources : Programme de spécialité mathématiques — classe terminale (BO spécial n° 8 du 25 juillet 2019) (Ministère de l'Éducation nationale — Éduscol)
Anatomie d'une fonction Python
Définition et appel d'une fonction
`def` crée la fonction, `return` fixe la valeur de sortie ; l'appel `f(a)` remplace le paramètre par l'argument et renvoie le résultat.
Liste en compréhension
Construit en une instruction la liste des premières images : c'est la traduction directe d'une famille .
Somme par accumulateur
L'accumulateur `s` cumule les termes un à un ; `sum(L)` réalise exactement la même somme.
Soit la suite définie par pour . 1. Écrire une fonction Python `u(n)` qui renvoie . 2. Écrire une fonction `somme(N)` qui renvoie la somme à l'aide d'un accumulateur. 3. Donner la valeur affichée par `somme(3)`.
Le terme est explicite : on renvoie directement . ``` def u(n): return 1 / (n + 1) ```
On initialise l'accumulateur `s = 0`, puis on ajoute `u(k)` pour `k` de à inclus (donc `range(N + 1)`). ``` def somme(N): s = 0 for k in range(N + 1): s = s + u(k) return s ```
On somme les quatre premiers termes .
Résultat : `u(n)` renvoie , `somme(N)` cumule les termes par accumulateur, et `somme(3)` affiche .
Erreurs fréquentes
Révision active
On considère la suite définie par et . Écrire une fonction `terme(n)` qui renvoie en itérant la relation de récurrence avec une boucle `for`, puis construire par compréhension la liste `[terme(k) for k in range(8)]` des huit premiers termes.
Rappel actif
Rappelle-toi les points clés — puis révèle.
Sources : Programme de spécialité mathématiques — classe terminale (BO spécial n° 8 du 25 juillet 2019) (Ministère de l'Éducation nationale — Éduscol)
Organigramme d'une recherche de seuil (boucle while)
Algorithme de recherche de seuil (while)
On itère la suite tant que le seuil n'est pas atteint ; le compteur `n` donne le rang du premier dépassement.
Somme par accumulateur
L'accumulateur cumule les termes de rang à : la borne `range(N+1)` garantit le bon compte.
Recherche de seuil : u₀ = 100, uₙ₊₁ = 1,08 uₙ ; premier rang où uₙ > 200
Une espèce végétale invasive couvre une surface hectares et s'étend de par an : . On souhaite connaître le nombre d'années au bout duquel la surface dépasse hectares. 1. Écrire une fonction Python `seuil()` qui renvoie ce nombre d'années. 2. Déterminer sa valeur par une trace, et justifier que ce seuil existe.
On part de la surface initiale et on multiplie par tant qu'on n'a pas dépassé , en comptant les années. ``` def seuil(): S = 12 n = 0 while S <= 50: S = 1.2 * S n = n + 1 return n ```
On suit jusqu'au premier dépassement de .
Le seuil est franchi au tour (), donc `seuil()` renvoie . L'existence du seuil est garantie car est géométrique de raison , donc : toute valeur, en particulier , finit par être dépassée.
Résultat : `seuil()` renvoie : il faut ans pour dépasser hectares. Le franchissement est certain car entraîne .
Erreurs fréquentes
Révision active
Un capital de € placé à par an suit , . Écrire une fonction `annees()` qui renvoie le nombre d'années nécessaires pour que le capital dépasse €, puis justifier mathématiquement que ce seuil est forcément atteint.
Rappel actif
Rappelle-toi les points clés — puis révèle.
Sources : Programme de spécialité mathématiques — classe terminale (BO spécial n° 8 du 25 juillet 2019) (Ministère de l'Éducation nationale — Éduscol)
Dichotomie : encadrement successif d'une racine
Méthode des rectangles (à gauche)
On somme les aires de rectangles de largeur et de hauteur : c'est une somme de Riemann qui tend vers l'intégrale quand .
Dichotomie
À chaque étape, le milieu remplace la borne du même signe : l'intervalle contenant la racine est divisé par deux, donc l'encadrement converge très vite.
Méthode des rectangles sous la courbe
Méthode des rectangles : approximation de ∫₀¹ x² dx = 1/3 ≈ 0,333 selon n
On veut approcher par la méthode des rectangles à gauche. 1. Écrire une fonction Python `rectangles(n)` qui renvoie l'approximation de avec rectangles. 2. Donner l'approximation obtenue pour . 3. Comparer à la valeur exacte et expliquer le sens de l'écart.
La largeur d'un rectangle est ; on accumule avec et pour de à . ``` def rectangles(n): a, b = 0, 1 h = (b - a) / n s = 0 for k in range(n): x = a + k * h s = s + h x*2 return s ```
Avec , et les abscisses . On somme les aires .
La valeur exacte de l'intégrale est . L'approximation est INFÉRIEURE : avec des rectangles à gauche et croissante, chaque rectangle est entièrement sous la courbe, d'où une SOUS-ESTIMATION qui se réduit quand grandit.
Résultat : `rectangles(4)` renvoie , valeur approchée par défaut de ; l'écart vient des rectangles à gauche sous une fonction croissante (sous-estimation), et il diminue lorsque augmente.
Erreurs fréquentes
Révision active
Soit . Vérifier que est strictement croissante et que l'équation a une unique solution dans , puis écrire une fonction `dichotomie(eps)` qui renvoie un encadrement de cette solution d'amplitude inférieure à `eps`.
Rappel actif
Rappelle-toi les points clés — puis révèle.
Sources : Programme de spécialité mathématiques — classe terminale (BO spécial n° 8 du 25 juillet 2019) (Ministère de l'Éducation nationale — Éduscol)
Trace d'exécution tabulée d'une boucle de simulation
Estimation d'une probabilité par fréquence
Le test `random() < p` réussit avec probabilité ; la fréquence des succès sur répétitions estime et s'en rapproche (loi des grands nombres).
Loi binomiale simulée
On simule en comptant les succès de épreuves de Bernoulli ; la moyenne empirique des simulations approche l'espérance .
Histogramme d'une simulation de X ∼ B(10 ; 0,5) (1 000 répétitions)
On veut estimer la probabilité d'obtenir « au moins un » en lançant un dé équilibré fois. Un élève propose le programme suivant, qui renvoie un résultat manifestement trop faible. ``` from random import randint def estime(N): succes = 0 for i in range(N): six = False for j in range(4): if randint(1, 5) == 6: six = True if six: succes = succes + 1 return succes / N ``` 1. Repérer l'erreur. 2. Corriger le programme et commenter. 3. Donner la probabilité théorique pour valider l'ordre de grandeur attendu.
Le tirage `randint(1, 5)` ne produit JAMAIS la valeur (les entiers tirés vont de à inclus). La condition `== 6` est donc toujours fausse, `six` reste `False`, et la fonction renvoie toujours : c'est pourquoi le résultat est trop faible (nul).
On simule un vrai dé à six faces avec `randint(1, 6)` (les deux bornes sont incluses) : ``` from random import randint def estime(N): succes = 0 for i in range(N): six = False for j in range(4): if randint(1, 6) == 6: # dé à 6 faces : borne haute = 6 six = True if six: succes = succes + 1 return succes / N ``` La correction porte sur la borne supérieure du `randint`, qui doit valoir pour qu'un puisse sortir.
La probabilité de n'obtenir AUCUN sur lancers est ; donc « au moins un » a pour probabilité son complément.
Résultat : L'erreur était `randint(1, 5)` au lieu de `randint(1, 6)` (le ne pouvait jamais sortir). Après correction, la fréquence simulée pour grand approche la valeur théorique .
Erreurs fréquentes
Révision active
Écrire une fonction `frequence(N)` qui simule lancers de deux dés à six faces (avec `randint`) et renvoie la fréquence de l'événement « la somme des deux dés vaut ». Faire tourner pour et comparer à la probabilité théorique .
Rappel actif
Rappelle-toi les points clés — puis révèle.
Sources : Programme de spécialité mathématiques — classe terminale (BO spécial n° 8 du 25 juillet 2019) (Ministère de l'Éducation nationale — Éduscol)
Références et sources
Ministère de l'Éducation nationale — Éduscol