Інтерполяція рядка Python

У цій статті ми дізнаємося про інтерполяцію рядків 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:

  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. Літеральний метод рядкової інтерполяції - це потужний метод інтерполяції, який простий у використанні та покращує читабельність коду.

Цікаві статті...