Avec les chaînes de ca­rac­tères f, ou f-strings en Python, vous pouvez insérer des ex­pres­sions et des variables complexes di­rec­te­ment dans une chaîne, sans avoir à effectuer de con­ver­sions ou de for­ma­tages sup­plé­men­taires.

f-strings Python : qu’est-ce que c’est ?

Les f-strings Python sont un format de chaîne de ca­rac­tères Python introduit avec Python 3.6. Elles sont également appelées chaînes lit­té­rales formatées. À l’intérieur des strings, vous pouvez évaluer des calculs en les intégrant dans des accolades. Elles per­met­tent une écriture plus compacte par rapport à d’autres méthodes de formatage de chaînes comme str.format() ou la con­ca­té­na­tion avec +. Il en résulte un code plus clair et plus concis.

Les f-strings sont ex­trê­me­ment flexibles et per­met­tent d’insérer des variables et des ex­pres­sions dans dif­fé­rents types de données comme les entiers, les floats, les listes ou même des ex­pres­sions et des fonctions sans con­ver­sion préalable ou formatage spécial. En règle générale, les f-strings Python sont plus rapides que les autres méthodes de formatage de chaînes en Python.

La syntaxe générale des f-strings

La structure de base d’une chaîne de ca­rac­tères f est cons­ti­tuée du préfixe f ou F, suivi d’une chaîne de ca­rac­tères iden­ti­fiée par des guil­le­mets (“ ou ’). À l’intérieur de cette chaîne, des accolades {} peuvent être utilisées pour intégrer des variables ou des ex­pres­sions.

nom = "Pierre"
age = 25
formatted_string = f"Mon nom est {nom} et j’ai {age} ans".
print(formatted_string) # Sortie : Mon nom est Pierre et j’ai 25 ans.
python

Dans notre exemple, nous rem­pla­çons la variable nom par {nom} et la variable age par {age} dans la chaîne de ca­rac­tères f pour produire la chaîne de ca­rac­tères finale.

Hé­ber­ge­ment Web
Hé­ber­ge­ment Web de pointe au meilleur prix
  • 3x plus rapide, 60 % d'éco­no­mie
  • Haute dis­po­ni­bi­lité >99,99 %
  • Seulement chez IONOS : jusqu'à 500 Go inclus

Uti­li­sa­tions des f-strings Python

Les chaînes de ca­rac­tères f peuvent être utilisées et spé­ci­fiées de plusieurs manières.

Effectuer des calculs à l’intérieur d’une chaîne de ca­rac­tères.

Les f-strings Python sont par­ti­cu­liè­re­ment pratiques pour effectuer des opé­ra­tions arith­mé­tiques à l’intérieur d’une chaîne de ca­rac­tères. Vous pouvez ainsi définir une ex­pres­sion complexe en une seule ligne.

nombre1 = 10
nombre2 = 5
resultat = f"La somme de {nombre1} et {nombre2} est {nombre1 + nombre2}"
print(resultat) # Sortie : La somme de 10 et 5 est 15
python

Ici, l’addition de nombre1 et nombre2 est effectuée à l’intérieur de la chaîne de ca­rac­tères f, et le résultat est inséré di­rec­te­ment dans la chaîne de ca­rac­tères finale.

Python f-strings et raw strings

La com­bi­nai­son de r (pour les chaînes brutes) et de f (pour les chaînes formatées ou chaînes f) produit un type spécial de chaîne en Python, connu sous le nom de rf-string (ou chaîne rf). La chaîne rf combine la fonc­tion­na­lité des chaînes brutes, qui traitent lit­té­ra­le­ment les séquences d’échap­pe­ment, avec la flexi­bi­lité et la puissance des chaînes f, qui per­met­tent d’in­cor­po­rer di­rec­te­ment des variables et des ex­pres­sions dans une chaîne.

nom = "User"
chemin = rf'C:\Users\Username\Documents\{nom}\file.txt'
print(chemin) # Output: C:\Users\Username\Documents\User\file.txt
python

Dans le code, nous utilisons la chaîne rf pour définir un chemin. L’uti­li­sa­tion de {nom} à l’intérieur de la chaîne rf entraîne l’insertion directe de la variable nom, tandis que le r placé avant la chaîne garantit que la barre oblique inversée \ est traité comme un caractère littéral et non comme une partie d’une séquence d’échap­pe­ment.

Précision des nombres à virgule flottante

Des ins­truc­tions spéciales de formatage per­met­tent de définir le nombre de décimales d’un nombre à virgule flottante dans la chaîne formatée.

valeur = 3.14159265359  
valeur_formatee = f"Valeur arrondie = {valeur:.3f}"
print(valeur_formatee)  # Sortie : Valeur arrondie = 3.142
python

Ici, l’ins­truc­tion de formatage :.3f indique que la variable valeur doit être arrondie à trois décimales et insérée dans la chaîne formatée.

Largeur et alig­ne­ment

Pour les f-strings Python, la largeur et l’alig­ne­ment per­met­tent de contrôler la re­pré­sen­ta­tion des valeurs insérées dans un champ défini. Cela est utile pour placer du texte ou des chiffres dans une zone donnée et les aligner soit à gauche, soit à droite, soit au centre.

Supposons que nous ayons le nom __Alice__ et que nous voulions l’aligner à droite dans un champ de dix ca­rac­tères de large :

nom = "Alice"
nom_formate = f"Bonjour, {nom:>10}"
print(nom_formate)  # Sortie : Bonjour,      Alice
python

Comme la valeur fait moins de dix ca­rac­tères, la spé­ci­fi­ca­tion {nom:>10} l’aligne à droite.

Rem­plis­sage avec des zéros ou d’autres ca­rac­tères

Le rem­plis­sage avec des zéros ou d’autres ca­rac­tères influence l’alig­ne­ment des nombres dans un champ. Cela est utile lorsque les nombres doivent être affichés dans un format fixe, par exemple pour afficher des heures ou des valeurs nu­mé­riques.

nombre = 42
nombre_formate = f"Nombre : {nombre:06}"
print(nombre_formate)  # Sortie : Nombre : 000042
python

Ici, :06 indique que le nombre nombre est saisi dans un champ de six chiffres, et que nous rem­plis­sons les chiffres manquants avec des zéros non sig­ni­fi­ca­tifs.

Il est également possible de spécifier d’autres ca­rac­tères que des zéros pour le rem­plis­sage :

mot = "Python"
mot_formate = f"Mot : {mot:_<10}"
print(mot_formate)  # Sortie : Mot : Python____
python
Aller au menu principal