как сделать цикл от 0000 до 9999 и преобразовать число в соответствующую строку? - PullRequest
4 голосов
/ 02 марта 2012

Я хочу получить некоторую строку в диапазоне от 0000 до 9999, то есть я хочу напечатать следующую строку:

0000
0001
0002
0003
0004
0005
0006
....
9999

Я пытался использовать print "\n".join([str(num) for num in range(0, 9999)]), но не смог, я получаюследующий номер:

0
1
2
3
4
5
6
...
9999

я хочу, чтобы python автоматически добавил префикс 0 , оставив номер 4-разрядные цифры все время.Кто-нибудь может мне помочь?любая помощь приветствуется.

Ответы [ 6 ]

20 голосов
/ 02 марта 2012

Один из способов получить желаемое - использовать форматирование строки:

>>> for i in range(10):
...     '{0:04}'.format(i)
... 
'0000'
'0001'
'0002'
'0003'
'0004'
'0005'
'0006'
'0007'
'0008'
'0009'

Итак, чтобы делать то, что вы хотите, сделайте это:

print "\n".join(['{0:04}'.format(num) for num in range(0, 10000)])
5 голосов
/ 02 марта 2012

http://docs.python.org/library/stdtypes.html#str.zfill

Возвращает числовую строку, заполненную нулями, в строке ширины длины.Знаковый префикс обрабатывается правильно.Исходная строка возвращается, если ширина меньше или равна len (s).

Например:

>>> for i in range(10):
...   print('{:d}'.format(i).zfill(4))
... 
0000
0001
0002
0003
0004
0005
0006
0007
0008
0009
5 голосов
/ 02 марта 2012

Просто используя str.rjust :

print "\n".join([str(num).rjust(4, '0') for num in range(0, 1000)])

Возвращает строку, выровненную по правому краю в строке ширины длины. набивка выполняется с использованием указанного fillchar (по умолчанию используется пробел ASCII). Исходная строка возвращается, если ширина меньше или равна len (s).

5 голосов
/ 02 марта 2012

попробуйте

print"\n".join(["%#04d" % num for num in range(0, 9999)])
2 голосов
/ 11 июня 2013

str.zfill также работает:

print('\n'.join([str(num).zfill(4) for num in range(0, 10000)]))

0 голосов
/ 05 сентября 2018

другой способ сделать это:

["%.4d" % i for i in range(0,999)]

или

["%04d" % i for i in range(0,999)]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...