У цій статті ми дізнаємося про інтерполяцію рядків python. Python підтримує різні способи форматування текстових рядків, до них належать% -formatting, sys.format (), string.Template та f-рядки.
Інтерполяція рядків - це процес заміщення значень змінних на заповнювачі в рядку. Наприклад, якщо у вас є шаблон для привітання з людиною, як-от "Привіт (Ім'я особи), приємно познайомитися!", Ви хотіли б замінити заповнювач для імені людини справжнім іменем. Цей процес називається інтерполяцією рядків.
f-струни
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))
Коли ми запустимо вищезазначену програму, результат буде
Привіт Світ! Це python.
У наведеному вище прикладі ми використовували дві рядкові назви змінних та програму. Ми обернули обидві змінні в дужки ()
.
Також можна посилатися на заміни змінних за назвою у нашому рядку формату, якщо ми передаємо відображення %
оператору:
Приклад 5:
name = 'world' program ='python' print(‘Hello %(name)s! This is %(program)s.’%(name,program))
Коли ми запустимо вищезазначену програму, результат буде
Привіт Світ! Це python.
Це робить наші рядки формату простішими в обслуговуванні та легшими для модифікації в майбутньому. Нам не потрібно турбуватися про порядок значень, які ми передаємо, і про порядок значень, на які посилаються в рядку формату.
Str.format ()
У цьому форматуванні рядка ми використовуємо format()
функцію для рядкового об'єкта та фігурних дужок ()
, а рядовий об'єкт у format()
функції замінюється фігурними дужками ()
. Ми можемо використовувати format()
функцію для простого позиційного форматування, як і %
форматування.
Приклад 6:
name = 'world' print('Hello, ()'.format(name))
Коли ми запустимо вищезазначену програму, результат буде
Привіт Світ
У цьому прикладі ми використовували фігурні дужки ()
та format()
функції для передачі об'єкту name. Ми отримали значення name замість фігурних дужок ()
у вихідних даних.
Ми можемо посилатися на наші заміни змінних за назвою та використовувати їх у будь-якому порядку, який ми хочемо. Це досить потужна функція, оскільки вона дозволяє змінити порядок відображення без зміни аргументів, переданих у функцію форматування.
Приклад 7:
name = 'world' program ='python' print('Hello (name)!This is(program).'.format(name=name,program=program))
Коли ми запустимо вищезазначену програму, результат буде
Привіт, світ! Це 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:
- %-format method is very old method for interpolation and is not recommended to use as it decrease the code readability.
- In str.format() method we pass the string object to the format() function for string interpolation.
- У методі шаблону ми робимо шаблон, імпортуючи клас шаблону із вбудованого рядкового модуля.
- Літеральний метод рядкової інтерполяції - це потужний метод інтерполяції, який простий у використанні та покращує читабельність коду.