Показать номер с ведущими нулями - PullRequest
742 голосов
/ 25 сентября 2008

Дано:

a = 1
b = 10
c = 100

Как отобразить начальный ноль для всех чисел, состоящих менее чем из двух цифр?

То есть

01
10
100

Ответы [ 16 ]

2 голосов
/ 15 ноября 2013
width = 5
num = 3
formatted = (width - len(str(num))) * "0" + str(num)
print formatted
1 голос
/ 21 июня 2018

Вот как я это делаю:

str(1).zfill(len(str(total)))

Обычно zfill принимает число начальных нулей, которое вы хотите добавить, поэтому легко взять самое большое число, превратить его в строку и получить длину, например:

Python 3.6.5 (default, May 11 2018, 04:00:52) 
[GCC 8.1.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> total = 100
>>> print(str(1).zfill(len(str(total))))
001
>>> total = 1000
>>> print(str(1).zfill(len(str(total))))
0001
>>> total = 10000
>>> print(str(1).zfill(len(str(total))))
00001
>>> 
1 голос
/ 20 апреля 2018

Использование:

'00'[len(str(i)):] + str(i)

Или с модулем math:

import math
'00'[math.ceil(math.log(i, 10)):] + str(i)
0 голосов
/ 16 января 2019

! / Usr / bin / env python3

Copyright 2009-2017 BHG http://bw.org/

x = 5

while (x <= 15):
    a =  str("{:04}".format(x))
    print(a)
    x = x + 1;

тот же код, что и у изображения

0 голосов
/ 01 ноября 2018
s=1    
s="%02d"%s    
print(s)

результат будет 01

0 голосов
/ 19 февраля 2016

При работе с числами, состоящими из одной или двух цифр:

'0'+str(number)[-2:] или '0{0}'.format(number)[-2:]

...