Как использовать функцию interpolate string в Python?
Python’s F-String для интерполяции и форматирования строк
by Joanna Jablonski Oct 18, 2023
Python f-строки предоставляют быстрый способ интерполяции и форматирования строк. Они читабельны, кратки и менее подвержены ошибкам, чем традиционные инструменты интерполяции и форматирования строк, такие как метод .format()
и оператор %
. F-строка также немного быстрее этих инструментов!
По окончании этого руководства вы узнаете, почему f-строки так мощный инструмент, который необходимо изучить и освоить как разработчику Python.
В этом руководстве вы узнаете, как:
- Интерполировать значения, объекты и выражения в ваши строки, используя f-строки
- Форматировать f-строки с помощью мини-языка форматирования строк в Python
- Использовать некоторые полезные функции f-строк в Python 3.12 и выше
- Решить, когда лучше использовать традиционные инструменты интерполяции вместо f-строк
Чтобы извлечь максимальную пользу из этого руководства, вам следует быть знакомым с типом данных строки в Python. Кроме того, то быть полезно иметь опыт работы с другими инструментами интерполяции строк, такими как оператор %
и метод .format()
.
Интерполяция и форматирование строк до Python 3.6
До Python 3.6 у вас было два основных инструмента для интерполяции значений, переменных и выражений внутри строковых литералов:
- Оператор интерполяции строк (
%
), или оператор модуля - Метод
str.format()
Вы получите краткую информацию о этих двух инструментах интерполяции строк в следующих разделах. Вы также узнаете о возможностях форматирования строк.
Оператор модуля, %
Оператор модуля (%
) был основным инструментом интерполяции строк в Python до появления f-строк. Он использует специальные символы, такие как %d
, %s
, %f
, чтобы вставить значения в строку.
Метод str.format()
Метод str.format()
предоставляет более гибкую и мощную алтернативу оператору %
. Он использует фигурные скобки {}
для указания места вставки значений.
Интерполяция строк с помощью f-строк в Python
F-строки стали доступными в Python 3.6 и предлагают еще более простой и читабельный синтаксис для интерполяции значений, объектов и выражений в строковые литералы. F-строка обозначается префиксом f
перед открывающей кавычкой и может содержать выражения, заключенные в фигурные скобки {}
.
Интерполяция значений и объектов в f-строках
F-строки позволяют легко интерполировать значения и объекты внутри строковых литералов.
Вставка выражений в f-строки
F-строки также позволяют вставлять выражения внутрь фигурных скобок {}
. Эти выражения будут вычислены и интерполированы в строку.
Форматирование строк с помощью f-строк в Python
F-строки также поддерживают форматирование строк с помощью мини-языка форматирования строк в Python. Мини-язык предоставляет различные спецификаторы формата, такие как заполнения, выравнивание, указание числа знаков после запятой и многое другое.
Другие полезные функции f-строк
F-строки предлагают и другие полезные функции, которые не были доступны в традиционных инструментах интерполяции.
Использование строки представления объекта в f-строках
F-строки позволяют использовать специальные методы __str__
и __repr__
, чтобы получить строковое представление объекта, и вставить его в строку.
Самодокументирующие выражения для отладки
F-строки позволяют включать выражения и их строковые представления прямо внутрь строки для отладки и проверки.
Сравнение производительности: f-строки против традиционных инструментов
F-строки обычно являются более быстрыми и эффективными в сравнении с традиционными инструментами форматирования строк, такими как оператор %
и метод .format()
.
Обновление f-строк: Python 3.12 и далее
Python 3.12 предлагает несколько улучшений в использовании f-строк.
Использование кавычек
С помощью f-строк в Python 3.12 можно использовать кавычки, чтобы вставить кавычки внутрь строки.
Использование обратных слешей
F-строки в Python 3.12 также поддерживают использование обратных слешей, чтобы вставить специальные символы, такие как перевод строки или символ табуляции.
Запись комментариев внутри f-строк
Python 3.12 позволяет вам использовать комментарии внутри f-строк, чтобы сделать их более понятными и самодокументирующимися.
Разбор сообщений об ошибках f-строк
Python 3.12 предлагает более подробные сообщения об ошибках f-строк, которые помогают быстро идентифицировать и исправить проблемы с форматированием.
Использование традиционных инструментов форматирования строк вместо f-строк
Несмотря на все преимущества f-строк, в некоторых ситуациях может быть полезно использовать традиционные инструменты форматирования строк, особенно при работе с определенными типами данных или в конкретных сценариях.
Интерполяция словаря
F-строки не предоставляют простого способа интерполяции значений из словаря. В этом случае может быть удобнее использовать метод .format_map()
или оператор %
.
Ленивая оценка в логировании
При работе с логированием, особенно при использовании дорогостоящих вычислений или функций, может быть полезно использовать оператор %
для ленивой оценки значений.
Запросы к базе данных SQL
Для форматирования запросов к базе данных SQL, особенно при работе с динамическими запросами, может быть удобнее использовать метод .format()
или встроенные функции форматирования SQL.
Интернационализация и локализация
При работе с интернационализацией и локализацией, где необходимо поддерживать различные языки и культуры, может быть полезно использовать специализированные инструменты и библиотеки, такие как gettext
.
Автоматическое преобразование старых строк в f-строки
Если у вас есть старые строки, использующие оператор %
или метод .format()
, вы можете автоматически преобразовать их в f-строки с помощью модуля futurize
.
Главные моменты
- F-строки предоставляют простой и краткий способ интерполяции и форматирования строк в Python.
- Они могут легко интерполировать значения, объекты и выражения в строковые литералы.
- F-строки также поддерживают форматирование с помощью мини-языка форматирования строк в Python.
- Они предлагают ряд полезных функций, таких как использование строкового представления объекта и самодокументирующие выражения.
- F-строки обычно более быстры и эффективны по сравнению с традиционными инструментами форматирования строк.
- Python 3.12 предлагает дополнительные улучшения в использовании f-строк.
- Некоторые сценарии по-прежнему могут требовать использования традиционных инструментов интерполяции и форматирования.