Термин · Python

f-строки

Также: f-строка, f-строки, ф-строка, ф-строки, f строка, ф строка, fstring, f-стринг, f-стринги, f-string, f-strings, f string, f strings, formatted strings, форматированная строка, форматированные строки, форматирующая строка, форматирующие строки

Коротко

F-строки (formatted string literals) — механизм форматирования строк в Python, позволяющий встраивать выражения и переменные непосредственно в строку с помощью префикса f и фигурных скобок {}.

name = "Иван"
age = 25print(f"Меня зовут {name}, мне {age} лет.")  # Меня зовут Иван, мне 25 лет.

Базовый синтаксис

python
f"Текст {выражение}"f'Текст {выражение}'
f"""Многострочный текст {выражение}"""

Вставка переменных и выражений

python
name = "Иван"
a, b = 10, 5
f"Привет, {name}!"
f"Сумма: {a + b}"
f"Результат: {a / b:.2f}"

Форматирование чисел

СпецификаторРезультатОписание
:.2f12.35Два знака после запятой
:.0f12Без дробной части
:,1,000,000Разделитель тысяч
:_1000000Подчёркивание как разделитель
:%25.00%Проценты
:b1010Двоичная система
:o12Восьмеричная система
:xffШестнадцатеричная система
python
price = 1234.567
f"Цена: {price:.2f}"   # Цена: 1234.57
f"Цена: {price:,.2f}"  # Цена: 1,234.57

Выравнивание и заполнение

СпецификаторОписание
:<10Выравнивание по левому краю
:>10Выравнивание по правому краю
:^10Выравнивание по центру
:0>5Заполнение нулями слева
:*^10Заполнение * с выравниванием по центру
python
f"{'Python':<10}"   # 'Python    '
f"{'Python':>10}"   # '    Python'
f"{'Python':^10}"   # '  Python  '
f"{42:05}"          # '00042'

Преобразование значений

СуффиксОписание
!sПреобразование через str()
!rПреобразование через repr()
!aПреобразование через ascii()
python
name = "Иван\n"
f"{name!s}"  # Обычное строковое представление
f"{name!r}"  # 'Иван\n'
f"{name!a}"  # ASCII-представление

Отладочный вывод через =

Позволяет вывести название выражения вместе с его значением.

python
x = 42
f"{x=}"        # x=42
f"{x + 1=}"    # x + 1=43
f"{x=:05}"     # x=00042

Фигурные скобки в тексте

Чтобы вывести фигурные скобки как обычные символы, удвойте их:

python
f"{{Текст}}"  # {Текст}
f"{{{42}}}"   # {42}

Форматирование дат

python
from datetime import datetime
now = datetime.now()
f"{now:%d.%m.%Y}"       # 18.10.2026
f"{now:%H:%M:%S}"       # 21:50:00
f"{now:%d.%m.%Y %H:%M}" # Дата и время

Формат даты и времени определяется спецификаторами strftime.

Вложенные выражения форматирования

python
precision = 3
value = 3.14159265
f"{value:.{precision}f}"  # 3.142

Многострочные f-строки

python
name = "Иван"
age = 25
message = f"""
Имя: {name}
Возраст: {age}
"""

Raw f-строки

Префикс r отключает обработку большинства escape-последовательностей в обычном тексте строки.

python
path = r"C:\Users\Ivan"
f"Путь: {path}"
rf"C:\Users\{name}"

Вызовы функций и методов

python
name = "иван"
f"{name.upper()}"  # ИВАН
f"{len(name)}"     # 4
f"{name.title()}"  # Иван

Важные особенности

  • Выражения внутри {} вычисляются при выполнении f-строки.
  • F-строки возвращают объект str, но сами по себе не выполняют вывод на экран.
  • Для форматирования можно использовать практически любые выражения Python, включая вызовы функций и обращения к атрибутам.
  • Начиная с Python 3.12, синтаксис f-строк стал гибче: в выражениях разрешены, в частности, повторное использование кавычек строки и обратные слеши в допустимых контекстах.
  • F-строки не предназначены для безопасной подстановки пользовательских значений в SQL-запросы: для SQL следует использовать параметры запросов.

Тренажёр запоминания

Проверьте себя

1 вопрос
+15 XP

Вопрос: Что выведет выражение f"Сумма: {2 + 3}"?

Войти, чтобы проверить

Войдите, чтобы проверить ответ и получить XP.

Ревизия 4 · обновлено 20.10.2026