Рубрики
Без рубрики

Python F-струны – PEP 498 – литеральная интерполяция строк

Python F-strings, форматирование строки Python, Python 3.6 F-струны, литеративная интерполяция литературы Python, Python PEP 498, формат строки в примерах Python 3.

Автор оригинала: Pankaj Kumar.

Python F-струны или отформатированные струны – это новый способ форматирования строк. Эта функция была введена в Python 3.6 под PEP-498. Это также называется Литеральная струнная интерполяция Отказ

Почему нам нужны F-струны?

Python предоставляет различные способы форматирования строки. Давайте быстро посмотрим на них и какие у них проблемы.

  • % форматирования – Отлично подходит для простого форматирования, но ограниченная поддержка Строки , Ints, только удваивает. Мы не можем использовать его с объектами.
  • Шаблонные строки – Это очень простое. Шаблонные строки Работа с аргументами ключевых слов, как Словарь Только. Нам не разрешено звонить любым Функция и аргументы должны быть строки.
  • Формат строки () – Python String Формат () Функция была введена для преодоления проблем и ограниченных особенностей%-формат и шаблон строк. Однако это слишком многословский. Давайте посмотрим на его полкость простым примером.

Python F-strings работает практически похожими, как функция формата (), но удаляет всю извлеченность, которая имеет функцию формата (). Давайте посмотрим, как легко мы можем отформатировать вышеупомянутую строку с помощью F-строки.

>>> f'My age is {age}'
'My age is 40.'

Python F-strings вводится, чтобы иметь Минимальный синтаксис для форматирования строки. Выражения оцениваются во время выполнения. Если вы используете версию Python 3.6 или выше, вы должны использовать F-строки для всех ваших требований к форматированию строки.

Примеры Python F-Strings

Давайте посмотрим на простой пример F-Strings.

name = 'Pankaj'
age = 34

f_string = f'My Name is {name} and my age is {age}'

print(f_string)
print(F'My Name is {name} and my age is {age}')  # f and F are same

name = 'David'
age = 40

# f_string is already evaluated and won't change now
print(f_string)

Выход:

My Name is Pankaj and my age is 34
My Name is Pankaj and my age is 34
My Name is Pankaj and my age is 34

Python выполняет операторы по одному на одно и после оценки выражений F-строки, они не изменяются, даже если изменяется значение выражения выражения. Вот почему в приведенных выше фрагментах кода F_STRING значение остается той же, даже после того, как «имя» и «возрастная» переменная изменилась во второй части программы.

1. F-струны с выражениями и преобразованиями

Мы можем использовать F-струны для преобразования DateTime в определенный формат. Мы также можем проводить математические выражения в F-струнах.

from datetime import datetime

name = 'David'
age = 40
d = datetime.now()

print(f'Age after five years will be {age+5}')  # age = 40
print(f'Name with quotes = {name!r}')  # name = David
print(f'Default Formatted Date = {d}')
print(f'Custom Formatted Date = {d:%m/%d/%Y}')

Выход:

Age after five years will be 45
Name with quotes = 'David'
Default Formatted Date = 2018-10-10 11:47:12.818831
Custom Formatted Date = 10/10/2018

2. F-струны поддерживают сырые струны

Мы можем создать необработанные струны, используя F-Strings.

print(f'Default Formatted Date:\n{d}')
print(fr'Default Formatted Date:\n {d}')

Выход:

Default Formatted Date:
2018-10-10 11:47:12.818831
Default Formatted Date:\n 2018-10-10 11:47:12.818831

3. F-струны с объектами и атрибутами

Мы также можем получить доступ к атрибутам объекта в F-строках.

class Employee:
    id = 0
    name = ''

    def __init__(self, i, n):
        self.id = i
        self.name = n

    def __str__(self):
        return f'E[id={self.id}, name={self.name}]'


emp = Employee(10, 'Pankaj')
print(emp)

print(f'Employee: {emp}\nName is {emp.name} and id is {emp.id}')

Выход:

E[id=10, name=Pankaj]
Employee: E[id=10, name=Pankaj]
Name is Pankaj and id is 10

4. Функции F-Strings

Мы также можем вызывать функции в форматировании F-Strings.

def add(x, y):
    return x + y


print(f'Sum(10,20) = {add(10, 20)}')

Выход: Сумма (10,20)

5. F-строка с пробелами

Если в выражении в выражении есть ведущие или конечные пробелы, они игнорируются. Если литеральная строковая часть содержит пробелы, то они сохраняются.

>>> age = 4 * 20
>>> f'   Age = {  age   }  '
'   Age = 80  '

6. лямбда выражения с F-струнами

Мы можем использовать выражения лямбда внутри выражений F-String.

x = -20.45
print(f'Lambda Example: {(lambda x: abs(x)) (x)}')

print(f'Lambda Square Example: {(lambda x: pow(x, 2)) (5)}')

Выход:

Lambda Example: 20.45
Lambda Square Example: 25

7. F-струны Разные примеры

Давайте посмотрим на некоторые разные примеры Python F-струн.

print(f'{"quoted string"}')
print(f'{{ {4*10} }}')
print(f'{{{4*10}}}')

Выход:

quoted string
{ 40 }
{40}

Это все для Python отформатированные струны aka f-strings.

Ссылка: Pep-498 , Официальная документация