Interpolation de chaîne Python

Dans cet article, nous allons découvrir l'interpolation de chaîne python. Python prend en charge plusieurs façons de formater les chaînes de texte, notamment le% -formatting, sys.format (), string.Template et f-strings.

L'interpolation de chaîne est un processus qui remplace les valeurs de variables par des espaces 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é du nom de la personne par un nom réel. Ce processus est appelé interpolation de chaîne.

chaînes f

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

Exemple 1:

 name = 'World' program = 'Python' print(f'Hello (name)! This is (program)')

Lorsque nous exécutons le programme ci-dessus, la sortie sera

Bonjour le monde! C'est Python

Dans l'exemple ci-dessus, le préfixe littéral findique à Python de restaurer la valeur de deux noms de variable de chaîne et de programme entre accolades (). Donc, cela lorsque printnous obtenons la sortie ci-dessus.

Cette nouvelle interpolation de chaîne est puissante car nous pouvons intégrer des expressions Python arbitraires, nous pouvons même faire de l'arithmétique en ligne avec elle.

Exemple 2:

 a = 12 b = 3 print(f'12 multiply 3 is (a * b).')

Lorsque nous exécutons le programme ci-dessus, la sortie sera

 12 multiplié par 3 est 36.

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

%-mise en page

Les chaînes en Python ont une opération intégrée unique accessible avec l' %opérateur. En utilisant, %nous pouvons faire une interpolation de chaîne simple très facilement.

Exemple 3:

 print("%s %s" %('Hello','World',))

Lorsque nous exécutons le programme ci-dessus, la sortie sera

 Bonjour le monde

Dans l'exemple ci-dessus, nous avons utilisé deux %sspécificateurs de format de chaîne et deux chaînes Helloet Worldentre parenthèses (). Nous avons eu Hello Worldcomme sortie. %sLe spécificateur de format de chaîne indique à Python où remplacer la valeur.

La syntaxe de mise en forme des chaînes change légèrement, si nous voulons effectuer plusieurs substitutions dans une seule chaîne et que 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 = 'world' program ='python' print('Hello %s! This is %s.'%(name,program))

Lorsque nous exécutons le programme ci-dessus, la sortie sera

Bonjour le monde! C'est python.

Dans l'exemple ci-dessus, nous avons utilisé deux noms de variable de chaîne et programme. Nous avons mis les deux variables entre parenthèses ().

Il est également possible de faire référence à des substitutions de variables par nom dans notre chaîne de format, si nous passons un mappage à l' %opérateur:

Exemple 5:

 name = 'world' program ='python' print(‘Hello %(name)s! This is %(program)s.’%(name,program))

Lorsque nous exécutons le programme ci-dessus, la sortie sera

Bonjour le monde! C'est python.

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

Str.format ()

Dans cette mise en forme de chaîne, nous utilisons la format()fonction sur un objet chaîne et des accolades (), l'objet chaîne dans format()function est remplacé à la place des accolades (). Nous pouvons utiliser la format()fonction pour faire un formatage positionnel simple, tout comme le %formatage.

Exemple 6:

 name = 'world' print('Hello, ()'.format(name))

Lorsque nous exécutons le programme ci-dessus, la sortie sera

 Bonjour le monde

Dans cet exemple, nous avons utilisé des accolades ()et une format()fonction pour passer l'objet de nom. Nous avons obtenu la valeur de nom à la place d'accolades ()dans la sortie.

Nous pouvons faire référence à nos substitutions de variables 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 changer les arguments passés à la fonction format.

Exemple 7:

 name = 'world' program ='python' print('Hello (name)!This is(program).'.format(name=name,program=program))

Lorsque nous exécutons le programme ci-dessus, la sortie sera

 Bonjour tout le monde! C'est python.

In this example we specified the variable substitutions place using the name of variable and pass the variable in format().

Template Strings

Template Strings is simpler and less powerful mechanism of string interpolation. We need to import Template class from Python’s built-in string module to use it.

Example 8:

 from string import Template name = 'world' program ='python' new = Template('Hello $name! This is $program.') print(new.substitute(name= name,program=program))

When we run the above program, the output will be

 Hello world! This is python.

In this example we import Template class from built-in string module and made a template which we used to pass two variable.

Key Points to Remember:

  1. %-format method is very old method for interpolation and is not recommended to use as it decrease the code readability.
  2. In str.format() method we pass the string object to the format() function for string interpolation.
  3. Dans la méthode de modèle, nous créons un modèle en important une classe de modèle à partir du module de chaîne intégré.
  4. La méthode d'interpolation de chaîne littérale est une méthode d'interpolation puissante qui est facile à utiliser et augmente la lisibilité du code.

Articles intéressants...