SkillPy

f-строки в Python: форматирование строк просто и читаемо

Время чтения10 мин чтения
Опубликовано20 мая 2026 г.
Легко
Синтаксис
Начинающим
Строки
Python
f-строки в Python: форматирование строк просто и читаемо
Кот-наставник

— Знаешь, что бесит в Python больше всего? Склеивать строки плюсами. print("Привет, " + name + "!") — куча кавычек, легко запутаться.

— Но в Python есть супер-инструмент — f-строки. Сейчас покажу, как они работают!

Проблема с конкатенацией

Допустим, нужно собрать строку из переменных. Старый способ

name = "Алексей"
age = 25

# Приходится превращать число в строку через str(),
# следить за пробелами... Ужас!
message = name + ", тебе " + str(age) + " лет!"

Решение: f-строки

f-строка (formatted string literal) — это строка, перед которой стоит буква f. Внутри такой строки можно писать переменные прямо в фигурных скобках {}.

Вот как выглядит тот же пример с f-строкой

name = "Алексей"
age = 25

# Новый способ с f-строкой:
message = f"{name}, тебе {age} лет!"
print(message)
Алексей, тебе 25 лет!
Кот-наставник

— Видишь букву f перед кавычками? Это и есть ключ: она говорит Python — «внутри есть код, который надо выполнить». Всё, что в {}, Python заменяет на значения.

— Даже числа сам превращает в строки!

f-строки появились в Python 3.6 (2016) и с тех пор стали стандартом. Если видишь код с % или .format() — скорее всего, он просто написан давно.

Как работают f-строки?

  • Ставишь букву f (или F) перед открывающей кавычкой
  • Пишешь текст как обычно
  • Где нужна переменная — оборачиваешь её в {}

Простой пример

score = 1000
print(f"Твой счёт: {score} очков")
Твой счёт: 1000 очков

Python видит f"...", находит всё что в {}, вычисляет и подставляет результат в строку.

Выражения внутри f-строк

Внутри {} можно не только писать переменные, но и выполнять любые выражения:

Арифметика внутри f-строки

a = 5
b = 10

print(f"Сумма: {a + b}")
print(f"Половина от b: {b / 2}")
print(f"a в квадрате: {a ** 2}")
Сумма: 15
Половина от b: 5.0
a в квадрате: 25

Работают вызовы функций (встроенных и своих) и методы строк — что угодно:

name = "python"
print(f"Язык: {name.upper()}")
print(f"Длина: {len(name)} символов")
Язык: PYTHON
Длина: 6 символов

В этом примере .upper() сначала преобразует строку, а f-строка подставляет готовый результат. Изменение регистра, поиск, замена, разделение и сборка текста подробно разобраны в гайде Методы строк в Python: split, join, replace и другие.

Форматирование чисел в f-строках

Одна из самых полезных фич f-строк — управление форматом вывода через двоеточие :.

Округление дробных чисел

Управляем количеством знаков после точки

score = 100 / 3
print(f"Обычный вывод: {score}")
print(f"2 знака после точки: {score:.2f}")
print(f"1 знак: {score:.1f}")
print(f"Без дробной части: {score:.0f}")
Обычный вывод: 33.333333333333336
2 знака после точки: 33.33
1 знак: 33.3
Без дробной части: 33

.2f означает: 2 знака после точки, формат float. Меняй цифру — меняется точность.

Разделитель тысяч

Большие числа с разделителями

population = 12345678
print(f"Население: {population:,}")
print(f"С пробелами: {population:_}")
Население: 12,345,678
С пробелами: 12_345_678

Проценты

Python сам умножает на 100 и добавляет %

ratio = 0.856
print(f"Точность модели: {ratio:.1%}")
Точность модели: 85.6%

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

f-строки умеют форматировать объекты datetime через спецификаторы strftime:

from datetime import datetime

now = datetime.now()

print(f"Сегодня: {now:%d.%m.%Y}")
print(f"Время: {now:%H:%M}")
print(f"Полный формат: {now:%d %B %Y, %A}")
Сегодня: 20.05.2026
Время: 17:30
Полный формат: 20 мая 2026, вторник

