💻Python : variables, conditions, boucles
Cours de mathématiques · Seconde
Variables et types (int, float, str, bool), affectation, opérateurs, tests if/elif/else et boucles for/while pour faire calculer la machine.
Ce que tu vas savoir faire
- ✓Manipuler des variables et reconnaître les types int, float, str et bool.
- ✓Utiliser les opérateurs arithmétiques et de comparaison.
- ✓Écrire une instruction conditionnelle if / elif / else.
- ✓Écrire une boucle for et une boucle while.
- ✓Prévoir ce qu'affiche ou renvoie un programme simple.
Variables, affectation et types
Une variable est un nom qui désigne une valeur stockée en mémoire. On l'affecte avec le signe = :
age = 15 # un entier (int)
taille = 1.72 # un nombre à virgule (float)
nom = "Léa" # une chaîne de caractères (str)
majeur = False # un booléen (bool) : True ou FalseEn Python le point décimal s'écrit avec un point (1.72), jamais avec une virgule. La fonction type(x) donne le type de x.
Pour lire une affectation :
- On calcule d'abord la valeur à droite du
=. - On la range dans la variable nommée à gauche.
a = a + 1n'est pas une équation : on prend l'ancienne valeur dea, on lui ajoute1, et on remet le résultat dansa.
x = 5
x = x + 3
print(x) # affiche 8Après x = 5, la variable vaut . La ligne x = x + 3 calcule et range dans x.
Ne confonds pas = (affecter) et == (tester l'égalité). x = 3 range dans x ; x == 3 répond True ou False.
Opérateurs arithmétiques
Les opérateurs de calcul :
| Opérateur | Rôle | Exemple | Résultat |
|---|---|---|---|
+ - * | addition, soustraction, produit | 2 * 3 | 6 |
/ | division (donne un float) | 7 / 2 | 3.5 |
// | quotient entier (division euclidienne) | 7 // 2 | 3 |
% | reste de la division entière (modulo) | 7 % 2 | 1 |
** | puissance | 2 ** 3 | 8 |
⭐ Pour les curieux — pourquoi ça marche ? Pourquoi n % 10 donne-t-il le dernier chiffre d'un entier ? Parce qu'écrire un nombre en base , c'est exactement le découper en paquets de dix. Par exemple : on a fait paquets de dix (ce qui donne ), et il reste , qui est précisément le chiffre des unités. Or le reste de la division par , c'est justement « ce qui dépasse après avoir formé tous les paquets de dix possibles » : voilà pourquoi isole le dernier chiffre, tandis que ne garde que le nombre de paquets, , c'est-à-dire le nombre privé de son dernier chiffre. Même idée pour le test « pair » : un nombre pair se range parfaitement en paires (paquets de ) sans rien qui dépasse, donc son reste par vaut .
Pour savoir si un entier n est pair, on regarde le reste de sa division par : n % 2 == 0 signifie « n est pair ». Le % est aussi utile pour récupérer le dernier chiffre d'un nombre : n % 10.
print(17 // 5) # 3 (17 = 5*3 + 2)
print(17 % 5) # 2 (le reste)
print(2 ** 10) # 1024Attention : / renvoie toujours un float. 10 / 2 vaut 5.0 (et non 5). Pour un quotient entier, utilise //.
Comparaisons et booléens
Une comparaison renvoie un booléen True ou False :
| Opérateur | Sens |
|---|---|
== | égal à |
!= | différent de |
< > | strictement inférieur / supérieur |
<= >= | inférieur ou égal / supérieur ou égal |
On combine plusieurs tests avec and (et), or (ou) et not (non).
Pour traduire « x est compris entre 0 et 10 » on écrit 0 <= x and x <= 10, ou plus court en Python : 0 <= x <= 10.
print(3 == 3) # True
print(5 != 5) # False
print(2 < 4 and 4 < 1) # False (le 2e test est faux)== compare, = affecte. Une erreur très fréquente !
Les instructions conditionnelles (if / elif / else)
Une condition permet d'exécuter un bloc seulement si un test est vrai :
note = 12
if note >= 10:
print("Reçu")
else:
print("Recalé")On peut tester plusieurs cas à la suite avec elif (sinon si).
- Le bloc d'un
ifest indenté (décalé de 4 espaces). - Python lit les tests dans l'ordre et s'arrête au premier vrai.
- Le
else(facultatif) attrape tous les cas restants.
x = 0
if x > 0:
print("positif")
elif x < 0:
print("négatif")
else:
print("nul")
# affiche : nulN'oublie jamais les deux-points : en fin de ligne if, et indente le bloc en dessous, sinon Python refuse le programme.
La boucle for
La boucle for répète un bloc pour chaque valeur d'une séquence. Avec range, on parcourt des entiers :
for i in range(4):
print(i)
# affiche 0, puis 1, puis 2, puis 3range(n) va de 0 à n-1 (donc n valeurs). range(a, b) va de a à b-1.
⭐ Pour les curieux — pourquoi ça marche ? Pourquoi range(n) contient-il exactement valeurs alors qu'il s'arrête à ? Parce qu'on compte à partir de et non de . Aligne les nombres : devant chaque entier , il y a exactement entiers (). Donc le tout dernier, , est précédé de camarades : cela fait bien valeurs avant lui, puis lui-même, soit valeurs en tout. Le piège du « » disparaît dès qu'on retient que démarrer à décale toute la liste d'un cran vers le bas, sans en changer la longueur.
Pour répéter quelque chose n fois, on écrit for i in range(n):. La variable i prend successivement .
somme = 0
for i in range(1, 5): # i = 1, 2, 3, 4
somme = somme + i
print(somme) # 10 (1+2+3+4)range(4) ne contient pas le 4 : ce sont . La borne de droite est toujours exclue.
La boucle while
La boucle while répète un bloc **tant qu'**une condition reste vraie :
n = 1
while n <= 3:
print(n)
n = n + 1
# affiche 1, 2, 3On l'utilise quand on ne sait pas à l'avance combien de tours il faudra (contrairement au for).
Dans un while, il faut faire évoluer la condition à l'intérieur de la boucle (ici n = n + 1), sinon elle ne s'arrête jamais : c'est une boucle infinie.
n = 20
compte = 0
while n > 1:
n = n // 2
compte = compte + 1
print(compte) # 4 : 20→10→5→2→1 (4 divisions)Oublier de modifier la variable testée crée une boucle infinie. Vérifie toujours que la condition finira par devenir fausse.
Tu as lu le cours ? Passe à la pratique.
Un coach IA te guide sans jamais donner la réponse, avec des exercices et des quiz sur ce chapitre. Version d'essai gratuite, sans limite de durée.
S'entraîner avec le coach IA — gratuit