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)
Частые ошибки
Передача некорректного спецификатора формата:
print(format(42, "z")) # Ошибка: ValueError
Как исправить: Используйте допустимые спецификаторы формата. Ознакомьтесь с документацией по спецификаторам.
Попытка применить спецификатор для неподдерживаемого типа данных:
print(format([], ".2f")) # Ошибка: TypeError
Как исправить: Убедитесь, что тип данных поддерживает указанный формат.
Некорректное использование спецсимволов в строке формата:
print(format(42, "{:.2f}")) # Ошибка: ValueError
Как исправить: Уберите фигурные скобки; они используются только в str.format и в f-строках:
print(format(42, ".2f")) # Вывод: 42.00
Часто задаваемые вопросы
Что будет, если format_spec не указан? Если строка формата не указана, возвращается стандартное строковое представление значения:
print(format(42)) # Вывод: '42'
Как округлить число до нескольких знаков? Используйте спецификатор .Nf, где N — количество знаков после запятой:
print(format(3.14159, ".2f")) # Вывод: 3.14
Как использовать спецификатор ширины? Укажите число для ширины строки:
print(format(42, ">5")) # Вывод: ' 42' (выравнивание по правому краю)
Можно ли форматировать строки? Да, строки можно выравнивать с помощью спецификаторов ширины и выравнивания:
print(format("hello", "^10")) # Вывод: ' hello '
Чем отличается format от метода str.format()? Функция format() форматирует одно значение в соответствии с указанным спецификатором, тогда как метод str.format() позволяет форматировать несколько значений в строке.
Примечание
Спецификаторы формата более подробно описаны здесь.