Construire et transformer des chaînes
Objectif : Construire une chaîne lisible à partir des informations d’une dépense et afficher son montant avec deux chiffres après la virgule.
Un récapitulatif doit être facile à lire : une catégorie seule ou un montant affiché sans contexte ne suffit pas à identifier une dépense. Vous allez construire une phrase qui rassemble une description, une catégorie et un montant, puis l’afficher sous la forme d’une ligne claire.
Vous avez déjà enregistré des nombres dans `montant` et `montant_repas` ; cette leçon ajoute des chaînes de caractères, représentées par le type str. Une chaîne sert notamment à stocker du texte comme une catégorie ou une description. En Python, vous l’écrivez entre guillemets simples ou doubles, mais vous devez refermer la chaîne avec le même type de guillemet que celui utilisé pour l’ouvrir.
Choisir les guillemets et représenter des caractères
Les guillemets doubles sont pratiques si votre texte contient une apostrophe, comme dans "Repas d’équipe". Avec des guillemets simples, vous pouvez aussi représenter cette apostrophe en la faisant précéder d’une barre oblique inversée : 'Repas d\'équipe'. Cette barre oblique inversée introduit une séquence d’échappement : elle indique à Python que l’apostrophe fait partie du texte et ne termine pas la chaîne.
Certaines séquences représentent des caractères qui ne s’écrivent pas comme du texte ordinaire. Par exemple, \n insère un retour à la ligne dans le contenu affiché. Pour ce projet, gardez une dépense sur une seule ligne et réservez ce caractère aux messages que vous souhaitez réellement répartir sur plusieurs lignes.
Mettre en forme une dépense avec une f-string
Pour insérer des valeurs dans une chaîne, utilisez une f-string : placez la lettre f juste avant le guillemet ouvrant, puis écrivez chaque variable entre accolades. Python remplace les accolades par la valeur correspondante lors de l’affichage. Vous pouvez ainsi assembler le texte et le montant sans multiplier les opérations séparées.
La notation {montant_repas:.2f} demande un affichage du nombre avec deux chiffres après le séparateur décimal. Le f final indique un format décimal ; le séparateur utilisé à l’écran dépend des règles de cette notation, et il reste ici un point. Vous pouvez ajouter le symbole euro dans le texte autour de la valeur. La chaîne affichée constitue ainsi une ligne prête à être reprise dans un récapitulatif.
Mettre à jour le script
Vous pouvez aussi nettoyer ou normaliser un texte avant de l’afficher. La méthode strip() enlève les espaces placés au début et à la fin d’une chaîne ; capitalize() met sa première lettre en majuscule et les suivantes en minuscules. Dans l’exemple, ces méthodes s’appliquent à la description et à la catégorie avant leur insertion dans la ligne.
# Suivi de dépenses : première version du script.
# Les montants sont exprimés en euros.
print("Suivi de dépenses")
print("Saisir, classer et récapituler ses dépenses.")
montant = 12
categorie = "Transport"
print(montant)
print(categorie)
montant_repas = 8.5
montant_courses = 23.75
total = montant_repas + montant_courses
print(total)
print(0.1 + 0.2)
description = " déjeuner d'équipe "
categorie_repas = "repas"
description_propre = description.strip().capitalize()
categorie_propre = categorie_repas.strip().capitalize()
ligne_depense = f"{description_propre} — {categorie_propre} : {montant_repas:.2f} €"
print(ligne_depense)Suivi de dépenses
Saisir, classer et récapituler ses dépenses.
12
Transport
32.25
0.30000000000000004
Déjeuner d'équipe — Repas : 8.50 €Enregistrez ce code dans suivi_depenses.py, puis exécutez le fichier comme dans la leçon sur la création et l’exécution d’un script. Vérifiez que les sorties déjà présentes sont conservées, puis observez la dernière ligne : les espaces inutiles autour de la description ont disparu et le montant apparaît avec deux chiffres décimaux. Le texte contient les informations dont un récapitulatif a besoin, sans modifier la valeur numérique utilisée dans le calcul précédent.
À retenir
- Une chaîne de type str contient du texte et s’écrit entre guillemets simples ou doubles.
- Les séquences d’échappement permettent de représenter certains caractères, comme le retour à la ligne avec \n.
- Une f-string insère des variables entre accolades et peut formater l’affichage d’un nombre.
- Les méthodes strip() et capitalize() aident à préparer une chaîne avant de l’afficher.
Dans la prochaine leçon, vous regrouperez plusieurs dépenses dans une liste afin de pouvoir les traiter ensemble.