str.format()

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

Сигнатура

str.format(*args, **kwargs)

Параметры

  • *args — позиционные аргументы. Подставляются в поля {} или {0}, {1}, …

  • **kwargs — именованные аргументы. Подставляются в поля вида {name}.

Поля замены могут содержать «спецификатор формата» после двоеточия, например {:>10}, {:.2f}, {:08d}.

Возвращаемое значение

Новая строка (str) с подставленными значениями.

Примеры использования

Пример 1. Позиционная подстановка.

name = "AlashEd"
year = 2026
s = "Проект {} запущен в {}".format(name, year)
print(s)
Проект AlashEd запущен в 2026

Пример 2. Именованные параметры.

s = "Плата: {board}, частота: {mhz} МГц".format(board="ESP32", mhz=240)
print(s)
Плата: ESP32, частота: 240 МГц

Пример 3. Спецификаторы формата — числа и выравнивание.

pi = 3.14159265
print("Pi = {:.2f}".format(pi))
print("ID = {:05d}".format(42))
print("[{:>10}]".format("Arduino"))
print("[{:<10}]".format("Arduino"))
Pi = 3.14
ID = 00042
[   Arduino]
[Arduino   ]

Пример 4. Edge case — недостаточно аргументов.

try:
    "{} и {}".format("Arduino")
except IndexError as e:
    print(f"Ошибка: {e}")
Ошибка: Replacement index 1 out of range for positional args tuple

Пример 5. Практическое применение — построение таблицы.

boards = [("Arduino UNO", 16), ("ESP32", 240), ("STM32F4", 168)]
print("{:<12} {:>5}".format("Плата", "МГц"))
for name, mhz in boards:
    print("{:<12} {:>5}".format(name, mhz))
Плата          МГц
Arduino UNO     16
ESP32          240
STM32F4        168

См. также

  • str.join() — объединение строк через разделитель

  • str.replace() — замена подстроки

Совет

В современном Python (3.6+) для большинства случаев удобнее использовать f-строки: f"Привет, {name}!" — синтаксис тот же, что и у format(), но без явного вызова метода.

Примечание

Лицензия и источники

Техническое описание метода адаптировано из официальной документации Python (https://docs.python.org), доступной под Python Software Foundation License Version 2. Перевод на русский, примеры использования и пояснения — © AlashEd Wiki.