F-строки Python: расширенная интерполяция строк

Узнайте, как форматировать строки в Python с помощью F-строк. Оценка основного выражения, форматирование с плавающей запятой, печать даты и времени и самодокументируемый синтаксис.

Попробуйте в редакторе

Обзор

Форматирование строк — это задача, которую разработчики выполняют ежедневно. Исторически форматирование Python основывалось на форматировании `%` в стиле C или методе `.format()`. Несмотря на свою функциональность, эти старые стили синтаксиса часто приводили к созданию многословного и трудночитаемого кода. ВPython 3.6 представлены форматированные строковые литералы, широко известные как F-строки. F-строки предоставляют краткий, читаемый и высокооптимизированный синтаксис для вставки переменных и выражений непосредственно в строковые литералы.

Чтобы создать F-строку, вы добавляете к строковому литералу префикс `f` или `F` (например, `f"Hello {name}"`). Любая переменная или выражение Python, помещенное в фигурные скобки `{...}`, оценивается во время выполнения и автоматически преобразуется в строку. F-строки предназначены не только для переменных; вы можете вызывать функции, выполнять математические вычисления и даже получать доступ к значениям словаря внутри фигурных скобок, устраняя необходимость во временных переменных.

F-строки также имеют богатый язык форматирования. Добавляя двоеточие `:` внутри фигурных скобок, вы можете указать правила форматирования. Например, `{value:.2f}` округляет число с плавающей точкой до двух десятичных знаков, `{num:03d}` дополняет целое число ведущими нулями, а `{date:%Y-%m-%d}` форматирует объект datetime. ВPython 3.8+ в F-строках появился синтаксис отладки `{variable=}`, который автоматически печатает как имя переменной, так и ее значение, что делает отладку быстрой и безболезненной.

Код и вывод выполнения

Демонстрация форматирования чисел с плавающей запятой, оценки выражений и самодокументируемой отладки по знаку равенства.

name = "Charlie"
price = 19.995
quantity = 3

# Basic interpolation and math evaluation
receipt = f"Customer: {name} | Total: ${price * quantity:.2f}"
print(receipt)

# Padding and alignment
number = 42
padded = f"ID: {number:05d}"
print(padded)

# Self-documenting debugging syntax (Python 3.8+)
value = 100
print(f"Debug output: {value=}")
Терминальный выход
Customer: Charlie | Total: $59.99
ID: 00042
Debug output: value=100

Пошаговая реализация

  • Уточнение числовых результатов в отчетах и информационных панелях
  • Создание динамических запросов SQL или полезных данных запроса API.
  • Печать операторов быстрой отладки во время локального тестирования

Часто задаваемые вопросы

Являются ли F-строки быстрее, чем другие методы форматирования строк?

Да, F-строки быстрее, чем форматирование % и .format(), поскольку они оцениваются во время выполнения как оптимизированный байт-код, а не анализируются при выполнении.

Как напечатать буквальные фигурные скобки в F-строке?

Вы можете избежать буквальных фигурных скобок, удвоив их, например, f"{{Hello}}" напечатает буквальный текст '{Hello}'.

Связанные темы

Рекомендуемые ресурсы Python

Расширьте свои знания с помощью соответствующих интерактивных руководств, шпаргалок и сравнений кода.