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.
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.
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.
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.
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.
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 :
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.
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