2de Mathématiques BO n°14 du 2 avril 2026

Algorithmique et programmation en Python

Résumé de cours

Algorithmique et programmation en Python Mathématiques · 2de · Les Génies des Sciences · geniesdessciences.com

Programmer, c’est écrire une recette tellement précise qu’une machine peut l’exécuter sans jamais deviner. En maths, ça sert à calculer vite, tester une conjecture sur mille exemples ou simuler mille lancers de dés. Le langage du lycée, c’est Python — et la bonne nouvelle, c’est qu’il se lit presque comme du français.

Les variables : des boites étiquetées

Une variable, c’est une boite avec une étiquette (son nom) et un contenu (sa valeur). L’affectation = range une valeur dans la boite — en langage naturel, on la note avec une flèche ←.

age = 15          # entier (int)
moyenne = 13.5    # flottant (float) : le point remplace la virgule
recu = True       # booléen (bool) : True ou False, rien d'autre
prenom = "Sofia"  # chaine de caractères (str), entre guillemets
  • Le signe = n’est pas une équation : a = a + 1 est absurde en maths, mais parfaitement logique en Python — « calcule a + 1 avec la valeur actuelle, puis range le résultat dans a ».
  • Une séquence d’instructions s’exécute dans l’ordre, ligne après ligne, de haut en bas.

Tester avec if / else

if moyenne >= 10:
    print("Module valide")
else:
    print("Rattrapage")
  • La condition (moyenne >= 10) est un booléen : elle vaut True ou False. Si elle est vraie, le bloc indenté (décalé de 4 espaces) sous if s’exécute ; sinon, c’est le bloc sous else.
  • Comparaisons disponibles : == (égal), != (différent), <, <=, >, >=. Attention : == compare, = affecte.

Répéter : les boucles for et while

total = 0
for i in range(1, 11):   # i prend les valeurs 1, 2, ..., 10
    total = total + i
print(total)             # affiche 55

Ce que parcourt range

range(n) : 0, 1, 2, , n1range(a,b) : a, a+1, , b1\texttt{range}(n)\ :\ 0,\ 1,\ 2,\ \ldots,\ n-1 \qquad \texttt{range}(a,\,b)\ :\ a,\ a+1,\ \ldots,\ b-1

La borne de droite est toujours exclue : range(5) donne 5 valeurs, de 0 à 4, et range(1, 11) s’arrête à 10. C’est LE piège n° 1 de Python.

La boucle while, elle, répète tant que la condition est vraie — sans connaitre à l’avance le nombre de tours :

population = 100
jours = 0
while population < 1000:
    population = population * 2
    jours = jours + 1
print(jours)   # affiche 4, car 100 -> 200 -> 400 -> 800 -> 1600

for ou while ?

Tu connais le nombre de répétitions à l’avance (« fais ceci 100 fois ») → boucle bornée for. Tu répètes jusqu’à ce qu’une condition change (« double tant qu’on n’a pas dépassé 1000 ») → boucle non bornée while.

Les fonctions : def, arguments, return

Comme en maths, une fonction reçoit des valeurs d’entrée (les arguments — un ou plusieurs) et renvoie un résultat avec return :

def perimetre(longueur, largeur):
    return 2 * (longueur + largeur)

p = perimetre(5, 3)   # appel de la fonction : p vaut 16
  • def définit la fonction, l’appel perimetre(5, 3) l’utilise.
  • return renvoie le résultat au programme (et arrête la fonction) ; print ne fait qu’afficher à l’écran. Pour réutiliser un résultat dans un calcul, il faut return.

Simuler le hasard avec random

Le module random fournit des fonctions qui renvoient un nombre aléatoire : randint(a, b) donne un entier au hasard entre a et b, bornes comprises, et random() un flottant au hasard entre 0 (compris) et 1 (exclu). En répétant l’appel dans une boucle, on simule une expérience aléatoire :

from random import randint

def frequence_six(n):
    compteur = 0
    for i in range(n):
        if randint(1, 6) == 6:
            compteur = compteur + 1
    return compteur / n

Chaque appel randint(1, 6) simule un lancer de dé ; la fonction renvoie la fréquence des six sur n lancers. Quand n grandit, cette fréquence se rapproche de la probabilité 160,167\dfrac{1}{6} \approx 0{,}167 : la simulation donne une série statistique qui permet de « voir » les probabilités.

Les pièges classiques

Quatre erreurs qui coutent des points

range(10) s’arrête à 9, pas à 10. L’indentation fait partie du langage : un bloc mal décalé change le programme (ou le rend faux). Les décimaux s’écrivent avec un point (3.5) — en Python, la virgule sert à séparer les arguments. Et ne confonds pas = (affecter) avec == (comparer) : if x = 5 est une erreur de syntaxe.

Exercices corrigés

Teste-toi avec un quiz