Titre RNCP Niveau 7

Maîtrisez pipelines, cloud & IA pour devenir Data Engineer opérationnel.

Devenez Data Engineer

DataScientist.fr

Formations

L'équipeLa plateforme
Offre entreprises

🇫🇷

Formatage de chaînes avec les f-string en Python - Tutoriel interactif
Python

Formatage de chaînes avec les f-string en Python - Tutoriel interactif

Romain DE LA SOUCHÈRE

Lead Developer, Expert Cloud et DevOps

Publié le 2 janvier 2025 · 9 min de lecture

Dans le monde de la programmation, la manipulation de chaînes de caractères est une compétence essentielle, et Python a toujours offert des outils puissants pour cela. Avant l'arrivée de Python 3.6, les développeurs utilisaient diverses méthodes pour interpoler et formater des chaînes. Cependant, avec l'introduction des f-strings, un vent de fraîcheur a soufflé sur la communauté, offrant une syntaxe plus concise et lisible. Cet article explore l'évolution de ces techniques, en mettant l'accent sur les améliorations continues apportées jusqu'à Python 3.12 et au-delà. Plongeons dans cet univers fascinant des f-strings et découvrons comment ils transforment notre façon de coder.

Interpoler et formater des chaînes avant python 3.6

Avant l'introduction des f-strings dans Python 3.6, les développeurs avaient plusieurs méthodes à leur disposition pour interpoler et formater des chaînes. Ces techniques, bien qu'efficaces, étaient souvent jugées moins intuitives et plus verbeuses. Explorons ces méthodes plus anciennes pour mieux comprendre l'évolution vers les f-strings.

Opérateur % pour le formatage des chaînes

L'opérateur % a longtemps été la méthode prédominante pour formater des chaînes en Python. Inspiré par le langage C, il permettait d'incorporer des variables dans des chaînes en utilisant des spécificateurs de format. Voici un exemple :
python
Dans cet exemple, %s et %d sont des spécificateurs de format pour les chaînes et les entiers, respectivement. Bien que fonctionnel, cette méthode pouvait devenir complexe avec l'augmentation du nombre de variables.

La méthode str.format()

Introduite dans Python 2.6, la méthode str.format() a apporté une approche plus lisible et flexible pour le formatage des chaînes. Elle utilise des accolades {} comme des espaces réservés pour les variables, qui sont ensuite remplacées par les arguments passés à la méthode format(). Voici comment elle fonctionne :
python
Cette méthode permet également de nommer les espaces réservés pour un formatage plus explicite :
python
Cette technique rend le code plus clair, surtout lorsqu'il s'agit de nombreux paramètres ou d'une réutilisation des mêmes variables.

Templates de chaînes avec le module string

Le module string de Python offre une autre méthode pour le formatage des chaînes via la classe Template. Bien que moins utilisée, elle présente une alternative sécurisée pour incorporer des données utilisateur, minimisant les risques d'injection. Voici un exemple :
python
Chaque méthode a ses propres avantages et inconvénients. Toutefois, l'introduction des f-strings a largement simplifié le processus d'interpolation et de formatage, rendant les syntaxes antérieures souvent obsolètes pour les nouveaux projets Python.

Faire l'interpolation de chaîne avec les f-strings en python

Avec l'arrivée de Python 3.6, les f-strings, ou "formatted string literals", ont révolutionné la manière dont les chaînes de caractères peuvent être interpolées et formatées. Les f-strings sont non seulement plus concis mais aussi plus lisibles, offrant une performance supérieure grâce à leur intégration dans le langage.

Syntaxe des f-strings

Les f-strings sont définies en plaçant un préfixe f ou F devant des guillemets entourant une chaîne. Les expressions Python, entourées de accolades {}, peuvent être insérées directement dans la chaîne. Voici un exemple simple :
python
Dans cet exemple, les accolades permettent d'insérer directement les variables nom et age dans la chaîne, éliminant le besoin de spécificateurs de format ou de méthodes supplémentaires.

Avantages des f-strings

Les f-strings offrent plusieurs avantages par rapport aux méthodes de formatage précédentes :
  1. Lisibilité : Le code est plus intuitif car les expressions sont évaluées directement à l'intérieur des chaînes.
  2. Performance : Les f-strings sont généralement plus rapides que str.format() et l'opérateur % car elles sont évaluées au moment de la compilation.
  3. Flexibilité : Les f-strings supportent des expressions complexes, y compris des appels de méthode et des opérations arithmétiques :
python

Formattage avancé

Les f-strings permettent également un formattage avancé similaire à str.format(). Par exemple, pour formater un nombre avec deux décimales, vous pouvez faire :
python
Ici, :.2f indique que pi doit être présenté avec deux chiffres après la virgule.

