Comment formater des chaînes en Python (f-strings et format)

Apprenez les meilleures techniques de formatage de chaînes en Python. Comparez les f-strings modernes, le format() et le formatage en pourcentage avec des exemples de code.

Essayez cette solution dans l'éditeur

Aperçu

Le formatage des chaînes est une nécessité quotidienne pour restituer les variables dans les messages, générer des journaux, imprimer les débogages de la console et créer des pages Web. Python a considérablement évolué le formatage des chaînes au fil des ans, offrant de multiples options pour construire des représentations de texte dynamiques de manière sûre et lisible.

Dans Python moderne (3.6+), l'approche standard et la plus populaire est le formatage avec des f-strings (Formatted String Literals). En préfixant une chaîne avec `f` ou `F`, vous pouvez intégrer des expressions ou des variables Python directement dans des accolades `{}`. Ces expressions sont évaluées au moment de l'exécution, ce qui rend les f-strings à la fois plus rapides et nettement plus lisibles que les anciennes méthodes de formatage.

Les anciennes bases de code Python peuvent utiliser la méthode `.format()` ou le formatage en pourcentage `%`. Bien qu'ils soient toujours pris en charge, ils sont généralement déconseillés pour le nouveau code. Les f-strings prennent également en charge de puissants spécificateurs de format en ligne, vous permettant de contrôler la précision décimale (par exemple, `{value:.2f}`), d'aligner le texte ou de formater les dates directement dans des variables de chaîne.

Sortie de code et d'exécution

Ce script montre l'impression de blocs de texte dynamiques à l'aide de f-strings, le formatage de flottants à virgule flottante et l'utilisation de .format().

format_strings.py
Essayez dans l'éditeur
name = "Alice"
age = 30
pi = 3.14159

# 1. Using modern f-strings (Recommended)
greeting_f = f"Hello, my name is {name} and I am {age} years old."
print("f-string:", greeting_f)

# 2. formatting floats (2 decimal places precision)
precision_f = f"Pi rounded: {pi:.2f}"
print(precision_f)

# 3. Using the older .format() method
greeting_format = "Hello, my name is {} and I am {}.".format(name, age)
print(".format():", greeting_format)
Sortie terminale
f-string: Hello, my name is Alice and I am 30 years old.
Pi rounded: 3.14
.format(): Hello, my name is Alice and I am 30.

Mise en œuvre étape par étape

  • Préfixez votre chaîne littérale avec le caractère f (par exemple, f'Bonjour...').
  • Insérez des variables ou des expressions directement entre accolades {} dans la chaîne.
  • Utilisez des spécifications de format telles que :.2f pour gérer le formatage décimal à l'intérieur des accolades.

Foire aux questions

Les f-strings sont-elles plus rapides que le formatage .format() et % ?

Oui, les chaînes f sont évaluées au moment de l'exécution en tant qu'opérations de bytecode optimisées, ce qui les rend plus rapides que les opérateurs .format() et %.

Puis-je exécuter des fonctions ou évaluer des expressions dans des f-strings ?

Oui, toute expression Python valide (y compris les opérations mathématiques, les appels de fonction et les recherches dans le dictionnaire) peut être évaluée à l'intérieur des accolades.

Sujets connexes

Ressources Python recommandées

Développez vos connaissances avec des didacticiels interactifs, des aide-mémoire et des comparaisons de codes associés.