Форматирование вещественного числа фиксированной ширины в Python
Быстрый ответ
Для форматирования чисел с плавающей точкой в Python с размещением в поле шириной 10 символов и точностью до двух символов после запятой вы можете использовать функцию format()
или f-строки.
Пример использования функции format()
:
formatted = "{:10.2f}".format(123.456) # Результат: ' 123.46'.
Пример использования f-строки:
formatted = f"{123.456:10.2f}" # Результат: ' 123.46'.
В каждом из случаев число будет выровнено справа по краю поля размером в 10 символов и округлено до двух знаков после запятой.
Выравнивание чисел по правому краю и контроль точности
Форматирование с указанным числом знаков после запятой позволяет также выровнять число по правому краю, указав общую ширину поля.
number = 3.1415
formatted = f"{number:10.4f}" # Результат: ' 3.1415'.
Выравнивание десятичных символов для упрощения сравнения чисел
Единая схема форматирования в списке чисел выравнивает десятичные точки по вертикали, что облегчает сравнение числовых значений.
numbers = [123\.456, 78.9, 3.14]
formatted = [f"{num:10.2f}" for num in numbers]
# Результат: [' 123.46', ' 78.90', ' 3.14'].
Полезность ведущих нулей
Ведущие нули полезны при отображении чисел, меньших единицы, или в целях визуального выравнивания строк.
formatted = f"{0.123456:09.6f}" # Результат: '00.123456'.
Динамическое задание ширины и точности
Использование переменных оказывается очень удобным для контроля ширины поля и точности округления, неподъёмное без переменной.
width, precision = 10, 4
formatted = f"{number:{width}.{precision}f}" # Результат: ' 3.1415'.
Принудительное приведение к фиксированной ширине
В случае необходимости обрезать число для сохранения заданной широты поля используйте следующий формат f-строк:
formatted = f"{123.456789:10.4}" # Элегантное окончание ваших расчетов!
Визуализация
Грамотное использование пространства делает данные более информативными и представительными:
Обозначенная ширина: |<------ 8 ------->|
Значение до форматирования: 123.456
После форматирования информация становится более структурированной и понятной:
'123.456 ' // Ровно то, что нужно.
'0123.456' // С маленьким украшением.
' 123.456' // Симметричность и порядок.
Так данные выглядят завершёнными и профессиональными.
Поддержка порядка чисел с правильным заполнением
Корректное заполнение с помощью ведущих нулей помогает избежать ошибок при сортировке и обработке данных.
Создание имен файлов с заполнением нулями: Тогда формирование номеров файлов происходит последовательно и понятно:
for i in range(1, 11):
filename = f"file_{i:03d}.txt" # Результат: file_001.txt, file_010.txt.
Сортировка списков с ведущими нулями: При таком подходе сортировке соблюдаются числовые порядки.
numbers = [3\.14, 200.5, 42.22]
formatted = sorted(f"{num:07.2f}" for num in numbers) # Всегда в надежном порядке.
Полезные материалы
- Встроенная функция
format
в Python 3.12.1 — Общий обзор встроенной функцииformat
. - Операции со строками в Python 3.12.1 — Подробная информация о "мини-языке" спецификаторов формата.
- Форматирование числа с плавающей точкой под фиксированную ширину в Python – Stack Overflow — Разбор данной проблемы на Stack Overflow.
- Лучшие методы форматирования строк в Python – Real Python — Учебное пособие по форматированию строк.
- Метод форматирования строк в Python – GeeksforGeeks — Практическое описание метода
format
. - PEP 498 – Введение f-строк в Python — Описание f-строк в Python.
- Настройки и параметры в pandas 2.2.0 — Настройка точности вывода чисел с плавающей точкой в библиотеке Pandas.