Дано:дисплей число с ведущими нулями
a = 1
b = 10
c = 100
Я хочу, чтобы отобразить ведущие нули для всех чисел с менее чем 2 цифр, то есть:
01
10
100
Дано:дисплей число с ведущими нулями
a = 1
b = 10
c = 100
Я хочу, чтобы отобразить ведущие нули для всех чисел с менее чем 2 цифр, то есть:
01
10
100
Здесь вы:
print "%02d" % (1,)
В основном %, как printf
или sprint
.
Пример: напечатать «% 05d»% result ['postalCode'] для 5-значного почтового индекса. – 2012-06-05 12:08:01
`x ="% 02d.txt "% i` вызывает TypeError (не может конкатенировать объекты 'str' и 'int'), но` x = "% 02d.txt"% (i,) `does not. Интересно. Интересно, где это задокументировано – theta 2012-11-05 18:10:47
@theta В 2.7.6, я не получаю сообщение об ошибке. Может быть, это была ошибка в конкретной версии Python, с которой они были исправлены? – 2014-04-04 14:51:00
x = [1, 10, 100]
for i in x:
print '%02d' % i
Результаты:
01
10
100
Прочитать more information about string formatting using % в документации.
Пример документации отстой. Они бросают сопоставление с ведущим нулевым образцом, поэтому трудно понять, что есть, если вы уже не знаете, как это работает. То, что привело меня сюда, на самом деле. – Grant 2009-07-01 17:52:50
Используйте формат строки - http://docs.python.org/lib/typesseq-strings.html
Например:
python -c 'print "%(num)02d" % {"num":5}'
Вы можете использовать zfill:
print str(1).zfill(2)
print str(10).zfill(2)
print str(100).zfill(2)
печатает:
01
10
100
Или это:
print '{0:02d}'.format(1)
вещий способ сделать это:
str(number).rjust(string_width, fill_char)
Таким образом, исходная строка возвращается без изменений, если ее длина больше, чем string_width. Пример:
a = [1, 10, 100]
for num in a:
print str(num).rjust(2, '0')
Результаты:
01
10
100
print('{:02}'.format(1))
print('{:02}'.format(10))
print('{:02}'.format(100))
печатает:
01
10
100
width = 5
num = 3
formatted = (width - len(str(num))) * "0" + str(num)
print formatted
Или другое решение.
"{:0>2}".format(number)
Если дело с числами, которые являются либо одна или две цифры:
'0'+str(number)[-2:]
или '0{0}'.format(number)[-2:]
В Python 3.6, вы можете сделать это сжато с f
-струны с помощью:
f'{val:02}'
, который печатает переменную с именем val
с fill
значением 0
и a width
от 2
.
Для вашего конкретного примера вы можете сделать это красиво в цикле:
a, b, c = 1, 10, 100
for val in {a, b, c}:
print(f'{val:02}')
который печатает:
01
10
100
Дубликат: http://stackoverflow.com/questions/733454/best-way -to-format-integer-as-string-with-leading-zeros – darkgaze 2016-09-08 09:50:30
Я предполагаю, что связанный вопрос должен быть дубликатом этого (с точки зрения голосов, качества ответов и возраста) – TheEspinosa 2017-02-06 10:27:09