Дано:
a = 1
b = 10
c = 100
Как отобразить ведущий ноль для всех чисел с менее чем двумя цифрами?
А именно,
01
10
100
В Python 2 вы можете сделать это:
print "%02d" % (1,)
В основном % подобен printf
или printf
.
Для Python 3.+ такого же поведения можно добиться с помощью:
print("{:02d}".format(1))
Для Python 3.6+ такого же поведения можно добиться с помощью f-строк:
print(f"{1:02d}")
Вы можете использовать ул.zfill
:
print str(1).zfill(2)
print str(10).zfill(2)
print str(100).zfill(2)
печать:
01
10
100
В Питон >= 3.6, вы можете сделать это лаконично с новый F-строки, которые были введены с помощью:
f'{val:02}'
который печатает переменную с именем " вал " с заполнить
значение 0
и ширина
от 2
.
Для вашего конкретного примера, вы можете сделать это красиво в цикле:
a, b, c = 1, 10, 100
for val in [a, b, c]:
print(f'{val:02}')
который печатает:
01
10
100
Для получения дополнительной информации о ф-строки, взгляните на ОПТОСОЗ 498, где они были введены.
x = [1, 10, 100]
for i in x:
print '%02d' % i
приводит к:
01
10
100
Читайте более подробную информацию о форматировании строк с помощью % в документации.
В подходящие для Python способ сделать это:
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
Или другое решение.
"{:0>2}".format(number)
Используйте строку формата - http://docs.python.org/lib/typesseq-strings.html.
Например:
python -c 'print "%(num)02d" % {"num":5}'
Это, как я делаю это:
str(1).zfill(len(str(total)))
В основном zfill берет количеством нулей, которую вы хотите добавить, так это'ы легко взять наибольшее число, преобразовать его в строку и получить длину, как это:
в <предварительно> Питон 3.6.5 (по умолчанию, 11 мая 2018, 04:00:52) [8.1.0 ССЗ] на Linux Типа "Помоги мне", то "авторских прав" В, С "кредиты" или "лицензия" и для получения дополнительной информации.
итого = 100 ул. печати ((1).zfill(лен(ул.(общая)))) 001 итого = 1000 ул. печати ((1).zfill(лен(ул.(общая)))) 0001 итого = 10000 ул. печати ((1).zfill(лен(ул.(общая)))) 00001
</пред>
Использование:
'00'[len(str(i)):] + str(i)
Или с "математика" модуль:
import math
'00'[math.ceil(math.log(i, 10)):] + str(i)
ДФ['col1 и']=ДФ['col1 и'].применить(лямда-х: '{0:0>5}'.формат(х)) (в 5-это общее количество цифр)
Я использовал эту ссылку: http://www.datasciencemadesimple.com/add-leading-preceding-zeros-python/