Что такое f‑строки?
F‑строка — это обычная строка, перед которой стоит f или F, а внутри строки можно использовать {...} с любыми Python‑выражениями.
name = "TeoBrain"
score = 42
msg = f"Платформа {name}, ваш результат: {score}"
pi_msg = f"Число пи ≈ {3.14159:.2f}" # форматирование прямо в фигурных скобках
calc = f"2 + 2 = {2 + 2}" # выражение внутри {}Под капотом f‑строка превращается в выражение, которое вычисляет все вложенные части и форматирует их через стандартный протокол __format__.
Чем f‑строки удобнее .format() и %
Читаемость: переменные видны там, где используются.
# %-форматирование
msg = "User %s has %d points" % (name, points)
# .format()
msg = "User {} has {} points".format(name, points)
# f‑строка
msg = f"User {name} has {points} points"В f‑строке не нужно сопоставлять порядок аргументов и плейсхолдеров — сразу видно, где какая переменная.
Встроенные выражения и форматирование. В str.format() и "%…" вы разделяете «строку» и «данные», а f‑строка позволяет писать выражения прямо внутри:
f"Через год вам будет {age + 1}"
f"Цена: {price:.2f} BYN"
f"{user.first_name} {user.last_name}"Производительность. Измерения показывают, что f‑строки часто быстрее, чем .format() и во многих сценариях не уступают современным реализациям %-форматирования. Для backend‑кода это не критично в одной строке, но заметно при большом количестве форматирований (логирование, генерация ответов).
Единый современный подход. PEP 498 прямо описывает f‑строки как современный, рекомендуемый способ интерполяции строк в Python 3.6+. В новых проектах, где вы контролируете версию Python, использование f‑строк — де‑факто стандарт.
Для полноты можно отметить: % — старый синтаксис в стиле C, всё ещё используется в некоторых местах, но менее гибок и менее выразителен. .format() остаётся полезным, когда формат шаблона отделён от данных или когда шаблон задаётся извне (конфиг, перевод), где f‑строку использовать нельзя напрямую.
Как ответить на собеседовании
F‑строки — это форматированные строковые литералы: строка с префиксом f, внутри которой можно писать выражения в {}. Они читаются проще, чем .format() и старое %-форматирование, потому что переменные видны прямо в тексте, позволяют сразу указывать формат ({price:.2f}) и обычно работают быстрее. В современном коде на Python 3.6+ f‑строки — основной, рекомендуемый способ форматирования строк.