Comment interpoler des chaînes de caractères en Python ?

Par : TutorialsGrey, le 26 Février 2022

Introduction

Dans cet article, nous allons apprendre l'interpolation de chaînes de caractères en Python. Python prend en charge plusieurs façons de formater les chaînes de caractères, notamment formatage %, str.format(), string.Template et f-strings.

L'interpolation de chaînes de caractères est un processus qui consiste à substituer des valeurs de variables à des endroits réservés dans une chaîne. Par exemple, si vous avez un modèle pour dire bonjour à une personne comme "Bonjour {Nom de la personne}, ravi de vous rencontrer !", vous souhaitez remplacer l'espace réservé pour le nom de la personne par un vrai nom. Ce processus est appelé interpolation de chaîne.

 

Objectif

Apprendre les différentes façons d'interpoler des chaînes de caractères en Python.

 

Prérequis

Vous avez besoin d'un ordinateur avec un éditeur de texte (pour écrire du code Python) et un interpréteur Python (pour interpréter le code Python) installés.
Avoir des connaissances de base en Python est nécessaire pour comprendre ce qui se passe en arrière plan.

 

Le cours

La méthode f-strings

Python 3.6 a ajouté une nouvelle méthode d'interpolation de chaînes de caractères appelée interpolation de chaînes littérales et a introduit un nouveau préfixe littéral f. Cette nouvelle façon de formater les chaînes de caractères est puissante et facile à utiliser. Elle permet d'accéder aux expressions Python intégrées dans des chaînes caractères constantes.

Exemple 1 :

name = 'le Monde'
program = 'Python'
print(f'Bonjour {name} ! Voici un programme {program}.')

Lorsque nous exécutons le programme ci-dessus, le résultat sera le suivant :

Bonjour le Monde ! Voici un programme Python.

Dans l'exemple ci-dessus, le préfixe littéral f indique à Python de restaurer la valeur de deux variables de type chaîne, name et program, à l'intérieur des accolades {}. Ainsi, lorsque nous affichons avec la fonction print, nous obtenons le résultat ci-dessus.

Cette nouvelle interpolation de chaîne est puissante car elle permet d'intégrer des expressions Python arbitraires et même de faire de l'arithmétique avec.

Exemple 2 :

a = 15
b = 3
print(f'15 mutiplié par 3 donne {a * b}.')

Lorsque nous exécutons le programme ci-dessus, le résultat sera le suivant :

15 mutiplié par 3 donne 45.

Dans le programme ci-dessus, nous avons fait de l'arithmétique en mode "inline", ce qui n'est possible qu'avec cette méthode.

 

 

La méthode de formatage %

Les chaînes de caractères en Python ont une opération intégrée unique à laquelle on peut accéder avec l'opérateur %. En utilisant %, nous pouvons faire une simple interpolation de chaînes de caractères très facilement.

Exemple 3 :

print("%s %s" %('Bonjour','le Monde.',))

Lorsque nous exécutons le programme ci-dessus, le résultat sera le suivant :

Bonjour le Monde.

Dans l'exemple ci-dessus, nous avons utilisé deux spécificateurs de format de chaîne %s et deux chaînes de caractères Bonjour et le Monde. entre parenthèses ( ). Nous avons obtenu Bonjour le Monde. comme résultat. Le spécificateur de format de chaîne %s indique à Python où substituer la valeur.

La syntaxe de formatage des chaînes de caractères change légèrement, si nous voulons faire plusieurs substitutions dans une seule chaîne de caractères, et comme l'opérateur % ne prend qu'un seul argument, nous devons envelopper le côté droit dans un tuple comme indiqué dans l'exemple ci-dessous.

Exemple 4 :

name = 'le Monde'
program ='Python'
print('Bonjour %s ! Voici un programme %s.'%(name,program))

Lorsque nous exécutons le programme ci-dessus, le résultat sera le suivant :

Bonjour le Monde ! Voici un programme Python.

Dans l'exemple ci-dessus, nous avons utilisé deux variables de type chaîne de caractères : name et program. Nous avons mis les deux variables entre parenthèses ( ).

Il est également possible de faire référence aux substitutions de variables par leur nom dans notre chaîne de caractères, si nous passons un mapping à l'opérateur % :

Exemple 5 :

name = 'le Monde' 
program ='Python'
print("Bonjour %(name)s ! Voici un programme %(program)s."%{'name': name,'program': program})

Lorsque nous exécutons le programme ci-dessus, le résultat sera le suivant :

Bonjour le Monde ! Voici un programme Python.

Cela rend nos chaînes de caractères plus faciles à maintenir et à modifier à l'avenir. Nous n'avons pas à nous soucier de l'ordre des valeurs que nous passons avec l'ordre des valeurs qui sont référencées dans la chaîne de caractères.

 

La méthode str.format()

Dans ce formatage de chaîne, nous utilisons la fonction format() sur un objet chaîne et des accolades {}, l'objet chaîne dans la fonction format() est substitué à la place des accolades {}. Nous pouvons utiliser la fonction format() pour effectuer un simple formatage positionnel, tout comme le formatage %.

Exemple 6 :

name = 'le Monde'
print('Bonjour, {}.'.format(name))

Lorsque nous exécutons le programme ci-dessus, le résultat sera le suivant :

Bonjour, le Monde.

Dans cet exemple, nous avons utilisé les accolades {} et la fonction format() pour passer l'objet name. Nous avons obtenu la valeur de la variable name à la place des accolades {} dans le résultat.

Nous pouvons faire référence à nos variables de substitution par leur nom et les utiliser dans l'ordre que nous voulons. C'est une fonctionnalité assez puissante car elle permet de réorganiser l'ordre d'affichage sans modifier les arguments passés à la fonction format().

Exemple 7 :

name = 'le Monde'
program ='Python'
print('Bonjour {name} ! Voici un programme {program}.'.format(program=program, name=name))

Lorsque nous exécutons le programme ci-dessus, le résultat sera le suivant :

Bonjour le Monde ! Voici un programme Python.

Dans cet exemple, nous avons spécifié la position des variables de substitution en utilisant le nom de la variable et en passant la variable dans format().

 

La méthode string.Template

L'utilisation de la classe string.Template est un mécanisme plus simple et moins puissant d'interpolation de chaînes de caractères. Nous devons importer la classe Template de la bibliothèque intégrée string de Python pour l'utiliser.

Exemple 8 :

from string import Template

name = 'le Monde'
program ='Python'
new = Template('Bonjour $name ! Voici un programme $program.')
print(new.substitute(name=name, program=program))

Lorsque nous exécutons le programme ci-dessus, le résultat sera le suivant :

Bonjour le Monde ! Voici un programme Python.

Dans cet exemple, nous importons la classe Template de la bibliothèque intégrée string et créons un modèle que nous utilisons pour passer deux variables.

 

Conclusion

Dans cet article, nous avons vu quatre (04) façons d'utiliser l'interpolation de chaînes de caractères en Python qui consiste à remplacer des valeurs de variables à des endroits réservés dans une chaîne. Voici quelques points clés à retenir sur ces méthodes :

Points clés à retenir

  1. La méthode de formatage % est une très ancienne méthode d'interpolation et il n'est pas recommandé de l'utiliser car elle diminue la lisibilité du code.
  2. Dans la méthode str.format(), nous passons l'objet chaîne à la fonction format() pour l'interpolation de la chaîne.
  3. Dans la méthode string.Template, nous créons un modèle en important la classe Template de la bibliothèque intégrée string.
  4. La méthode d'interpolation de chaîne littérale est une méthode d'interpolation puissante, facile à utiliser et qui augmente la lisibilité du code.