Skip to main content

Welcome to a Grasp lesson

Create a free account to keep studying and create your own study path.

Lesson 24

Formatted String Output with f-strings

Recommended resources

Bonjour ! Dans la leçon précédente sur les fonctions, vous avez appris à organiser votre code en blocs réutilisables. Vous avez peut-être remarqué que dans certains exemples et exercices, nous avons utilisé une syntaxe comme print(f"...") pour afficher des variables à l'intérieur de chaînes de caractères. C'était un avant-goût du sujet d'aujourd'hui.

Cette leçon est la dernière de notre module sur les fondamentaux de la programmation en Python. Elle est consacrée à une fonctionnalité extrêmement utile et moderne : l'utilisation des f-strings pour le formatage de chaînes de caractères. Vous apprendrez à créer des messages clairs et dynamiques, ce qui est essentiel pour afficher des résultats, créer des rapports, ou déboguer votre code. Dans votre parcours en machine learning, vous utiliserez constamment les f-strings pour afficher la précision d'un modèle, suivre la progression d'un entraînement, ou inspecter des données.

1. Qu'est-ce qu'une f-string ?

Une "f-string", ou chaîne de caractères formatée, est une manière concise et lisible d'intégrer des expressions Python à l'intérieur d'une chaîne de caractères. On la crée simplement en plaçant la lettre f ou F juste avant le guillemet d'ouverture.

Avant les f-strings (introduites en Python 3.6), les programmeurs utilisaient principalement la concaténation avec + ou la méthode .format(). Les f-strings rendent ce processus beaucoup plus intuitif.

Python Quick Tip: F-Strings - How to Use Them and Advanced String Formatting

Cette vidéo de Corey Schafer, un tutoriel de référence dans la communauté Python, démontre parfaitement pourquoi les f-strings sont préférables.

Regardez le début de cette vidéo où il compare l'ancienne méthode .format() avec la nouvelle syntaxe des f-strings. Observez à quel point le code devient plus lisible. La section pertinente est la comparaison entre les deux approches.

Comme vous l'avez vu, au lieu d'avoir des placeholders vides {} et une liste de variables à la fin, les f-strings vous permettent de placer les variables directement là où elles doivent apparaître.

nom = "Ahmed"
age = 30




# Ancienne méthode : .format()
print("Je m'appelle {} et j'ai {} ans.".format(nom, age))




# Nouvelle méthode : f-string
print(f"Je m'appelle {nom} et j'ai {age} ans.")

Les deux lignes produisent le même résultat, mais la version avec f-string est plus facile à lire et à écrire.


2. Intégrer des expressions complexes

La véritable puissance des f-strings réside dans leur capacité à évaluer presque n'importe quelle expression Python valide à l'intérieur des accolades {}. Cela va bien au-delà de la simple insertion de variables.

Python f-String Tutorial – String Formatting in Python Explained with ...

Cet article de freeCodeCamp détaille les différentes possibilités. Il vous montrera comment intégrer non seulement des variables, mais aussi des calculs et même des appels de fonctions.

Lisez les quatre courtes sections suivantes pour découvrir ce que vous pouvez placer à l'intérieur des accolades : Imprimer des variables Évaluer des expressions (par exemple des calculs mathématiques) Appeler des méthodes (comme .upper() sur une chaîne de caractères) Appeler des fonctions (la valeur retournée par la fonction sera insérée)

Voici quelques exemples qui résument ces possibilités :

import math

def calculer_tva(montant_ht):
    return montant_ht * 0.2

prix_ht = 50




# Calculs arithmétiques
print(f"Prix TTC : {prix_ht * 1.2} euros.")




# Appels de méthodes
langage = "python"
print(f"J'apprends le {langage.capitalize()}.")




# Appels de fonctions (y compris celles que vous écrivez)
print(f"La TVA pour {prix_ht} euros est de {calculer_tva(prix_ht)} euros.")




# Utilisation de modules
print(f"La valeur de pi est {math.pi}.")

Un point d'attention : les guillemets

Lorsque vous accédez à des éléments de dictionnaire, vous devez faire attention aux guillemets que vous utilisez. Si votre f-string est définie avec des guillemets simples ('...'), utilisez des guillemets doubles ("...") pour les clés du dictionnaire, et vice-versa.

Python Quick Tip: F-Strings - How to Use Them and Advanced String Formatting

La vidéo de Corey Schafer explique très bien ce point crucial.

Regardez ce segment sur l'utilisation des dictionnaires. Notez bien le problème qui survient si vous utilisez les mêmes guillemets pour définir la f-string et pour accéder aux clés du dictionnaire, et comment le résoudre.

personne = {'nom': 'Fatima', 'age': 25}




# Correct : guillemets doubles à l'extérieur, simples à l'intérieur
print(f"L'utilisatrice {personne['nom']} a {personne['age']} ans.")




