Module : Formatage avec les f-strings
1. Quoi : Les f-strings
Introduites en Python 3.6, les f-strings (ou formatted string literals) sont une manière moderne, lisible et performante de formater des chaînes de caractères. Elles permettent d'intégrer directement des expressions Python à l'intérieur d'une chaîne.
La syntaxe est simple : il suffit de préfixer la chaîne par la lettre f (ou F) et de placer les variables ou expressions entre accolades {}.
name = "Alice"
age = 30
# La f-string remplace {name} et {age} par leurs valeurs
greeting = f"Hello, my name is {name} and I am {age} years old."
print(greeting)
# Affiche : "Hello, my name is Alice and I am 30 years old."
2. Pourquoi : Les avantages des f-strings
Avant les f-strings, les développeurs Python utilisaient principalement la méthode .format() ou l'opérateur %.
- Ancienne méthode (
.format()) :greeting = "Hello, my name is {} and I am {} years old.".format(name, age) - Très ancienne méthode (
%) :greeting = "Hello, my name is %s and I am %d years old." % (name, age)
Les f-strings sont aujourd'hui la méthode recommandée pour plusieurs raisons :
- Lisibilité : Les variables sont directement insérées là où elles apparaissent dans la chaîne, ce qui rend le code beaucoup plus facile à lire.
- Performance : Elles sont généralement plus rapides que les autres méthodes de formatage.
- Puissance : On peut mettre presque n'importe quelle expression Python valide à l'intérieur des accolades.
3. Comment : Utilisation avancée des f-strings
A. Exécution d'expressions
Vous pouvez faire plus que simplement insérer des variables.
price = 19.99
tax_rate = 0.20
# Calcul directement dans la f-string
total_price_message = f"Total price with tax: {price * (1 + tax_rate)}"
print(total_price_message) # Affiche : "Total price with tax: 23.988"
# Appel de fonctions ou de méthodes
name = " Bob "
message = f"Welcome, {name.strip().title()}!"
print(message) # Affiche : "Welcome, Bob!"
B. Options de formatage
Les f-strings permettent de contrôler précisément l'affichage des valeurs, notamment pour les nombres. On ajoute un deux-points : suivi d'un spécificateur de format.
-
Formatage des nombres à virgule flottante (
float) :- Spécifiez le nombre de décimales avec
.nf, oùnest le nombre de chiffres après la virgule.
pi = 3.14159265
message = f"The value of pi is approximately {pi:.2f}"
print(message) # Affiche : "The value of pi is approximately 3.14" - Spécifiez le nombre de décimales avec
-
Remplissage et alignement :
- Alignez le texte à l'intérieur d'un espace donné.
text = "hello"
# Aligne à gauche sur 10 caractères
left_aligned = f"'{text:<10}'" # Résultat : "'hello '"
# Aligne à droite sur 10 caractères
right_aligned = f"'{text:>10}'" # Résultat : "' hello'"
# Centre sur 10 caractères
centered = f"'{text:^10}'" # Résultat : "' hello '"
# Centre et remplit avec un caractère
filled_centered = f"'{text:*^10}'" # Résultat : "'**hello***'"
C. Débogage rapide (Python 3.8+)
C'est une fonctionnalité extrêmement pratique pour le débogage. En ajoutant un signe égal = à la fin de l'expression, la f-string affichera à la fois l'expression et sa valeur.
user = "admin"
is_logged_in = True
# La syntaxe {variable=} est un raccourci pour f"variable={variable}"
print(f"{user=} {is_logged_in=}")
# Affiche : user='admin' is_logged_in=True
4. Bonnes Pratiques
- ✅ Bon : Utilisez les f-strings comme méthode de formatage par défaut dans tout nouveau code Python (version 3.6+).
- ✅ Bon : Profitez de la possibilité d'appeler des méthodes (comme
.strip()) directement dans les accolades pour garder le code concis. - ❌ Mauvais : Évitez de mettre une logique métier trop complexe à l'intérieur d'une f-string. Si le calcul est long, faites-le d'abord dans une variable, puis insérez la variable dans la chaîne pour une meilleure lisibilité.
Ressources Externes :