logo oujood
🔍

Les f-strings en Python

Depuis Python 3.6, les f-strings sont la façon la plus lisible et la plus rapide de construire des chaînes dynamiques. Fini les concaténations laborieuses ou les .format() à rallonge.

OUJOOD.COM

Pourquoi utiliser les f-strings ?

Avant Python 3.6, pour insérer une variable dans une chaîne, il fallait choisir entre la concaténation avec + ou la méthode .format(). Les deux fonctionnent, mais deviennent vite illisibles dès que la chaîne contient plusieurs variables.

Les f-strings règlent ce problème directement. La syntaxe est simple : on place un f devant les guillemets, et on écrit les variables dans la chaîne entre accolades {}. Python évalue chaque expression entre accolades et l'insère au bon endroit.

Syntaxe de base

Une f-string commence par la lettre f ou F juste avant les guillemets. Tout ce qui se trouve entre accolades est évalué comme du code Python et remplacé par sa valeur dans la chaîne finale.

  📋 Copier le code

prenom = "Sara"
age = 28
# Ancienne méthode avec .format()
message_ancien = "Bonjour {}, tu as {} ans.".format(prenom, age)
# Avec une f-string : plus direct, plus lisible
message_fstring = f"Bonjour {prenom}, tu as {age} ans."
print(message_fstring)
# Résultat : Bonjour Sara, tu as 28 ans.

La différence est immédiate : avec la f-string, on voit directement quelle variable va où, sans compter les accolades et les arguments séparément.

Expressions directement dans la chaîne

Les accolades acceptent n'importe quelle expression Python valide : calculs arithmétiques, appels de méthodes, conditions. Inutile de pré-calculer une valeur dans une variable intermédiaire.

  📋 Copier le code

prix = 49.90
quantite = 3
# Calcul directement dans la f-string
print(f"Total : {prix * quantite} €")
# Résultat : Total : 149.7 €
# Appel de méthode dans la f-string
nom = "alice"
print(f"Utilisateur : {nom.capitalize()}")
# Résultat : Utilisateur : Alice

Formatage des nombres

Les f-strings permettent de contrôler la présentation des nombres. On ajoute un : après la variable, suivi d'un code de format. C'est utile pour arrondir des décimales, afficher des séparateurs de milliers ou présenter un pourcentage.

  📋 Copier le code

pi = 3.14159265358979
montant = 1234567.89
# Limiter à 2 décimales
print(f"Pi arrondi : {pi:.2f}")
# Résultat : Pi arrondi : 3.14
# Séparateur de milliers
print(f"Montant : {montant:,.2f} €")
# Résultat : Montant : 1,234,567.89 €
# Afficher en pourcentage
taux = 0.075
print(f"Taux : {taux:.1%}")
# Résultat : Taux : 7.5%

Alignement et largeur du texte

Pour afficher des données en colonnes bien alignées, les f-strings proposent trois options : < (aligné à gauche), > (aligné à droite), ^ (centré). On indique ensuite la largeur souhaitée en nombre de caractères.

  📋 Copier le code

produits = [("Stylo", 1.20), ("Cahier", 3.50), ("Règle", 2.00)]
print(f"{'Produit':<10} {'Prix':>8}")
print("-" * 20)
for nom, prix in produits:
    print(f"{nom:<10} {prix:>8.2f} €")
# Résultat :
# Produit        Prix
# --------------------
# Stylo          1.20 €
# Cahier         3.50 €
# Règle          2.00 €

f-strings sur plusieurs lignes

Pour une f-string longue, les triples guillemets permettent de l'écrire sur plusieurs lignes. Pratique pour construire des messages structurés ou des rapports.

  📋 Copier le code

nom = "Mohamed"
ville = "Casablanca"
score = 95
rapport = f"""
Rapport de résultats
--------------------
Élève  : {nom}
Ville  : {ville}
Score  : {score}/100
Mention: {"Très bien" if score >= 90 else "Bien"}
"""
print(rapport)

La condition if/else directement dans l'accolade est une expression Python valide — elle fonctionne sans problème dans une f-string.

Comparaison des trois méthodes

Voici les trois façons de formater une chaîne en Python côte à côte, pour que la différence soit claire :

  📋 Copier le code

prenom = "Karim"
annee = 2024
# Méthode 1 : concaténation (peu lisible)
print("Bonjour " + prenom + ", bienvenue en " + str(annee))
# Méthode 2 : .format() (Python 2/3, encore utilisée)
print("Bonjour {}, bienvenue en {}".format(prenom, annee))
# Méthode 3 : f-string (recommandée depuis Python 3.6)
print(f"Bonjour {prenom}, bienvenue en {annee}")

Les trois lignes produisent le même résultat. La f-string est préférable pour tout nouveau code : plus rapide à écrire, plus facile à relire et légèrement plus performante à l'exécution.

Afficher des accolades littérales

Si vous avez besoin d'afficher une accolade dans une f-string sans qu'elle soit interprétée comme une expression, doublez-la.

  📋 Copier le code

valeur = 42
# {{ et }} affichent des accolades littérales
print(f"La variable vaut : {valeur} (notation JSON : {{\"val\": {valeur}}})")
# Résultat : La variable vaut : 42 (notation JSON : {"val": 42})

À retenir — Les f-strings nécessitent Python 3.6 minimum. Si vous travaillez sur un projet plus ancien, utilisez .format(). Pour tout nouveau code, les f-strings sont le standard actuel.

Par carabde | Mis à jour le 24 avril 2026