Отладочный формат = (Python 3.8+)

Добавь = после выражения — Python выведет и имя переменной, и её значение:

x = 42
name = "Alice"

print(f"{x=}")
print(f"{name=}")
print(f"{x * 2=}")
x=42
name='Alice'
x * 2=84

Выравнивание текста

Полезно для таблиц и красивого вывода в консоли:

Выравниваем столбцы

items = [("Python", 95), ("JavaScript", 82), ("Go", 71)]

for lang, score in items:
    print(f"{lang:<12} | {score:>5} баллов")
var1

Спецификаторы выравнивания:

  • :<12 — выравнивание влево, ширина 12 символов
  • :>5 — выравнивание вправо, ширина 5 символов
  • :^10 — по центру, ширина 10 символов

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

Для длинных текстов используй тройные кавычки

name = "Алексей"
level = 5
xp = 1250

profile = f"""
Игрок: {name}
Уровень: {level}
Опыт: {xp} XP
До следующего уровня: {2000 - xp} XP
"""
print(profile)
Игрок: Алексей\n Уровень: 5\n Опыт: 1250 XP\n До следующего уровня: 750 XP

Внутри {} работает тернарный оператор — можно выбирать текст по условию прямо в строке. Если эта конструкция пока незнакома, сначала посмотри if, elif и else в Python: условия с примерами.

Тернарный оператор в f-строке:

age = 17
print(f"Статус: {'взрослый' if age >= 18 else 'несовершеннолетний'}")

score = 85
print(f"Результат: {'сдал' if score >= 60 else 'не сдал'}")

items = []
print(f"Корзина: {'пуста' if not items else f'{len(items)} товаров'}")
Статус: несовершеннолетний
Результат: сдал
Корзина: пуста

Вложенные f-строки (Python 3.12+)

Начиная с Python 3.12, внутри {} можно использовать другие f-строки — без ограничений на кавычки:

Вложенные f-строки:

users = ["Алексей", "Мария", "Иван"]

# Python 3.12+: f-строка внутри f-строки
print(f"Пользователи: {', '.join(f'@{name.lower()}' for name in users)}")
Пользователи: @алексей, @мария, @иван

f-строки vs другие способы форматирования

СпособСинтаксисКогда появился
Конкатенация"Привет, " + nameБыла всегда
%-форматирование"Привет, %s" % namePython 2
.format()"Привет, {}".format(name)Python 2.6
f-строкиf"Привет, {name}"Python 3.6

f-строки — самый читаемый и быстрый способ. Используй их по умолчанию. Исключение: когда строка-шаблон хранится в переменной (тогда нужен .format()).

Частые ошибки

Сравни

name = "Мир"
print("Привет, {name}!")   # Без f — просто текст
print(f"Привет, {name}!")  # С f — подстановка
Привет, {name}!
Привет, Мир!

Экранирование фигурных скобок

print(f"Словарь: {{'key': 'value'}}")
Словарь: {'key': 'value'}

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

Главное запомнить

  1. f-строка = f"текст {переменная}"

    Подставляет значения переменных и выражений прямо в строку

  2. Внутри {} работает любой Python-код

    Арифметика, вызовы функций, методы — всё что возвращает значение

  3. Форматирование через :

    :.2f — округление, :, — разделитель тысяч, :.1% — проценты, :%d.%m.%Y — даты

  4. {x=} — отладка в одно действие

    Выводит и имя переменной, и значение (Python 3.8+)

  5. f-строки — стандарт с Python 3.6

    Если сомневаешься что использовать — используй их

Кот-наставник

— Вот и всё! Теперь ты можешь собирать любые строки красиво и читаемо. Забудь про склейку плюсами.

— Попробуй сам — напиши пару f-строк и посмотри, как Python всё подставляет.

f-строки запоминаются, когда пишешь их сам!

На SkillPy это не сухая теория, а интерактивная практика: ты подставляешь переменные, форматируешь числа и даты, а AI-наставник сразу проверяет результат и подсказывает, где ошибся.