Python à l'attaque d'un problème mathématique
Imagine que ton prof te demande : « Calcule la somme de tous les nombres de 1 à 1000. » À la main, c'est long et tu risques de te tromper. Avec une calculatrice, c'est fastidieux. Mais avec quelques lignes de Python, la réponse tombe en une fraction de seconde. C'est exactement ça, la puissance de la programmation : transformer un problème mathématique en un algorithme que la machine exécute pour toi.
Dans ce cours, tu vas apprendre à assembler les quatre briques essentielles : les conditions, les boucles, les fonctions et les listes.
1. Les conditions : choisir selon la situation
Une condition (if, elif, else) permet à ton programme de prendre des décisions.
n = 7
if n % 2 == 0:
print("pair")
else:
print("impair")
Ici n % 2 donne le reste de la division par 2. S'il vaut 0, le nombre est pair. Attention à l'indentation (les espaces au début) : c'est elle qui indique ce qui est « dans » le if.
2. Les boucles : répéter sans se fatiguer
La boucle for répète une action un nombre connu de fois.
somme = 0
for i in range(1, 1001): # i va de 1 à 1000
somme = somme + i
print(somme) # affiche 500500
range(1, 1001) produit les entiers de 1 à 1000 (la borne de droite est exclue !). À chaque tour, on ajoute i à la variable somme.
La boucle while répète tant qu'une condition est vraie :
x = 100
etapes = 0
while x > 1:
x = x / 2
etapes = etapes + 1
print(etapes) # combien de fois diviser 100 par 2 avant d'atteindre 1
3. Les fonctions : ranger son code dans une boîte
Une fonction est un mini-programme réutilisable. On la définit avec def et on renvoie un résultat avec return.
def est_premier(n):
if n < 2:
return False
for d in range(2, n):
if n % d == 0:
return False
return True
print(est_premier(13)) # True
print(est_premier(15)) # False
Cette fonction teste si n est un nombre premier : elle cherche un diviseur d. Si elle en trouve un, elle renvoie False immédiatement.
4. Les listes : stocker plusieurs valeurs
Une liste contient une suite de valeurs, accessibles par leur indice (qui commence à 0).
notes = [12, 15, 9, 18]
print(notes[0]) # 12
print(len(notes)) # 4
moyenne = sum(notes) / len(notes)
print(moyenne) # 13.5
On peut aussi construire une liste avec une boucle :
carres = []
for i in range(1, 6):
carres.append(i * i)
print(carres) # [1, 4, 9, 16, 25]
À retenir
- Une condition (
if/else) fait choisir ;%donne le reste, très utile pour tester pair/impair ou divisibilité. - Une boucle répète :
forquand on connaît le nombre de tours,whiletant qu'une condition tient. range(a, b)va deaàb-1: la borne de droite est exclue.- Une fonction (
def ... return) range un calcul réutilisable ;returnrenvoie le résultat. - Une liste stocke plusieurs valeurs ; indices à partir de 0,
len,sum,appendsont tes alliés.
Corrections
Exercice 1.
def cube(x):
return x ** 3
** est l'opérateur puissance : x ** 3 = x×x×x. On utilise return pour renvoyer la valeur.
Exercice 2.
somme = 0
for i in range(1, 21):
if i % 2 == 0:
somme = somme + i
print(somme) # 110
On parcourt 1 à 20, et la condition i % 2 == 0 ne garde que les pairs. Total : 2+4+…+20 = 110.
Exercice 3.
temps = [18, 22, 19, 25, 21]
maxi = temps[0]
for t in temps:
if t > maxi:
maxi = t
print(maxi) # 25
On part de la première valeur, puis on remplace maxi chaque fois qu'on trouve plus grand.