Conclusion

Les f-strings simplifient considérablement le processus d'interpolation et de formatage des chaînes, rendant le code Python plus clair et plus efficace. Depuis leur introduction, elles sont devenues la méthode privilégiée pour manipuler les chaînes en Python.

Formater des chaînes avec le f-string de python

Les f-strings ne se contentent pas d'insérer des variables dans des chaînes, elles permettent également un formattage précis et sophistiqué des chaînes. Cette section explore comment utiliser les f-strings pour contrôler l'apparence des données affichées.

Formatage numérique

Les f-strings permettent de formater les nombres avec précision, ce qui est particulièrement utile pour les applications financières ou scientifiques. Par exemple, pour afficher un nombre en notation scientifique ou avec un nombre fixe de décimales, on utilise les spécificateurs de format :
python
Voici comment afficher un nombre en notation scientifique :
python

Alignement et remplissage

Les f-strings permettent également d'aligner et de remplir les chaînes, ce qui est pratique pour créer des tableaux de données lisibles. Par exemple, pour aligner un texte à gauche, à droite ou centré :
python
Ce code aligne nom à gauche, au centre, et à droite dans une largeur de 10 caractères. Vous pouvez également utiliser un caractère de remplissage :
python

Intégration de variables complexes

Les f-strings peuvent intégrer des expressions complexes, comme des calculs ou des appels de fonctions, directement dans la chaîne :
python

Utilisation de dictionnaires

Les f-strings peuvent également accéder facilement aux valeurs de dictionnaires, ce qui est utile pour formater des données structurées :
python
En utilisant ces techniques, les f-strings offrent une approche puissante et flexible pour formater des chaînes en Python, simplifiant la manipulation de texte tout en améliorant la lisibilité et la performance du code.

Autres fonctionnalités pertinentes des f-strings

Les f-strings en Python ne se limitent pas seulement à l'interpolation et au formatage de base des chaînes. Elles offrent également diverses fonctionnalités avancées qui enrichissent leur utilité et leur flexibilité. Explorons certaines de ces fonctionnalités.

Expressions évaluées dynamiquement

Une caractéristique puissante des f-strings est leur capacité à évaluer des expressions dynamiques au moment de l'exécution. Cela inclut des opérations arithmétiques, des appels de fonctions, et même des conditions ternaires :
python

Approche sûre avec repr()

Les f-strings facilitent l'utilisation de la fonction repr(), qui est particulièrement utile pour le débogage. En utilisant !r, vous pouvez obtenir la représentation officielle d'un objet :
python
Cela affiche la représentation officielle de l'objet, qui est souvent plus informative pour le débogage.

Utilisation avec des objets complexes

Les f-strings peuvent accéder aux attributs et aux méthodes des objets, ce qui simplifie l'interaction avec des structures de données complexes :
python
Ici, les f-strings intègrent directement l'objet Personne, utilisant la méthode str pour produire une sortie lisible.

Intégration de modules

Les f-strings peuvent également intégrer des modules, permettant d'inclure des résultats d'opérations ou d'appels de modules directement dans les chaînes :
python
Les fonctionnalités avancées des f-strings font d'elles un outil incontournable pour quiconque manipule du texte en Python, ajoutant une couche supplémentaire de flexibilité et de puissance à votre code.

Améliorer les f-strings : python 3.12 et au-delà

Avec chaque nouvelle version de Python, les f-strings continuent d'évoluer pour offrir encore plus de fonctionnalités et de flexibilité. Python 3.12 n'est pas une exception, apportant des améliorations notables qui rendent les f-strings encore plus puissantes et pratiques à utiliser.

Support des expressions multiligne

L'une des améliorations les plus attendues est la prise en charge des expressions multiligne dans les f-strings. Cela permet aux développeurs d'inclure des calculs ou des appels de fonctions complexes sur plusieurs lignes sans sacrifier la lisibilité :
python
Cette fonctionnalité améliore la gestion des expressions complexes en les rendant plus faciles à lire et à maintenir.

Amélioration des performances

Python 3.12 introduit également des optimisations qui améliorent la performance des f-strings. Ces optimisations permettent une évaluation plus rapide des expressions, réduisant ainsi le temps d'exécution, surtout dans les scripts lourds en traitement de texte.

Sécurité et validation améliorées

Avec Python 3.12, des efforts ont été faits pour renforcer la sécurité autour de l'utilisation des f-strings, en particulier lors de l'intégration de données externes. Les f-strings peuvent désormais inclure des mécanismes de validation intégrés :
python

Intégration avec les nouveaux types de données