# Incorrect : provoque une erreur de syntaxe
# print(f'L'utilisatrice {personne['nom']} a {personne['age']} ans.')

3. Formatage de précision

Les f-strings ne servent pas seulement à insérer des valeurs, mais aussi à contrôler leur apparence. C'est particulièrement important en science des données pour présenter des nombres, des pourcentages et des tableaux de manière professionnelle.

La syntaxe générale est {valeur:specificateur_de_format}. Le spécificateur est introduit par un deux-points :.

Python f-string: A Complete Guide

Ce guide complet de DataCamp couvre en détail les options de formatage. C'est une compétence essentielle pour la présentation de résultats.

Lisez la section Formatting With f-Strings. Concentrez-vous sur deux domaines principaux : Le formatage des nombres : comment contrôler le nombre de décimales, ajouter des séparateurs de milliers et afficher des pourcentages. L'alignement et le remplissage : comment aligner le texte à gauche, à droite ou au centre, et définir une largeur fixe.

Voici un résumé visuel de certaines options de formatage pour les nombres :

Ce tableau montre comment utiliser les spécificateurs pour la précision (décimales), le regroupement (séparateur de milliers), la largeur et le remplissage avec des zéros.

Et pour l'alignement du texte :

Cette image montre l'utilisation des symboles `>`, `<`, et `^` pour aligner le texte à droite, à gauche ou au centre dans un espace défini.

Pour voir ces concepts expliqués de manière très visuelle et animée, la vidéo suivante est excellente.

Python F-strings - Visually Explained

Cette vidéo de "Visually Explained" décompose les options de formatage de manière très claire.

Regardez ces parties pour voir les concepts de l'article en action : Formatage des nombres à virgule pour contrôler les décimales. Ajout de séparateurs de milliers pour la lisibilité des grands nombres. Alignement et remplissage pour contrôler l'espacement et l'apparence.


4. Mise en pratique

Mettons tout cela en pratique. Imaginez que vous avez entraîné un modèle de classification et que vous souhaitez afficher un rapport de performance.

Exercice : Rapport de performance
Vous disposez des métriques de votre modèle dans un dictionnaire. Votre tâche est de créer un rapport formaté en utilisant une f-string multiligne (définie avec """...""").

Le rapport doit ressembler à ceci :

*** Rapport de Performance ***
Modèle            : Régression Logistique
Taille du dataset : 15,230 échantillons
--------------------------------
Précision         : 98.12%
Rappel            : 99.20%

Utilisez le dictionnaire suivant et les techniques de formatage que vous venez d'apprendre (alignement, séparateur de milliers, formatage en pourcentage avec 2 décimales).




# Dictionnaire de métriques
metrics = {
    'model_name': 'Régression Logistique',
    'accuracy': 0.9812345,
    'recall': 0.992,
    'dataset_size': 15230
}




# Votre code ici. Créez une variable 'report' avec une f-string multiligne.
report = f"""*** Rapport de Performance ***
Modèle            : {metrics['model_name']}
Taille du dataset : {metrics['dataset_size']:,} échantillons
--------------------------------
Précision         : {metrics['accuracy']:.2%}
Rappel            : {metrics['recall']:.2%}"""




# Affichez le rapport
print(report)

Une astuce pour le débogage

Depuis Python 3.8, les f-strings ont une fonctionnalité très pratique pour le débogage. En ajoutant un signe égal = après une variable, la f-string affichera à la fois le nom de la variable et sa valeur.

x = 10
y = 20




# Affiche 'x=10, y=20'
print(f'{x=}, {y=}')




# Peut aussi évaluer des expressions. Affiche 'x + y=30'
print(f'{x + y=}')

C'est un moyen rapide de vérifier la valeur des variables à différents points de votre code sans avoir à écrire print("x =", x).


Conclusion

Félicitations, vous avez terminé le module sur les fondamentaux de la programmation en Python ! Avec les f-strings, vous disposez maintenant d'un outil puissant pour communiquer clairement les résultats de vos programmes.

Points clés à retenir :

  • Les f-strings commencent par un f et permettent d'intégrer des expressions Python directement dans des chaînes de caractères avec {}.
  • Vous pouvez y placer des variables, des calculs, des appels de fonctions et de méthodes.
  • Le deux-points : à l'intérieur des accolades permet d'accéder à des spécificateurs de formatage pour contrôler l'apparence des nombres (décimales, pourcentages, séparateurs) et l'alignement du texte.
  • La syntaxe {variable=} est une astuce de débogage rapide et efficace.

Dans le prochain module, nous aborderons les structures de données essentielles en Python : les listes et les dictionnaires. Ces structures sont le pain quotidien du machine learning pour stocker et manipuler des données. Vous verrez que les f-strings que vous venez d'apprendre seront un outil indispensable pour examiner le contenu de ces structures de manière lisible.