Associer les champs d’une dépense
Objectif : Représenter une dépense avec un montant, une catégorie et une description à l’aide d’un dictionnaire Python.
Une liste de montants vous permet de regrouper des valeurs, mais elle ne dit pas à quoi correspond chaque montant. Dès que vous voulez retrouver ensemble le prix, la catégorie et le motif d’un achat, vous avez besoin d’une structure qui associe chaque donnée à un nom précis.
Dans cette leçon, vous allez représenter une dépense avec un dictionnaire Python. Vous pourrez ainsi lire ou mettre à jour chaque champ sans vous demander à quelle position il se trouve.
Associer des noms à des valeurs
Un dict, ou dictionnaire, regroupe des données sous la forme de paires clé-valeur. La clé est un nom qui identifie une information ; la valeur est la donnée associée. Pour une dépense, vous pouvez choisir les clés "montant", "categorie" et "description".
Les accolades {} délimitent le dictionnaire. À l’intérieur, chaque clé est suivie de deux-points, puis de sa valeur ; une virgule sépare les paires. Les clés sont ici des chaînes de caractères entre guillemets. Les valeurs gardent leur type adapté : un montant est un nombre, tandis que la catégorie et la description sont des chaînes.
# Exemples conservés des leçons précédentes
montant = 12.50
montant_repas = 18.75
montant_courses = 32.40
montants = [montant, montant_repas, montant_courses]
montants.append(4.25)
# Une dépense rassemble des informations nommées
depense = {
"montant": montant_repas,
"categorie": "Repas",
"description": "Déjeuner"
}
# Une clé permet de lire la valeur associée
print(f"Montant de la dépense : {depense['montant']:.2f} €")
print(f"Catégorie : {depense['categorie']}")
print(f"Description : {depense['description']}")
# La valeur associée à une clé peut être mise à jour
depense["description"] = "Déjeuner avec un collègue"
print(f"Description mise à jour : {depense['description']}")
# La liste de montants reste disponible
print(f"Premier montant de la liste : {montants[0]:.2f} €")
print(f"Nombre de montants : {len(montants)}")Montant de la dépense : 18.75 €
Catégorie : Repas
Description : Déjeuner
Description mise à jour : Déjeuner avec un collègue
Premier montant de la liste : 12.50 €
Nombre de montants : 4Lire et modifier un champ
Pour accéder à une valeur, écrivez le nom du dictionnaire, puis la clé entre crochets : depense["categorie"]. Cette expression fournit la chaîne "Repas", que vous pouvez afficher ou utiliser dans une autre expression. Les crochets contiennent la clé, et non une position numérique comme dans la liste de la leçon précédente.
La ligne depense["description"] = "Déjeuner avec un collègue" modifie la valeur associée à la clé "description". La clé reste la même ; seule sa valeur change. Le résultat affiché ensuite confirme que le dictionnaire contient maintenant la description mise à jour.
Dictionnaire ou liste ?
La liste montants contient des valeurs du même type et convient à l’exemple où vous souhaitez seulement regrouper des montants. Le dictionnaire depense rassemble des informations de natures différentes qui décrivent un seul achat. Les deux structures répondent donc à des besoins différents ; le dictionnaire ne remplace pas la liste d’historique que vous avez déjà créée.
Dans la suite du projet, les champs nommés faciliteront la lecture de chaque dépense et le calcul des montants par catégorie. Pour l’instant, le script construit un seul dictionnaire et affiche ses champs explicitement. Le parcours de plusieurs dépenses sera abordé dans une leçon ultérieure.
À retenir
- Un dictionnaire associe des clés nommées à des valeurs.
- Les accolades contiennent les paires clé-valeur, séparées par des virgules.
- Vous lisez un champ avec la syntaxe dictionnaire[clé].
- Vous modifiez un champ en affectant une nouvelle valeur à sa clé.
- Une liste regroupe des éléments ; un dictionnaire décrit ici une dépense avec plusieurs champs.
Dans la prochaine leçon, vous comparerez des valeurs pour pouvoir distinguer et contrôler les données de votre suivi.