Интерполяция строк Python

В этой статье мы узнаем об интерполяции строк в Python. Python поддерживает несколько способов форматирования текстовых строк, включая% -форматирование, sys.format (), string.Template и f-strings.

Строчная интерполяция - это процесс замены значений переменных на заполнители в строке. Например, если у вас есть шаблон для приветствия человека типа «Привет (имя человека), приятно познакомиться!», Вы хотите заменить заполнитель для имени человека на настоящее имя. Этот процесс называется строковой интерполяцией.

ф-струны

В Python 3.6 добавлен новый метод интерполяции строк, называемый интерполяцией литеральной строки, и введен новый префикс литерала f. Этот новый способ форматирования строк эффективен и прост в использовании. Он обеспечивает доступ к встроенным выражениям Python внутри строковых констант.

Пример 1:

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

Когда мы запустим вышеуказанную программу, вывод будет

Привет мир! Это Python

В приведенном выше примере буквальный префикс fуказывает Python восстановить значение двух строковых переменных с именем и программой в фигурных скобках (). Итак, когда printмы получим вышеуказанный результат.

Эта новая строковая интерполяция является мощной, поскольку мы можем встраивать произвольные выражения Python, с которыми мы можем даже выполнять встроенную арифметику.

Пример 2:

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

Когда мы запустим вышеуказанную программу, вывод будет

 12 умножить на 3 будет 36.

В приведенной выше программе мы выполняли встроенную арифметику, которая возможна только с помощью этого метода.

% -форматирование

Строки в Python имеют уникальную встроенную операцию, доступ к которой можно получить с помощью %оператора. Используя, %мы можем очень легко выполнить простую интерполяцию строк.

Пример 3:

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

Когда мы запустим вышеуказанную программу, вывод будет

 Привет мир

В приведенном выше примере мы использовали два %sформат строку спецификатора и две строки Helloи Worldв круглых скобках (). Получили Hello Worldкак на выходе. %sСпецификатор строкового формата сообщает Python, где подставить значение.

Синтаксис форматирования строки немного меняется, если мы хотим сделать несколько замен в одной строке, и поскольку %оператор принимает только один аргумент, нам нужно обернуть правую часть в кортеж, как показано в примере ниже.

Пример 4:

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

Когда мы запустим вышеуказанную программу, вывод будет

Привет мир! Это питон.

В приведенном выше примере мы использовали две строковые переменные: имя и программу. Мы заключили обе переменные в круглые скобки ().

Также можно ссылаться на подстановки переменных по имени в нашей строке формата, если мы передадим сопоставление %оператору:

Пример 5:

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

Когда мы запустим вышеуказанную программу, вывод будет

Привет мир! Это питон.

Это упрощает обслуживание наших форматных строк и упрощает их изменение в будущем. Нам не нужно беспокоиться о порядке значений, которые мы передаем, с порядком значений, на которые есть ссылки в строке формата.

Str.format ()

В этом строковом форматировании мы используем format()функцию для строкового объекта и фигурных скобок (), строковый объект в format()функции подставляется вместо фигурных скобок (). Мы можем использовать эту format()функцию для простого позиционного форматирования, точно так же, как %форматирование.

Пример 6:

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

Когда мы запустим вышеуказанную программу, вывод будет

 Привет мир

В этом примере мы использовали фигурные скобки ()и format()функцию для передачи объекта имени. В выводе мы получили значение имени вместо фигурных скобок ().

Мы можем ссылаться на наши подстановки переменных по имени и использовать их в любом порядке. Это довольно мощная функция, поскольку она позволяет изменять порядок отображения без изменения аргументов, передаваемых функции форматирования.

Пример 7:

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

Когда мы запустим вышеуказанную программу, вывод будет

 Привет, мир! Это питон.

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. В методе шаблона мы создаем шаблон, импортируя класс шаблона из встроенного строкового модуля.
  4. Метод Literal String Interpolation - это мощный метод интерполяции, который прост в использовании и повышает читаемость кода.

Интересные статьи...