Un programme Python est une suite d'instructions que l'ordinateur exécute dans l'ordre, de haut en bas. Écris prix = 12, puis à la ligne suivante print(prix * 3) : Python mémorise 12 sous le nom prix, puis affiche 36. Tout le reste part de là : des valeurs mémorisées sous des noms, et des instructions qui s'en servent.
On suit ici les notions que le programme de mathématiques de Seconde, appliqué depuis la rentrée 2026, demande en Python : variables, conditions, boucles et fonctions. Recopie chaque exemple dans un éditeur Python, ou sur ta calculatrice si elle a un mode Python.
Variables et affectation
Une variable est un nom qui désigne une valeur gardée dans la mémoire de l'ordinateur. Elle reçoit sa valeur par une affectation, avec le signe =.
age = 16
age = age + 1
print(age)
Ce programme affiche 17. La deuxième ligne choque en maths, car un nombre n'est jamais égal à lui-même plus 1. C'est qu'en Python, = n'est pas une égalité.
Définition : l'affectation variable = expression calcule d'abord la partie droite, puis place le résultat dans la variable de gauche, à la place de l'ancienne valeur. En langage naturel, on la note avec une flèche : age ← age + 1.
Un nom de variable n'a pas d'espace et ne commence pas par un chiffre : note_maths convient, note maths non. Et Age n'est pas age : Python distingue les majuscules.
Les quatre types de valeurs
Chaque valeur a un type, c'est-à-dire une nature, qui décide de ce qu'on peut en faire. Le programme de Seconde en retient quatre.
| Type | Ce que c'est | Exemples |
|---|---|---|
int (entier) | un nombre entier | 16, -3 |
float (flottant) | un nombre à virgule, écrit avec un point | 3.5, -0.25 |
str (chaîne de caractères) | du texte, entre guillemets | "Bonjour", "16" |
bool (booléen) | vrai ou faux | True, False |
La division / donne toujours un flottant : 6 / 2 vaut 3.0, pas 3. Et "16" n'est pas le nombre 16 mais un texte : "16" + "1" donne "161", car + colle deux textes bout à bout.
Piège classique : input(), qui lit ce que l'utilisateur tape au clavier, renvoie toujours une chaîne de caractères, même pour un nombre. Après age = input("Ton âge ? "), le calcul age + 1 déclenche une erreur TypeError. Convertis dès la saisie : age = int(input("Ton âge ? ")).
Les conditions : if, elif, else
Une instruction conditionnelle n'exécute un bloc que si une condition est vraie. Cette condition est souvent une comparaison : <, >, <=, >=, == (égal) ou != (différent).
note = 13
if note >= 16:
print("Très bien")
elif note >= 10:
print("Moyenne atteinte")
else:
print("Sous la moyenne")
Ce programme affiche Moyenne atteinte. Le mot else veut dire « sinon », et elif « sinon si ». Python teste les conditions dans l'ordre et n'exécute que le bloc de la première qui est vraie : 13 n'atteint pas 16, mais atteint 10.
Remarque le deux-points au bout des lignes if, elif et else, et le décalage des lignes en dessous : c'est l'indentation, en général quatre espaces. Elle dit à Python quelles lignes font partie du bloc, donc toutes les lignes d'un même bloc sont décalées pareil. Même règle pour les boucles et les fonctions.
Piège classique : un seul = affecte une valeur, deux == comparent. Écrire if note = 10: déclenche une SyntaxError ; il faut if note == 10:.
Les boucles for et while
Une boucle répète un bloc d'instructions. Si tu sais d'avance combien de tours il faut, prends la boucle bornée for.
for i in range(4):
print(i)
Ce programme affiche 0, 1, 2 et 3, un nombre par ligne : range(4) fournit quatre valeurs, en partant de 0. Avec deux nombres, range(1, 5) donne 1, 2, 3 et 4.
Piège classique : la borne de fin de range n'est jamais atteinte. Pour aller de 1 à 10, il faut range(1, 11).
Sinon, prends la boucle non bornée while, « tant que » : elle recommence tant que sa condition est vraie. Ce programme cherche la première puissance de 2 qui dépasse 100.
n = 1
while n < 100:
n = n * 2
print(n)
Il affiche 128 : n double à chaque tour (2, 4, 8, 16, 32, 64, 128), et à 128, la condition n < 100 devient fausse. Le print, non indenté, ne s'exécute qu'après la boucle. Si rien ne change dans le bloc d'un while, sa condition reste vraie pour toujours : c'est une boucle infinie.
Conseil : devant une boucle, fais au brouillon un tableau de suivi : une colonne par variable, une ligne par tour.
Les fonctions
Une fonction est un morceau de programme qui porte un nom, pour s'en resservir sans le réécrire. Elle reçoit des valeurs, ses paramètres, et renvoie un résultat avec return.
def aire_rectangle(longueur, largeur):
return longueur * largeur
print(aire_rectangle(5, 3))
Ce programme affiche 15. La ligne def donne le nom de la fonction et ses paramètres entre parenthèses. La dernière ligne appelle la fonction : longueur prend la valeur 5, largeur la valeur 3, et return renvoie 15 là où on l'a appelée.
Piège classique : print affiche une valeur, return la renvoie au programme pour qu'il s'en serve. Sans return, une fonction renvoie None, une valeur vide : avec un print à la place du return, le calcul 2 * aire_rectangle(5, 3) déclencherait une TypeError.
Python fournit aussi des fonctions toutes prêtes. Après from random import randint, l'appel randint(1, 6) renvoie un entier au hasard entre 1 et 6, bornes comprises cette fois : de quoi simuler un dé.
Lire un message d'erreur
Quand Python bute sur une ligne, il s'arrête et affiche un message en anglais. Lis-le : il donne le numéro de la ligne fautive, et sa dernière ligne commence par le type d'erreur.
| Erreur | Ce qu'elle veut dire | Cause fréquente |
|---|---|---|
SyntaxError | ligne mal écrite | deux-points oublié, parenthèse non fermée, = au lieu de == |
IndentationError | décalage incorrect | bloc non indenté, ou décalé de travers |
NameError | nom inconnu | faute de frappe, ou variable utilisée avant d'être créée |
TypeError | types incompatibles | texte additionné à un nombre, souvent après un input() |
Exemple tiré du tutoriel officiel de Python : '2' + 2 provoque TypeError: can only concatenate str (not "int") to str, c'est-à-dire « on ne colle à un texte qu'un autre texte ».
Exercices corrigés
Cherche chacun sur ta feuille avant d'ouvrir la correction.
Exercice 1 : Sans ordinateur, dis ce qu'affiche ce programme.
a = 5
b = a + 2
a = b * 3
b = b - a
print(a, b)
Correction :
On suit les variables ligne par ligne, avec leurs valeurs du moment. Ligne 1 : a vaut 5. Ligne 2 : b vaut 5 + 2 = 7. Ligne 3 : a vaut 7 × 3 = 21, et l'ancien 5 est perdu. Ligne 4 : b vaut 7 − 21 = −14.
Le programme affiche 21 -14.
Exercice 2 : Qu'affiche ce programme ? Change ensuite une seule ligne pour qu'il affiche la somme 1 + 2 + … + 10, et donne cette somme.
s = 0
for i in range(1, 5):
s = s + i
print(s)
Correction :
La boucle parcourt range(1, 5), soit 1, 2, 3 et 4, sans le 5. Donc s vaut 0 + 1 + 2 + 3 + 4 = 10, et le programme affiche 10. Répondre 15, c'est tomber dans le piège de la borne de fin.
Pour aller jusqu'à 10, la deuxième ligne devient for i in range(1, 11):, et le programme affiche 55.
Exercice 3 : Léa a 50 € de côté et en ajoute 15 chaque semaine. Écris un programme qui affiche le nombre de semaines nécessaires pour qu'elle ait au moins 200 €, puis donne ce nombre.
Correction :
On ne connaît pas d'avance le nombre de tours : c'est un travail pour while.
argent = 50
semaines = 0
while argent < 200:
argent = argent + 15
semaines = semaines + 1
print(semaines)
Après 9 semaines, Léa a 50 + 9 × 15 = 185 €, moins de 200 €. Après 10 semaines, elle a 50 + 10 × 15 = 200 € : la condition argent < 200 devient fausse et la boucle s'arrête. Le programme affiche 10 : il faut 10 semaines. Avec argent <= 200, la boucle ferait un tour de trop et afficherait 11.
Exercice 4 : En Python, a % b donne le reste de la division entière de a par b : 17 % 3 vaut 2. Écris une fonction est_multiple(a, b) qui renvoie True si l'entier a est un multiple de l'entier b, non nul, et False sinon. Que renvoient est_multiple(21, 7) et est_multiple(20, 6) ?
Correction :
Le nombre a est un multiple de b quand la division de a par b tombe juste, donc quand le reste est nul.
def est_multiple(a, b):
if a % b == 0:
return True
else:
return False
Comme 21 = 3 × 7 + 0, le reste vaut 0 : est_multiple(21, 7) renvoie True. Comme 20 = 3 × 6 + 2, le reste vaut 2 : est_multiple(20, 6) renvoie False.
À retenir
À retenir :
x = expressioncalcule la partie droite, puis place le résultat dansx.- Quatre types :
int,float,str,bool.input()renvoie toujours unstr. - Un
=affecte, deux==comparent. - Deux-points en bout de ligne, puis bloc indenté, pour
if,for,whileetdef. forquand le nombre de tours est connu,whilesinon ;range(n)va de 0 à n − 1.returnrenvoie un résultat réutilisable,printne fait que l'afficher.- Un message d'erreur se lit par sa dernière ligne.
Sources
- Programme de mathématiques de la classe de seconde générale et technologique, fixé par l'arrêté du 26 février 2026 et appliqué depuis la rentrée 2026 : texte sur education.gouv.fr.
- Documentation officielle de Python, en français : tutoriel (« Introduction informelle à Python », « D'autres outils de contrôle de flux », « Erreurs et exceptions ») et module random.