Parcourir une liste pour calculer une somme, une moyenne ou un extremum
Créez un compte gratuit pour suivre votre avancement et reprendre où vous avez laissé.
Créer un compteMéthode — Schéma d'accumulation
Pour analyser les éléments d'une liste existante, on utilise un parcours direct for element in liste en accumulant le résultat dans une variable.
Initialiser la variable d'accumulation avant la boucle, avec une valeur adaptée :
- somme : S = 0
- produit : P = 1
- minimum / maximum : la première valeur de la liste, soit liste[0]
- Parcourir la liste avec for element in liste.
- Mettre à jour la variable à chaque tour en fonction du calcul visé (addition, comparaison...).
- Après la boucle, la variable contient le résultat final.
Somme et moyenne des éléments d'une liste
On a la liste des notes d'un élève : notes = [12, 14, 9, 16, 13]. On veut calculer la somme puis la moyenne.
Étape 1 : On initialise la somme à $0$ avant la boucle :
notes = [12, 14, 9, 16, 13]
S = 0
Étape 2 : On parcourt directement la liste avec for note in notes (la position n'importe pas ici).
Étape 3 : À chaque tour, on ajoute la note courante à la somme :
for note in notes :
S = S + note
Étape 4 : Après la boucle, S vaut $12 + 14 + 9 + 16 + 13 = 64$. Pour la moyenne, on divise par len(notes) :
moyenne = S / len(notes)
print(S, moyenne) # affiche 64 12.8
Soit une moyenne de $12{,}8$.
Maximum d'une liste (sans utiliser max)
On veut trouver la plus grande valeur de temperatures = [18.5, 22.1, 19.8, 25.3, 21.0, 17.6] à la main, sans utiliser la fonction intégrée max.
Étape 1 : On initialise maxi avec la première valeur de la liste :
temperatures = [18.5, 22.1, 19.8, 25.3, 21.0, 17.6]
maxi = temperatures[0]
Étape 2 : On parcourt la liste avec for t in temperatures.
Étape 3 : À chaque tour, si la valeur courante dépasse maxi, on met à jour :
for t in temperatures :
if t > maxi :
maxi = t
print(maxi) # affiche 25.3
Étape 4 : Après la boucle, maxi contient la plus grande valeur rencontrée, soit $25{,}3$.
Pour le minimum, on remplace maxi par mini et le test t > maxi par t < mini.
Remarque
Pour ces trois calculs (somme, moyenne, min/max), Python propose aussi les fonctions intégrées sum(liste), min(liste) et max(liste), plus concises. La méthode détaillée ici reste utile pour comprendre le mécanisme et pour l'adapter à d'autres situations (compter, filtrer, repérer une position...).
Attention
Deux erreurs fréquentes :
- Initialiser le maximum à $0$ (ou le minimum à un grand nombre) : si toutes les valeurs de la liste sont négatives, la boucle ne met jamais à jour maxi et le résultat final reste $0$, qui n'est pourtant pas dans la liste. Il faut toujours initialiser avec liste[0].
- Oublier de convertir en flottant pour la moyenne : en Python 3 la division / produit bien un flottant, mais attention à ne pas utiliser // (division entière) qui tronquerait la partie décimale.