format

Функция format() используется для форматирования значений в соответствии с заданной строкой формата. Она поддерживает широкий спектр спецификаторов формата, позволяя настроить вывод чисел, строк и других типов данных.

Синтаксис

format(value, format_spec='')

Аргументы

  • value:
    • Что означает: Значение, которое нужно отформатировать.
    • Возможные значения: Любой объект, поддерживающий метод __format__.
  • format_spec (необязательный):
    • Что означает: Строка, задающая формат вывода.
    • Возможные значения: Строка формата, например, .2f для округления до двух знаков после запятой, >10 для выравнивания по правому краю и т. д. Может быть пустой.

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

Возвращает строку, содержащую отформатированное значение.

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

# Округление числа
print(format(3.14159, ".2f"))  # Вывод: 3.14
# Выравнивание по ширине
print(format(42, ">10"))  # Вывод: '        42'
# Процентный формат
print(format(0.75, ".0%"))  # Вывод: 75%
# Форматирование строки
print(format("hello", "^10"))  # Вывод: '  hello   '

Эквивалентный код

def pyplanet_format(value, format_spec=''):
    return value.__format__(format_spec)

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

  1. Передача некорректного спецификатора формата:

    print(format(42, "z"))  # Ошибка: ValueError
    

    Как исправить: Используйте допустимые спецификаторы формата. Ознакомьтесь с документацией по спецификаторам.

  2. Попытка применить спецификатор для неподдерживаемого типа данных:

    print(format([], ".2f"))  # Ошибка: TypeError
    

    Как исправить: Убедитесь, что тип данных поддерживает указанный формат.

  3. Некорректное использование спецсимволов в строке формата:

    print(format(42, "{:.2f}"))  # Ошибка: ValueError
    

    Как исправить: Уберите фигурные скобки; они используются только в str.format и в f-строках:

    print(format(42, ".2f"))  # Вывод: 42.00
    

Часто задаваемые вопросы

  1. Что будет, если format_spec не указан? Если строка формата не указана, возвращается стандартное строковое представление значения:

    print(format(42))  # Вывод: '42'
    
  2. Как округлить число до нескольких знаков? Используйте спецификатор .Nf, где N — количество знаков после запятой:

    print(format(3.14159, ".2f"))  # Вывод: 3.14
    
  3. Как использовать спецификатор ширины? Укажите число для ширины строки:

    print(format(42, ">5"))  # Вывод: '   42' (выравнивание по правому краю)
    
  4. Можно ли форматировать строки? Да, строки можно выравнивать с помощью спецификаторов ширины и выравнивания:

    print(format("hello", "^10"))  # Вывод: '  hello   '
    
  5. Чем отличается format от метода str.format()? Функция format() форматирует одно значение в соответствии с указанным спецификатором, тогда как метод str.format() позволяет форматировать несколько значений в строке.

Примечание

Спецификаторы формата более подробно описаны здесь.