Это потому, что символ 0 включает заполнение нулями, но у вас есть ширина 1 набор. Установите ширину 2 (например, '{0:02.1f}'
, и вы увидите начальный 0.
Редактировать - на самом деле, я не уверен, будет ли достаточно 2, потому что я не знаю, как он ведет себя с большим количеством цифр после десятичной точки. Поэтому, чтобы быть в безопасности, сделайте что-то вроде 5 и посмотрите, что он делает потом.
Редактировать 2 - хорошо, я только что попробовал. Ширина соответствует ВСЕЙ ширине, включая все цифры и десятичную точку. Итак, вы получите это:
>>> '{0:05.2f}'.format(5.555)
'05.55'
Обратите внимание, что общая длина строки теперь равна 5, с ведущим 0, потому что заполнение нулями включено, и что оно усекается до 2 цифр после десятичной точки из-за .2