Parcourir toutes les dépenses
Objectif : Afficher chaque dépense d’une liste sans répéter les instructions.
Quand votre suivi contient plusieurs dépenses, écrire un affichage différent pour chacune rend le script répétitif et difficile à mettre à jour. Une boucle for vous permet de parcourir une liste et d’appliquer le même traitement à chacun de ses éléments.
Vous avez déjà représenté des dépenses avec des listes et des dictionnaires, et utilisé if, elif et else pour prendre une décision. Ici, vous allez réunir ces éléments : une liste de dépenses, un dictionnaire pour chaque dépense, puis un affichage répété sans dupliquer les instructions.
Parcourir une liste avec for
Une boucle for prend les éléments d’une collection l’un après l’autre. À chaque passage, une variable de boucle reçoit l’élément en cours ; vous écrivez ensuite le traitement à effectuer dans un bloc indenté. Lorsque la liste est parcourue, le script continue après ce bloc.
# Données utilisées dans le suivi de dépenses
montant = 18.50
categorie = "Transport"
seuil = 20.00
print("Suivi de dépenses")
print(f"Dépense enregistrée : {montant:.2f} € en {categorie}")
# Calculs et exemples sur les nombres
second_montant = 12.75
total_exemple = montant + second_montant
print(f"Total de l’exemple : {total_exemple:.2f} €")
# Exemple de liste de montants
montants = [montant, second_montant]
montants.append(7.20)
print(f"Nombre de montants : {len(montants)}")
print(f"Premier montant : {montants[0]:.2f} €")
# Une dépense structurée dans un dictionnaire
depense = {
"montant": montant,
"categorie": categorie,
"description": "Ticket de métro",
}
depense["description"] = "Ticket de métro aller"
print(f"Dépense modifiée : {depense['description']}")
# Comparaisons et classement d’une dépense
print(f"Montant supérieur au seuil : {montant > seuil}")
print(f"Catégorie Transport : {categorie == 'Transport'}")
if montant < 10:
niveau = "petite dépense"
elif montant <= 50:
niveau = "dépense modérée"
else:
niveau = "dépense importante"
print(f"Classement : {niveau}")
if montant > 0 and categorie != "":
print("La dépense possède un montant positif et une catégorie.")
if categorie == "Transport" or categorie == "Alimentation":
print("Cette catégorie est courante dans le suivi.")
# Liste complète à parcourir
liste_depenses = [
{
"montant": 18.50,
"categorie": "Transport",
"description": "Ticket de métro",
},
{
"montant": 32.00,
"categorie": "Alimentation",
"description": "Déjeuner",
},
{
"montant": 7.20,
"categorie": "Loisirs",
"description": "Entrée au musée",
},
]
print("Historique des dépenses :")
for depense_courante in liste_depenses:
print(
f"- {depense_courante['description']} : "
f"{depense_courante['montant']:.2f} € "
f"({depense_courante['categorie']})"
)Suivi de dépenses
Dépense enregistrée : 18.50 € en Transport
Total de l’exemple : 31.25 €
Nombre de montants : 3
Premier montant : 18.50 €
Dépense modifiée : Ticket de métro aller
Montant supérieur au seuil : False
Catégorie Transport : True
Classement : dépense modérée
La dépense possède un montant positif et une catégorie.
Cette catégorie est courante dans le suivi.
Historique des dépenses :
- Ticket de métro : 18.50 € (Transport)
- Déjeuner : 32.00 € (Alimentation)
- Entrée au musée : 7.20 € (Loisirs)La ligne for depense_courante in liste_depenses: signifie que le script prend successivement chaque dictionnaire de la liste et le place dans depense_courante. Le bloc indenté utilise ensuite ses clés pour composer une ligne lisible. La variable de boucle désigne uniquement l’élément traité pendant le passage courant : au passage suivant, elle désigne le dictionnaire suivant.
Adapter le parcours à vos données
Dans cet exemple, la liste contient trois dépenses, chacune décrite par un montant, une catégorie et une description. Le même print est exécuté trois fois ; vous pouvez ajouter une nouvelle dépense à la liste sans ajouter de nouvelles lignes d’affichage. La boucle ne modifie pas les dictionnaires : elle les lit pour produire l’historique.
Pour vérifier votre résultat, exécutez le fichier depuis le terminal, comme dans les premières leçons. Contrôlez que chaque dépense apparaît exactement une fois et que le montant, la description et la catégorie correspondent aux données de la liste. Si vous ajoutez un dictionnaire à liste_depenses, il doit apparaître automatiquement dans l’historique.
À retenir
- Une boucle
fortraite successivement les éléments d’une liste. - La variable de boucle représente l’élément en cours de traitement.
- Les instructions indentées sont répétées pour chaque élément.
- Une liste de dictionnaires permet d’afficher les champs de chaque dépense avec le même code.
Dans la prochaine leçon, vous utiliserez une boucle while pour répéter une saisie jusqu’à ce qu’une condition d’arrêt soit remplie.