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

Вспомним как работает конкатенация. Для этого мы соединяем нужные строки (или переменные со строками внутри) с помощью знака +.

first_name = 'Joffrey'
greeting = 'Hello'

print(greeting + ", " + first_name + "!")
# => Hello, Joffrey!

Но при этом в сложных выражениях становится трудно сразу увидеть, какой текст получится на выходе. Особенно если в строке используются пробелы, запятые или кавычки: они начинают мешать восприятию. Даже текущий пример требует небольшого напряжения, чтобы понять, какой получится строка.

По этой причине во многих языках существует операция, которая называется интерполяция. Интерполяция представляет собой способ встраивать значения переменных прямо внутрь строки. В Python для этого используются f-строки (или format-строки). Вот так:

first_name = 'Joffrey'
greeting = 'Hello'

print(f'{greeting}, {first_name}!')
# => Hello, Joffrey!

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

first_name = 'Joff'
greeting   = 'Hello'

f'{greeting}, {first_name}!'
   └───┬───┘  └────┬─────┘
   'Hello'    'Joff'
    └──────┬───────┘
    'Hello, Joff!'

Сравните эти два примера рядом:

print(greeting + ", " + first_name + "!")
print(f'{greeting}, {first_name}!')

Второй вариант проще и понятнее.

Пример

school = 'Hexlet'

what_is_it = f'{school} - online courses'
print(what_is_it)  # => Hexlet - online courses

Такая запись легко читается: пробелы, дефисы и символы видны сразу. Строка выглядит именно так, как она появится в выводе. Это делает код понятным и удобным в поддержке. По этой причине в большинстве языков интерполяция является более предпочтительной чем конкатенация.

Почему это важно

Интерполяция предпочтительнее конкатенации почти во всех современных языках программирования. Она:

  • Упрощает структуру строк.
  • Улучшает читаемость кода.
  • Снижает количество ошибок при работе с пробелами и знаками препинания.

Задание

Интернет-магазин отправляет покупателю подтверждение заказа. Имя покупателя и номер заказа уже хранятся в переменных — нужно подставить их в шаблон сообщения с помощью f-строки.

Используйте переменные username и order_number, чтобы вывести на экран:

Здравствуйте, Анна! Ваш заказ #1337 принят.

Полезное

Команда проекта находится в телеграм-сообществе. Там можно задать любой вопрос и повлиять на проект

Нашли ошибку? Есть что добавить? Пулреквесты приветствуются