Найти тему
Будни питониста

Форматирование чисел для вывода.

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

>>> х = 9876.54321

>>>#Два десятичных места точности

>>> format(x, '0.2f')

'9876.54'

>>>#Выравнивание по правому краю, 10 символов, 1 разряд точности

>>> format(x, '>10.lf')

‘9876.5'

>>>#Выравнивание по левому краю, 1 разряд

>>> format(x, '<10.if’}

'9876.5

>>>#Выравнивание по центру

>>> format (х, ‘^10. lf')

9876.5

>>>#Добавление разделителя тысяч

>>> format(x, ',')

'9,876.54321'

>>> format(x, '0, .lf')

'9,876.5'

>>>

Если вы хотите использовать экспоненциальную запись, измените f на е или Е, в зависимости от регистра, который вы хотите использовать для экспоненциального спецификатора. Например:

>>> format(x, 'е')

'9.876543е+03'

>>> format(x, '0.2Е')

'9.88Е+ОЗ'

>>>

Общая форма ширины и точности в обоих случаях - ' [ <>л ]?width[,] ?(. digits)?', где width (ширина) и digits (разряды) - целые числа, а? показывает дополнительные части.

Форматирование значений с разделителем тысяч тоже не проблема. Однако сам разделитель зависит от настроек локали, поэтому желательно исследовать функции из модуля locale. Вы можете заменить символ разделителя, используя метод translate() строки. Например:

>>> separators = { ord('. ') :' ,', ord(' ,') :'.' }

>>> format(x, ',') .translate(separators)

'9.876,54321'

>>>