Python Tutorials

Calculer des Moyennes Efficacement en Python

Spread the love

Le calcul de la moyenne (ou valeur moyenne) d’une liste de nombres est une tâche fondamentale en programmation. Python offre plusieurs approches, chacune ayant ses forces et ses faiblesses. Cet article explore trois méthodes courantes, en soulignant leur efficacité et leurs pièges potentiels.

Table des matières

Utilisation du module statistics

La méthode la plus robuste et la plus recommandée utilise le module statistics intégré de Python (disponible depuis Python 3.4). Ce module fournit la fonction mean(), spécialement conçue pour calculer la moyenne. Elle est efficace, gère différents types de données avec élégance et est généralement préférée pour sa lisibilité et sa fiabilité.


import statistics

nombres = [10, 20, 30, 40, 50]
moyenne = statistics.mean(nombres)
print(f"La moyenne est : {moyenne}")  # Sortie : La moyenne est : 30

Ce court extrait de code calcule et affiche la moyenne. Le module statistics offre également d’autres fonctions statistiques utiles telles que median() et stdev().

Méthodes sum() et len()

Une approche plus fondamentale utilise les fonctions intégrées sum() et len(). Il s’agit d’une méthode concise, facilement compréhensible pour son application directe de la formule de la moyenne.


nombres = [10, 20, 30, 40, 50]
moyenne = sum(nombres) / len(nombres)
print(f"La moyenne est : {moyenne}")  # Sortie : La moyenne est : 30.0

En Python 3, l’opérateur de division (/) effectue toujours une division à virgule flottante, garantissant des résultats précis. Cependant, soyez attentif aux problèmes potentiels dans les anciennes versions de Python (décrits ci-dessous).

Gestion de la division entière en Python 2 (et une note sur Python 3)

Le comportement de Python 2 avec la division entière peut conduire à des moyennes imprécises si elle n’est pas gérée avec soin. Lorsque les deux opérandes de l’opérateur de division sont des entiers, Python 2 effectue une division entière, tronquant la partie décimale. Pour éviter cela, convertissez explicitement la somme ou la longueur en nombre à virgule flottante avant la division.


nombres = [10, 20, 30, 40, 50]
moyenne = sum(nombres) / float(len(nombres))
print("La moyenne est : %s" % moyenne)  # Sortie : La moyenne est : 30.0

Cette conversion assure une division à virgule flottante, produisant la moyenne correcte. Ceci n’est pas nécessaire en Python 3, où l’opérateur / donne toujours un résultat à virgule flottante.

En résumé, bien que plusieurs approches existent, l’utilisation de la fonction statistics.mean() est la pratique la plus recommandée pour sa clarté, son efficacité et sa gestion robuste des erreurs. La compréhension de la méthode sum()/len() fournit un aperçu du calcul sous-jacent, mais la connaissance des pièges potentiels, en particulier en Python 2, reste cruciale.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *