Les chaines de caractères formatées f-strings en Python

Article publié le mardi 27 février 2024 et mis à jour le mercredi 3 avril 2024.

Les chaines de caractères formatées f-strings en Python

Les f-strings permettent de formater les chaînes de caractères de manière moderne, concise, rapide et plus lisible. Ces chaines de caractères formatées peuvent afficher des variables, des expressions, des fonctions, des opérations mathématiques ou des appels de méthodes directement dans des strings.

Par exemple :

a = 1
b = 2
agent = 7

print(f"La somme de {a} + {b} est {a + b}")  # La somme de 1 + 2 est 3
print(f"Utiliser des fonctions : {'cOmMeNTcoDER.cOm'.tolower()}")  # commentcoder.com
print(f"Formater {agent:0>3}")  # 007
print(f"La population est de {123456789:,} habitants.")  # La population est de 123,456,789 habitants.

Les f-strings, ou “formatted string literals”, “chaines de caractères formatées” ont ete introduites avec Python 3.6 avec la PEP 498. Avant ca, on devait utiliser des fonctions comme .format, les f-strings ont modernisé la manière pour afficher des strings en Python.

Dans cet article, on va voir quels sont les avantages les f-strings et comment les utiliser.

Qu’est-ce qu’une f-string?

Une f-string est une chaîne de caractères précédée par la lettre “f” ou “F”. Cette méthode permet d’insérer directement des variables et des expressions Python dans une chaîne de texte en utilisant des accolades {}. Le résultat est une syntaxe moderne qui facilite la lecture et l’écriture du code.

Pourquoi utiliser les f-strings ?

  1. Lisibilité: Les f-strings rendent le code plus clair et plus facile à comprendre, surtout lorsqu’il s’agit de combiner du texte avec des variables ou des expressions.

  2. Performance: Elles sont plus rapides à exécuter que les méthodes de formatage précédentes en Python, comme la méthode .format() ou l’opérateur %.

  3. Concision: Avec les f-strings, le code est souvent plus court et plus direct, ce qui réduit le risque d’erreurs.

Comment utiliser les f-strings ?

L’utilisation des f-strings est intuitive. Voici un exemple simple:

nom = "John"
age = 30
print(f"Je m'appelle {nom} et j'ai {age} ans.")

Dans cet exemple, les variables nom et age sont insérées directement dans la chaîne de caractères. Le résultat affiché sera : Je m'appelle John et j'ai 30 ans.

Astuces d’affichage avec les f-strings

Les f-strings permettent d’exécuter des expressions Python directement dans les accolades mais elles reconnaissent aussi des patterns pour formater du contenu intelligemment.

On peut par exemple :

Afficher des expressions mathématiques :

a = 5
b = 10
print(f"La somme de {a} et {b} est {a + b}.")

Appeler des fonction :

def saluer(nom):
    return f"Bonjour, {nom}!"

print(f"{saluer('Marie')}")

Preciser un nombre de décimales :

Les f-strings permettent de specifier un nombre de décimales.

Par exemple, pour arrondir à deux décimales :

prix = 49.99
print(f"Le prix est de {prix:.2f} euros.")

Séparer les grands nombres :

Pour améliorer la lisibilité des grands nombres, on peut utiliser un séparateur de milliers comme , ou _.

population = 123456789
print(f"La population est de {population:,} habitants.")

Formater en pourcentage :

On peut afficher un nombre sous forme de pourcentage :

taux = 0.2567
print(f"Le taux de conversion est de {taux:.2%}.")

Alignement à gauche, à droite et centré :

On peut utiliser les f-strings pour aligner du texte en rajoutant des espaces :

nom = "Alice"
print(f"{nom:<10}")  # Aligne à gauche
print(f"{nom:>10}")  # Aligne à droite
print(f"{nom:^10}")  # Entoure d'espace

Ce qui donne

Alice
     Alice
  Alice

Remplissage avec des caractères :

On peut aussi remplir avec des caractères spécifiques.

score = 7
print(f"Score: {score:0>3}")  # Résultat: Score: 007

Inclure des accolades :

Si vous avez besoin d’afficher des accolades dans votre texte, on peut en avoir en doublant le symbole accolade :

print(f"{{Attention}}: Ceci est un message important.")

Afficher des tableaux :

On peut aussi formater plusieurs f-strings pour avoir un affichage constant avec un dictionnaire.

Par exemple, on peut afficher proprement un prénom et un score pour différentes personnes :

personnes = {'Alice': 4242, 'Bob': 1234, 'Charlie': 1337}

for name, score in personnes.items():
  print(f'{name:10} ==> {score:10d}')

Ce qui donnera :

Alice      ==>       4242
Bob        ==>       1234
Charlie    ==>       1337

Aller plus loin avec les f-strings

Et voila, vous savez maintenant utiliser les f-strings !

Utiliser les f-strings est essentiel en Python en 2024, prenez l’habitude de les utiliser dans vos fonctions print et pour afficher des chaines de caractères riches en general.

C’est tout pour cet article sur les f-strings en Python. J’espère que vous avez apprécié cet article et que vous avez appris quelque chose de nouveau.

Comment Coder

Je m'appelle Thomas. J'ai commencé à coder dans mon enfance. Depuis ma sortie de la première promo de l'École 42, j'ai développé des centaines d'applications et sites web. Sur ce blog, je vous donne les meilleurs conseils et astuces pour apprendre comment apprendre à coder efficacement.