в Python, как мне преобразовать однозначное число в строку из двух цифр? - PullRequest
38 голосов
/ 17 августа 2010

Так скажи, у меня есть

a = 5

я хочу напечатать его как строку '05'

Ответы [ 6 ]

73 голосов
/ 17 августа 2010

print "%02d"%a - это вариант Python 2

Python 3 использует несколько более подробную систему форматирования:

"{0:0=2d}".format(a)

Соответствующая ссылка на документацию для python2: http://docs.python.org/2/library/string.html#format-specification-mini-language

Для python3 это http://docs.python.org/3/library/string.html#string-formatting

18 голосов
/ 17 августа 2010
a = 5
print '%02d' % a
# output: 05

Оператор '%' называется оператором форматирования строки , если используется строка слева. '%d' - это код форматирования для печати целого числа (вы получите ошибку типа, если значение не является числовым). С помощью '%2d вы можете указать длину, а '%02d' можно использовать для установки символа заполнения на 0 вместо пробела по умолчанию.

13 голосов
/ 17 августа 2010
>>> print '{0}'.format('5'.zfill(2))
05

Подробнее здесь .

4 голосов
/ 10 февраля 2017
>>> a=["%02d" % x for x in range(24)]
>>> a
['00', '01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21', '22', '23']
>>> 

Это так просто

2 голосов
/ 24 октября 2017

В Python3 вы можете:

print("%02d" % a)
0 голосов
/ 27 мая 2019

Ответ ответ Мохоммада:

str_years = [x for x in range(24)]
#[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23]

#Or, if you're starting with ints:
int_years = [int(x) for x in str_years]

#Formatted here
form_years = ["%02d" % x for x in int_years]

print(form_years)
#['00', '01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21', '22', '23']

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...