💬python

Comprendre les f-strings en Python : formatage moderne

30 mars 2026 5 min de lecture

Introduction : Adieu le formatage compliqué !

Tu as déjà galéré à concaténer des variables et du texte avec des + partout, ou à te perdre dans les arguments des méthodes .format() ? En Python, il existe une solution élégante et ultra-lisible : les f-strings (formatted string literals). Introduites avec Python 3.6, elles ont révolutionné le formatage des chaînes de caractères. Dans cet article, on va tout détailler pour que tu maîtrises cet outil indispensable, que ce soit pour tes projets NSI ou pour coder de manière plus propre et efficace.

Les bases des f-strings : la syntaxe magique

Le principe est simple : tu préfixes ta chaîne de caractères avec la lettre f ou F, et tu peux ensuite insérer directement le nom de tes variables ou des expressions Python entre accolades {}. La valeur sera automatiquement convertie en texte et insérée à cet endroit.

Voici un exemple basique pour bien comprendre :

nom = "Léa"
age = 17
presentation = f"Je m'appelle {nom} et j'ai {age} ans."
print(presentation)
# Affiche : Je m'appelle Léa et j'ai 17 ans.

Compare avec l'ancienne méthode : "Je m'appelle " + nom + " et j'ai " + str(age) + " ans.". C'est bien plus long et moins lisible, non ?

Pourquoi les f-strings sont un game-changer

  • Lisibilité : Le code se lit presque comme une phrase normale. Tu vois directement où les variables vont s'insérer.
  • Concision : Plus besoin d'appeler str() pour convertir ou d'utiliser plein d'opérateurs de concaténation.
  • Performance : Sous le capot, les f-strings sont souvent plus rapides à exécuter que les autres méthodes de formatage.
  • Expressivité : Tu peux mettre n'importe quelle expression Python valide à l'intérieur des accolades, pas juste des variables.

Formatage avancé : aller plus loin que l'affichage simple

Les f-strings ne se limitent pas à afficher des variables. Tu peux contrôler précisément l'affichage des nombres, des dates, ou aligner ton texte. C'est là que leur puissance se révèle vraiment.

Contrôler l'affichage des nombres

Imaginons que tu doives afficher un prix, un pourcentage ou un résultat de calcul avec un nombre précis de décimales.

prix = 19.99
tva = 0.2
pi = 3.1415926535

print(f"Prix TTC : {prix * (1 + tva):.2f} €") # 2 décimales
# Affiche : Prix TTC : 23.99 €

print(f"Pourcentage : {tva:.1%}") # Format pourcentage
# Affiche : Pourcentage : 20.0%

print(f"Valeur de Pi : {pi:.4f}") # 4 décimales
# Affiche : Valeur de Pi : 3.1416

La syntaxe après les deux points : est un spécificateur de format. .2f signifie "nombre à virgule flottante (f) avec 2 chiffres après la virgule".

Aligner le texte et ajouter du remplissage

Pour créer des tableaux ou des affichages bien alignés dans la console, c'est très pratique.

eleves = [("Alice", 15), ("Baptiste", 18), ("Camille", 16)]
for nom, note in eleves:
print(f"{nom:<10} : {note:>3}/20")
# Affiche :
# Alice : 15/20
# Baptiste : 18/20
# Camille : 16/20

Ici, :<10 signifie "aligner à gauche (<) sur une largeur totale de 10 caractères". :>3 signifie "aligner à droite (>) sur 3 caractères". Tu peux aussi utiliser ^ pour centrer.

Expressions et fonctions dans les f-strings

C'est l'une des fonctionnalités les plus cool. Entre les accolades, tu peux évaluer des expressions, appeler des fonctions ou des méthodes.

a = 5
b = 3
print(f"{a} + {b} = {a + b}") # Calcul direct
# Affiche : 5 + 3 = 8

liste = [1, 2, 3]
print(f"La liste a {len(liste)} éléments.") # Appel de fonction
# Affiche : La liste a 3 éléments.

texte = "NSI"
print(f"Le cours de {texte.upper()} est génial !") # Appel de méthode
# Affiche : Le cours de NSI est génial !

Cela te permet de garder ton code très lisible sans avoir à créer des variables intermédiaires pour des calculs simples.

Bonnes pratiques et pièges à éviter

Même si les f-strings sont simples, il y a quelques règles à connaître pour ne pas faire d'erreur.

  • Guillemets dans les guillemets : Si ta chaîne f-string est entourée de doubles guillemets (""), tu peux utiliser des simples guillemets à l'intérieur des accolades, et vice-versa.
    print(f"C'est l'exemple de {nom}") # Correct
  • Accolades littérales : Pour afficher une accolade comme caractère, il faut la doubler.
    print(f"{{Ceci est entre accolades}}") # Affiche : {Ceci est entre accolades}
  • Complexité modérée : Évite de mettre des expressions trop complexes ou longues dans les accolades. Si l'expression dépasse une ligne simple, il vaut mieux la calculer avant et stocker le résultat dans une variable pour la lisibilité.
  • Version de Python : Les f-strings ne sont disponibles qu'à partir de Python 3.6. Vérifie bien ta version si tu rencontres une erreur de syntaxe.

Conclusion : Quand et comment les utiliser ?

Les f-strings sont désormais la méthode recommandée pour formater des chaînes en Python dans la grande majorité des cas. Elles combinent simplicité, puissance et performance.

Utilise-les pour :

  • Créer des messages pour l'utilisateur (dans la console ou une interface graphique simple).
  • Générer du contenu textuel dynamique (logs, rapports, pages web en backend).
  • Déboguer rapidement en insérant des valeurs de variables dans des print (print(f"Valeur de x: {x}")).

Pour les projets NSI, que ce soit dans un algorithme, un script de traitement de données ou une petite application, les f-strings seront tes alliées pour produire un code clair et professionnel. Maintenant, à toi de jouer et de les intégrer dans tes prochains programmes !

📚 Pour aller plus loin

Questions fréquentes

Est-ce que je peux utiliser une f-string si ma variable n'existe pas encore ?

Non, la variable ou l'expression que tu mets entre les accolades {} doit être définie et accessible au moment où l'interpréteur Python "évalue" la f-string. Si tu essaies avec une variable non définie, tu auras une erreur NameError.

Les f-strings, c'est juste pour les print() ?

Absolument pas ! Les f-strings créent une chaîne de caractères (un objet de type 'str'). Tu peux l'assigner à une variable, l'ajouter à une liste, l'écrire dans un fichier, l'envoyer sur un réseau... Le print() n'est qu'un usage parmi d'autres pour afficher cette chaîne à l'écran.

Faut-il préférer les f-strings à .format() ou à l'opérateur % ?

Oui, dans la plupart des cas. Les f-strings sont plus lisibles, concises et souvent plus rapides. Les méthodes .format() et l'opérateur % (le "old style") sont maintenues pour la compatibilité avec d'anciens codes, mais pour du nouveau code, notamment en NSI, privilégie les f-strings.

Comment faire une f-string sur plusieurs lignes ?

Comme pour une chaîne normale, tu peux utiliser les triples guillemets (''' ou """) avec le préfixe f. Exemple : <code>message = f"""Bonjour {nom},<br>Ton résultat est : {score}/20.<br>Bravo !"""</code>

Bravo ! Tu as lu cet article
Inscris-toi pour sauvegarder ta progression et gagner des XP
Creer mon compte
f-strings Pythonformatage chaines
Pixel