Article publié le jeudi 24 septembre 2026 dans la catégorie culture.
Calculer une moyenne en Python consiste à additionner des valeurs numériques puis à diviser leur somme par le nombre de valeurs. Cette opération, très courante pour des notes, mesures, prix ou résultats de capteurs, peut être réalisée manuellement, avec les fonctions natives de Python ou avec le module standard
statistics. Le bon choix dépend surtout de la lisibilité recherchée, de la nécessité de gérer des erreurs et de l’existence éventuelle de coefficients.
Comprendre le principe d’une moyenne arithmétique
La formule : somme des valeurs divisée par leur nombre
La moyenne arithmétique se calcule selon la formule suivante : somme des valeurs / nombre de valeurs. Pour la liste 12, 15 et 18, le calcul est donc (12 + 15 + 18) / 3, soit 15.
En Python, une liste permet de stocker ces données :
notes = [12, 15, 18]
La moyenne attendue est un nombre décimal. Même si la division tombe juste, l’opérateur / renvoie généralement un objet de type
float :
moyenne = (12 + 15 + 18) / 3
Cette règle convient lorsque chaque valeur a la même importance. Pour approfondir le calcul à partir de résultats scolaires ou de plusieurs évaluations, consultez ce
guide pour calculer une moyenne à partir de plusieurs notes.
Les précautions à prendre avec les données numériques et les listes vides
Avant de lancer le calcul, il faut vérifier que la liste contient des nombres. Une chaîne de caractères, une valeur absente ou un mélange de types peut provoquer une erreur avec l’addition. Par exemple, [10, "14", 16] ne peut pas être additionnée directement : il faut d’abord convertir "14" avec float() ou int(), si la donnée est valide.
Une liste vide pose un autre problème : sa longueur vaut zéro. Diviser par zéro déclenche une exception
ZeroDivisionError. Il est donc prudent de contrôler son contenu :
- utiliser une liste non vide ;
- ne conserver que des valeurs numériques comparables ;
- convertir explicitement les données issues d’un formulaire ou d’un fichier ;
- définir le comportement attendu si aucune valeur n’est disponible.
Pour des données monétaires, les flottants peuvent aussi produire de très légers écarts d’arrondi. Dans ce cas, le module decimal peut être préférable, notamment si l’exactitude au centime est indispensable.
Calculer une moyenne avec une boucle Python
Additionner les éléments puis diviser par len()
La boucle est la méthode la plus pédagogique. Elle rend visibles les deux étapes : cumuler les valeurs, puis diviser le total par le nombre d’éléments.
notes = [11, 14, 17, 18]
total = 0
for note in notes:
total += note
moyenne = total / len(notes)
La variable total commence à zéro et reçoit chaque note successivement. À la fin, len(notes) renvoie 4. Cette approche est utile si le programme doit filtrer certaines valeurs au passage, par exemple ignorer des notes absentes ou exclure une mesure invalide.
Son principal défaut est d’être plus longue que nécessaire pour une simple moyenne. Elle reste pertinente lorsque le calcul s’inscrit dans un traitement plus large : lecture d’un fichier, contrôle d’un seuil ou affichage de résultats intermédiaires.
Encapsuler le calcul dans une fonction réutilisable
Une fonction évite de répéter la même logique dans plusieurs parties d’un programme. Elle rend aussi le comportement face à une liste vide explicite :
def calculer_moyenne(valeurs):
if not valeurs:
return None
total = 0
for valeur in valeurs:
total += valeur
return total / len(valeurs)
Le retour de None signale ici qu’aucune moyenne ne peut être produite. Selon le contexte, on peut plutôt lever une exception avec raise ValueError.
Le choix doit être cohérent avec le reste de l’application : une interface peut afficher un message, tandis qu’un script de contrôle peut devoir s’arrêter sur une donnée manquante.
Utiliser les fonctions intégrées et le module statistics
La méthode concise avec sum() et len()
Pour une liste numérique classique, la solution la plus courante est concise et lisible :
valeurs = [8, 12, 15, 19]
moyenne = sum(valeurs) / len(valeurs)
sum() calcule le total et len() compte les éléments. Cette écriture est généralement à privilégier dans un script simple : elle exprime directement la formule mathématique sans boucle explicite.
Elle ne protège toutefois pas contre une liste vide. Une version sûre peut vérifier la condition avant le calcul :
moyenne = sum(valeurs) / len(valeurs) if valeurs else None
Le résultat peut ensuite être arrondi pour l’affichage avec round(moyenne, 2). Il faut distinguer cet arrondi visuel du calcul lui-même :
arrondir trop tôt peut modifier un résultat final.
statistics.mean() pour un code plus explicite
Le module standard statistics fournit une fonction conçue pour cette tâche :
from statistics import mean
moyenne = mean([8, 12, 15, 19])
Cette solution améliore la lisibilité lorsque le projet manipule plusieurs indicateurs statistiques. Elle lève une exception StatisticsError si la séquence est vide, ce qui peut être utile pour repérer rapidement un jeu de données incomplet.
| Méthode | Usage recommandé | Point d’attention |
| Boucle for | Traitement ou filtrage personnalisé | Plus de code à maintenir |
| sum() / len() | Calcul simple sur une liste validée | Vérifier la liste vide |
| statistics.mean() | Code orienté statistiques | Gérer StatisticsError |
Gérer les erreurs liées aux listes vides et aux valeurs non numériques
Les données externes demandent davantage de contrôles. Une valeur saisie au clavier arrive souvent sous forme de texte ; il faut la convertir avant de l’ajouter à la liste. Si une conversion échoue, le programme peut ignorer la saisie, demander une correction ou signaler une erreur.
Il est préférable de ne pas masquer toutes les exceptions avec un bloc try/except trop large. Cibler ValueError lors d’une conversion ou StatisticsError lors d’un calcul permet de comprendre l’origine du problème. Pour une moyenne générale exprimée sur 20, les mêmes principes de vérification s’appliquent ; ce
mode de calcul d’une moyenne générale sur 20 aide à clarifier les données à intégrer.
Calculer une moyenne pondérée
Associer chaque valeur à un coefficient
Une moyenne pondérée donne une importance différente à chaque valeur. La formule devient : somme des valeurs multipliées par leur coefficient / somme des coefficients. Avec 12 de coefficient 2 et 16 de coefficient 3, la moyenne est (12 × 2 + 16 × 3) / (2 + 3), soit 14,4.
Il ne faut jamais diviser par le nombre de notes dans une moyenne pondérée, sauf si tous les coefficients sont égaux. Les coefficients doivent aussi être cohérents et leur somme ne doit pas être nulle. Pour le raisonnement détaillé, voir ce
guide des moyennes avec coefficients différents.
Utiliser zip() pour parcourir notes et poids
zip() permet de parcourir deux listes en parallèle :
notes = [12, 16]
coefficients = [2, 3]
total_pondere = sum(note * coefficient for note, coefficient in zip(notes, coefficients))
moyenne = total_pondere / sum(coefficients)
Avant ce calcul, vérifiez que les deux listes ont la même longueur. Sinon, zip() s’arrête à la liste la plus courte et certaines données seraient ignorées silencieusement.
Choisir la méthode adaptée et éviter les erreurs fréquentes
Comparer lisibilité, contrôle et simplicité des différentes approches
Pour un calcul ponctuel, sum() / len() est souvent la meilleure option. Utilisez une boucle lorsque chaque valeur doit être examinée ou transformée. Choisissez statistics.mean() si le programme utilise aussi médiane, écart-type ou autres fonctions statistiques.
Une calculatrice peut suffire pour vérifier rapidement un résultat avant de coder ; cet
outil de calcul de moyenne en ligne présente une alternative pratique pour des données simples.
Ne pas confondre moyenne, médiane et moyenne pondérée
La moyenne est sensible aux valeurs extrêmes : une seule mesure anormalement haute ou basse peut la déplacer fortement. La médiane représente la valeur centrale après tri et décrit parfois mieux une série déséquilibrée. Enfin, une moyenne pondérée tient compte des coefficients, contrairement à la moyenne arithmétique.
Le calcul correct dépend donc d’abord de la question posée.
Choisir le bon indicateur est aussi important que choisir la bonne instruction Python.
Retenir la méthode adaptée pour calculer une moyenne
Python permet de calculer une moyenne de façon simple dès lors que les données sont fiables et que la formule correspond au besoin. Pour une liste classique,
sum() et len() offrent une solution concise ; une boucle reste utile lorsque les valeurs doivent être contrôlées ou transformées. Le module
statistics apporte quant à lui une écriture explicite dans un contexte plus statistique.
L’essentiel est de traiter les cas particuliers : liste vide, valeurs non numériques, arrondis et cohérence des données. Lorsqu’il existe des coefficients, la moyenne doit être pondérée et divisée par leur somme, non par le nombre de notes. Avant de coder, identifiez donc si vous recherchez une moyenne simple, pondérée ou un autre indicateur comme la médiane, puis choisissez l’approche la plus lisible.