Leçon 19 / 20

Calculer les totaux par catégorie

25 min Python — bases du langage Gratuit

Objectif : Produire un total général et un total distinct pour chaque catégorie saisie.

Quand vous ajoutez plusieurs dépenses, le total général ne suffit pas toujours : vous avez aussi besoin de savoir quelle part correspond à chaque catégorie. Cette leçon complète le script pour calculer ces montants à partir des dépenses déjà enregistrées, sans compter manuellement les lignes.

À la fin du traitement, le programme affichera un total général et un sous-total pour chaque catégorie rencontrée. Vous allez créer une fonction dédiée à ce calcul, puis l’appeler depuis le point d’entrée du script. La saisie et la validation de la dépense restent assurées par saisir_depense(), comme dans la leçon précédente.

Regrouper les montants par catégorie

La liste depenses contient des dictionnaires ; chaque dictionnaire associe notamment un montant à une catégorie. Pour obtenir un sous-total, vous parcourez cette liste et ajoutez chaque montant à la catégorie correspondante. Un dictionnaire de résultats permet de conserver, sous chaque nom de catégorie, le montant cumulé jusqu’ici.

Au premier passage pour une catégorie, aucune somme n’y est encore enregistrée. Le programme initialise donc son sous-total à zéro, puis lui ajoute le montant de la dépense. Si la catégorie existe déjà dans le dictionnaire, il ajoute simplement le nouveau montant à la somme précédente. Le calcul du total général suit la même logique d’accumulation, mais sans distinguer les catégories.

Fonction de calcul des totauxTexte
def calculer_totaux_par_categorie(liste_depenses):
    totaux_categories = {}
    total_general = 0.0
    for depense in liste_depenses:
        categorie = depense["categorie"]
        montant = depense["montant"]
        total_general += montant
        if categorie not in totaux_categories:
            totaux_categories[categorie] = 0.0
        totaux_categories[categorie] += montant
    return total_general, totaux_categories

La fonction renvoie deux résultats : le montant de toutes les dépenses et le dictionnaire des sous-totaux. L’instruction return transmet ces résultats à l’appelant ; vous pouvez ensuite les enregistrer dans deux variables distinctes. Le calcul est séparé de l’affichage, ce qui permet de vérifier les montants ou de les réutiliser dans une autre partie du script.

Intégrer le calcul au script

Dans suivi_depenses.py, conservez les trois dépenses initiales et les fonctions déjà présentes, notamment saisir_depense() et afficher_depenses(). Ajoutez calculer_totaux_par_categorie() au fichier, puis appelez-la après l’ajout de la dépense saisie dans main(). L’extrait suivant montre la partie à intégrer à la fin de main() ; gardez le reste de votre fichier tel qu’il est afin de préserver vos données initiales et le comportement déjà construit.

Appel et affichage des résultats dans main()Texte
    total_general, totaux_categories = calculer_totaux_par_categorie(depenses)
    print(f"\nTotal général : {total_general:.2f} €")
    print("Totaux par catégorie :")
    for categorie, total in totaux_categories.items():
        print(f"- {categorie} : {total:.2f} €")
Résultat attendu
Total général : 44.30 €
Totaux par catégorie :
- Alimentation : 31.80 €
- Transport : 12.50 €

La sortie affichée est un exemple : vos montants dépendent des trois dépenses initiales et de la saisie effectuée. Les deux lignes de sous-total de cet exemple correspondent à des dépenses totalisant 31,80 € en alimentation et 12,50 € en transport ; leur somme doit être égale au total général de 44,30 €. Le format :.2f affiche toujours deux chiffres après la virgule, conformément à une présentation monétaire courante.

Vérifier les résultats

Lancez le script et saisissez une dépense appartenant à une catégorie déjà utilisée, puis recommencez avec une nouvelle catégorie. Dans le premier cas, le sous-total correspondant doit augmenter ; dans le second, une nouvelle ligne de catégorie doit apparaître. Vérifiez également le total général : il doit inclure chaque dépense valide une seule fois, y compris celle qui vient d’être saisie.

Un contrôle simple consiste à additionner les sous-totaux affichés et à comparer le résultat au total général. Si les montants ne concordent pas, vérifiez que chaque dépense possède les clés montant et categorie, que la dépense saisie n’est pas ajoutée deux fois et que le calcul porte sur la liste complète depenses. Les valeurs sont ici manipulées comme des float ; les limites de précision de ce type ont été présentées dans la leçon sur les nombres et les opérations.

À retenir

  • Parcourez chaque dépense pour calculer le total général et les sous-totaux.
  • Utilisez un dictionnaire pour associer chaque catégorie à son montant cumulé.
  • Renvoyez les résultats du calcul afin de pouvoir les afficher séparément.
  • Vérifiez que la somme des totaux par catégorie correspond au total général.

Dans la prochaine leçon, vous pourrez exporter ces dépenses et leurs totaux dans un récapitulatif contrôlable.

Envie d'aller plus loin ?

Les cours Enovatic sont gratuits et le resteront. Si vous cherchez un accompagnement encadré, nos formations professionnelles sont animées par les mêmes formateurs.