À mesure que Python introduit de nouveaux types de données, comme les structures de données immuables ou les nouveaux types de date, les f-strings sont mises à jour pour intégrer ces types de manière fluide :
python
Ces améliorations démontrent l'engagement de Python à maintenir les f-strings comme un outil moderne et robuste pour le formatage des chaînes, en les adaptant continuellement aux besoins évolutifs des développeurs.

Convertir automatiquement les anciennes chaînes en f-strings

Avec l'adoption croissante des f-strings en Python, il devient souvent nécessaire de convertir du code existant qui utilise des méthodes plus anciennes de formatage de chaînes. Heureusement, il existe des outils et des techniques pour faciliter cette transition, permettant de moderniser le code de manière efficace.

Utilisation d'outils automatisés

Un des moyens les plus efficaces de convertir des chaînes de formatage anciennes en f-strings est l'utilisation d'outils automatisés. Par exemple, des outils comme flynt peuvent analyser le code Python et convertir automatiquement les chaînes utilisant str.format() ou l'opérateur % en f-strings :
shell
Cet outil parcourt le répertoire spécifié et met à jour les chaînes en f-strings, réduisant ainsi le besoin de conversions manuelles.

Conversion manuelle avec des expressions régulières

Pour ceux qui préfèrent un contrôle plus fin, il est possible d'utiliser des expressions régulières pour identifier et convertir manuellement des chaînes formatées. Par exemple, en utilisant un éditeur de code avec support des regex, vous pouvez rechercher des motifs de formatage et les modifier :
python
Cette méthode nécessite une compréhension des expressions régulières mais offre une flexibilité dans la manipulation du code.

Bonnes pratiques pour la conversion

Lors de la conversion, il est essentiel de conserver la lisibilité et la sécurité du code. Voici quelques bonnes pratiques :
  • Vérification des résultats : Après conversion, testez les chaînes pour vous assurer qu'elles fonctionnent comme prévu.
  • Sécurisation des données : Assurez-vous que les données intégrées dans les f-strings ne posent pas de risques de sécurité, surtout si elles proviennent de sources externes.
  • Simplification progressive : Commencez par les sections de code où les f-strings apportent le plus de bénéfices, comme dans les boucles ou les fonctions complexes.
En adoptant ces techniques et outils, vous pouvez moderniser votre code Python, en tirant parti des avantages des f-strings pour une meilleure lisibilité et performance.

Conclusion

Les f-strings représentent une avancée significative dans la manière de gérer le formatage des chaînes en Python. En simplifiant l'interpolation et en offrant des fonctionnalités puissantes pour le formatage, elles améliorent la lisibilité et l'efficacité du code. Leur adoption permet non seulement de réduire les erreurs potentielles liées au formatage, mais également d'optimiser la performance des applications.

Impact sur le développement

L'intégration des f-strings dans des projets existants, grâce à des outils comme flynt ou des techniques de conversion manuelles, facilite la transition vers un code plus moderne. Cette conversion est un investissement précieux qui simplifie la maintenance et l'évolution du code sur le long terme.

Avantages à long terme

En utilisant les f-strings, les développeurs bénéficient d'une syntaxe plus concise, d'un gain de performance, et d'une meilleure gestion des expressions dynamiques. Ces avantages sont particulièrement notables dans des contextes où le formatage de texte est crucial, comme dans le traitement de données ou la génération de rapports.
En conclusion, les f-strings sont devenues un outil incontournable pour tout développeur Python, permettant de produire du code plus propre, plus sûr et plus performant. L'évolution continue de Python garantit que les f-strings resteront à la pointe des pratiques de développement, rendant leur adoption essentielle pour rester compétitif dans le développement moderne.

Partager avec

💙 Merci d'avoir parcouru l'article jusqu'à la fin !

Romain DE LA SOUCHÈRE

Romain DE LA SOUCHÈRE - Lead Developer, Expert Cloud et DevOps

Ingénieur de formation avec plus de 11 ans d'expérience dans le développement back-end et le data engineering. Expert dans l’industrialisation des projets data dans le cloud.

» En savoir plus

Formations associés

Toutes nos formations

Préparez la certification PL‑300
Préparez la certification PL‑300
24 heures
Débutant
Garantie
Préparez la certification AZ-900
Préparez la certification AZ-900
10 heures
Débutant
Garantie
Préparez la certification DP‑700
Préparez la certification DP‑700
24 heures
Débutant
Garantie
Préparez la certification DP‑900
Préparez la certification DP‑900
10 heures
Débutant
Garantie

DataScientist.fr

By AXI Technologies

128 Rue de la Boétie,
75008, Paris, France

bonjour@datascientist.fr

+33 1 70 39 08 31

+33 6 86 99 34 78

© 2026 DataScientist.fr - AXI Technologies - Tous droits réservés