Как использовать строковую интерполяцию в Python?
Python’s F-String for String Interpolation and Formatting
by Joanna Jablonski Oct 18, 2023
Вам предстоит изучить F-строки в Python, которые предоставляют быстрый и удобный способ интерполировать и форматировать строки. Они читаемы, кратки и менее подвержены ошибкам по сравнению с традиционными инструментами интерполяции и форматирования строк, такими как метод .format()
и оператор %
. Кроме того, F-строка более быстрая, чем эти инструменты!
К концу этого руководства вы узнаете, почему F-строки являются таким мощным инструментом, который необходимо изучить и освоить для разработчика Python.
В этом руководстве вы узнаете, как:
- Интерполировать значения, объекты и выражения в свои строки с помощью F-строк
- Форматировать F-строки с использованием мини-языка форматирования строк в Python
- Использовать некоторые интересные возможности F-строк в Python 3.12 и выше
- Решить, когда использовать традиционные инструменты интерполяции вместо F-строк
Чтобы получить наибольшую пользу от этого руководства, вам следует быть знакомым с типом данных “строка” в Python . Также полезным будет иметь опыт работы с другими инструментами интерполяции строк, такими как оператор %
и метод .format()
.
Интерполяция и форматирование строк до Python 3.6
До Python 3.6 у вас было два основных инструмента для интерполяции значений, переменных и выражений в литералах строк:
- Оператор интерполяции строкового (%), или оператор модуля
- Метод
str.format()
Вы получите краткое восстановление этих двух инструментов интерполяции строк в следующих разделах. Вы также узнаете о возможностях форматирования строк.
Использование F-строки для интерполяции строк и форматирования
С появлением Python 3.6 появился новый способ интерполяции строк - F-строка. F-строки позволяют вам интерполировать значения и объекты непосредственно в строку, используя простой и удобочитаемый синтаксис.
Интерполяция значений и объектов в F-строках
Чтобы интерполировать значения и объекты в строку с помощью F-строки, следует использовать префикс f
перед строкой и вставить переменные или выражения в фигурные скобки {}
внутри строки.
Вывод:
F-строка применяет контекст при интерполяции, что означает, что вы можете использовать любую допустимую переменную или выражение Python. Вы также можете выполнять арифметические операции и вызывать функции прямо внутри фигурных скобок.
Встраивание выражений в F-строки
F-строки также позволяют вам встраивать выражения Python непосредственно внутрь строки. Для этого нужно заключить выражение внутри фигурных скобок !{}
.
Вывод:
Вы можете встраивать любые допустимые выражения Python внутри F-строк. Это может включать математические операции, вызовы функций и даже условные выражения.
Форматирование строк с помощью F-строк Python
F-строки также предоставляют полный набор функций для форматирования строк, определенных в мини-языке форматирования строк Python. Мини-язык позволяет вам задавать формат чисел, выравнивать текст, указывать точность чисел с плавающей точкой и многое другое.
Например, вы можете форматировать числа с определенной точностью с помощью модификатора :.Nf
, где N
- это количество знаков после запятой.
Вывод:
Мини-язык форматирования строк также позволяет выполнять выравнивание текста. Вы можете указать ширину поля и выравнивание (<
, >
, ^
) путем добавления соответствующих символов перед двоеточием.
Другие полезные функции F-строк
F-строки предлагают несколько полезных функций, которые вы можете использовать для дополнительного улучшения вашего кода. Вот некоторые из этих функций:
Использование строковых представлений объектов в F-строках
Pутикулы могут использовать строковое представление объектов Python, чтобы включить их в F-строки. Для этого просто вызовите метод __str__()
или __repr__()
объекта внутри фигурных скобок.
Вывод:
Самодокументирование выражений для отладки
В F-строках вы можете включить самодокументируемые выражения, которые помогут вам отладить и понять ваш код. Используйте двоеточие и =
для привязки выражения к имени переменной.
Вывод:
Сравнение производительности: F-строки против традиционных инструментов
F-строки быстрее, чем традиционные инструменты интерполяции и форматирования строк в Python. Они реализованы как более эффективный механизм и лучше оптимизированы для интерполяции строк.
Обратите внимание, что F-строки работают только в Python 3.6 и выше. Поэтому, если вы работаете в более старых версиях Python, вам придется использовать другие инструменты интерполяции строк.
Обновление F-строк: Python 3.12 и далее
Python 3.12 предлагает несколько улучшений в использовании F-строк. Вот некоторые из этих улучшений:
Использование кавычек
В Python 3.12 вы можете использовать кавычки для обозначения начала и конца F-строки. Это позволяет вам встраивать кавычки внутрь строкового литерала без необходимости их экранирования.
Использование обратных слешей
В Python 3.12 вы можете использовать обратный слеш для экранирования специальных символов внутри F-строки. Это позволяет вам встраивать специальные символы, такие как перевод строки (\n
), без необходимости использования режима сырых строк (r
).
Письменные комментарии
В Python 3.12 вы можете добавлять комментарии напрямую в F-строку, добавляя #
после выражения. Это может быть полезно для документации кода и комментариев внутри строк.
Расшифровка сообщений об ошибках F-строк
Если вы столкнулись с ошибкой в F-строке, Python 3.12 предлагает более подробные и понятные сообщения об ошибках, которые помогут вам найти и исправить проблему.
Использование традиционных инструментов форматирования строк вместо F-строк
В некоторых случаях традиционные инструменты форматирования строк могут быть предпочтительнее F-строк. Вот несколько примеров, когда вы можете использовать традиционные инструменты:
Интерполяция словаря
Если вам нужно интерполировать значения из словаря, вы можете использовать оператор %
или метод .format()
.
Ленивая оценка в регистрации
Если вы хотите избежать ненужных вычислений при записи журнала, вы можете использовать традиционные инструменты форматирования, чтобы лениво оценивать выражения.
Запросы к базе данных SQL
При работе с базами данных SQL может быть предпочтительно использовать метод .format()
, чтобы интерполировать значения в строку запроса.
Интернационализация и локализация
Для интернационализации и локализации приложений может быть полезно использовать форматирование строк с использованием gettext
и locale
.
Автоматическое преобразование старой строки в F-строку
Итоги
F-строки - это мощный инструмент для интерполяции и форматирования строк в Python. Они обеспечивают удобный синтаксис, возможность форматирования и некоторые полезные функции, которые помогают сделать ваш код более эффективным и читаемым. Вы теперь знаете, как использовать F-строки и когда предпочтительнее использовать их вместо традиционных инструментов форматирования строк.
Теперь вы готовы использовать F-строки в своих проектах Python и получить преимущества, которые они предлагают!