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 + 1est absurde en maths, mais parfaitement logique en Python — « calculea + 1avec la valeur actuelle, puis range le résultat dansa». - 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 vautTrueouFalse. Si elle est vraie, le bloc indenté (décalé de 4 espaces) sousifs’exécute ; sinon, c’est le bloc souselse. - 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
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
defdéfinit la fonction, l’appelperimetre(5, 3)l’utilise.returnrenvoie le résultat au programme (et arrête la fonction) ;printne fait qu’afficher à l’écran. Pour réutiliser un résultat dans un calcul, il fautreturn.
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é : 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.