Для форматирования одного числа для вывода, используется встроенная функция 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'
>>>