Python: уроки, справочник и задачи

Функция format() в Python и мини-язык форматирования

Раздел: Строки в Python · Обновлено 31.10.2026

Функция format() в Python превращает одно значение в строку по спецификатору формата: format(45, 'b') дает '101101', а format(3.14159, '.2f') дает '3.14'. Ниже разобраны части спецификатора (заполнение, выравнивание, знак, ширина, точность и тип), примеры с числами и строками, переопределение __format__() в своем классе и отличие встроенной функции от метода str.format().

Метод python format возвращает форматированное значение. В разделе по работе со строками, я уже писал про форматирование строки, советую вам прочитать этот материал.

python format
Фото: Rodw / CC BY-SA 3.0, Wikimedia Commons
Содержание статьи
  1. Параметры метода format()
    1. Возвращаемые значения метода format()
  2. Пример 1. Форматирование чисел с помощью метода format()
  3. Пример 2. Форматирование с заливкой, выравниванием, шириной, точностью, типом
  4. Пример 3: Использование format() путем переопределения __format__()
    1. Встроенный метод format() против строкового format()
value = 45
# форматируем целое число в двоичное
binary_value = format(value, 'b')
print(binary_value)
# Результат: 101101

Параметры метода format()

Метод format() принимает два параметра:

Спецификатор формата, может иметь различные варианты:

[[заполнить]выровнять][знак][#][0][ширина][,][.точность][тип] где параметры: заполнение:: = выравнивание любого символа ::= "<" | ">" | "=" | "^" подпишите ::= "+" | "-" | "" ширина ::= целочисленная точность ::= целочисленный тип ::= "b" | "c" | "d" | "e" | "E" | "f" | "F" | "g" | "G" | "n" | "o" | "s" | "x" | "X" | "%"

Возвращаемые значения метода format()

Метод format() как мы уже поняли, возвращает отформатированное значение, переданного ему значения. Значение форматируется в зависимости от переданного спецификатора. Ниже мы рассмотрим несколько примеров, и подробно разберем спецификаторы.

Пример 1. Форматирование чисел с помощью метода format()

# d, f and b are type
# число
print(format(123, "d"))
# число с плавающей запятой
print(format(123.4567898, "f"))
# Бинарный
print(format(12, "b"))
#Результат
123
123.456790
1100

Пример 2. Форматирование с заливкой, выравниванием, шириной, точностью, типом

# integer 
print(format(1234, "*>+7,d"))
# float number
print(format(123.4567, "^-09.3f"))
#Результат
*+1,234
0123.4570

И так, при форматировании целого числа 1234, был указан спецификатор *>+7,d. На первый взгляд, возможно что непонятно ничего, но это вполне нормальное явление. Давайте разберемся в каждом из приведенных вариантов.

При форматировании числа с плавающей запятой, 123.4567, был указан спецификатор следующего формата ^-09.3f. Ниже разберем значение этих спецификаторов.

Пример 3: Использование format() путем переопределения __format__()

# custom __format__() method
class Person:
    def __format__(self, format):
        if(format == 'age'):
            return '23'
        return 'None'
print(format(Person(), "age"))
#Результат
23

Встроенный метод format() против строкового format()

Функция format() аналогична функции форматирования строки. Под капотом обоих функции, используется метод объекта __format__().