Короткий ответ
F-строки (f-strings) — форматированные строковые литералы, появившиеся в Python 3.6: перед строкой ставится буква f, а переменные и выражения подставляются прямо внутри фигурных скобок. Они лаконичнее метода .format(), читаются лучше и обычно работают быстрее.
Как это работает подробнее
Преимущества f-строк связаны с синтаксисом, читаемостью и производительностью.
- Встраивание выражений. F-строка подставляет переменные и выражения прямо в литерал, тогда как в
.format()имена приходится дублировать в аргументах. - Любые выражения. Внутри фигурных скобок допустимо любое валидное выражение Python, например
f'{price * (1 + tax_rate):.2f}'— цена вычисляется прямо в строке и сразу форматируется с двумя знаками после запятой. - Скорость. Значения вычисляются при разборе строкового литерала, а не через вызов отдельного метода, поэтому f-строки, как правило, быстрее
.format(). - Наследие. Метод
.format()и оператор%всё ещё встречаются в старых проектах, поэтому их нужно уметь читать.
Пример кода
Метод .format() и f-строка
name = 'Alice'
user_id = 42
# Метод .format()
print('User {name} has ID {user_id}.'.format(name=name, user_id=user_id))
# F-строка
print(f'User {name} has ID {user_id}.')Что использовать на практике
- Новый код. Для форматирования в новых проектах используй именно f-строки — это современный стандарт.
- Вычисления и форматы. Внутри скобок удобно сразу применять спецификаторы вроде
.2fи выполнять арифметические операции. - Совместимость. Если проект работает на Python ниже 3.6, f-строки недоступны — тогда подойдёт метод
.format().