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 !
