如何从0000循环到9999并将数字转换为相对字符串?

Sea*_*ene 4 python string numbers

我想得到一些字符串,范围从0000到9999,也就是说,我想打印以下字符串:

0000
0001
0002
0003
0004
0005
0006
....
9999
Run Code Online (Sandbox Code Playgroud)

我试图使用print "\n".join([str(num) for num in range(0, 9999)]),但失败了,我得到以下数字:

0
1
2
3
4
5
6
...
9999
Run Code Online (Sandbox Code Playgroud)

我希望python 自动添加前缀0,使数字始终保持4位数.任何人都可以帮助我吗?任何帮助赞赏.

sen*_*rle 21

获得所需内容的一种方法是使用字符串格式:

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

所以要做你想做的事,做到这一点:

print "\n".join(['{0:04}'.format(num) for num in range(0, 10000)])
Run Code Online (Sandbox Code Playgroud)


Nil*_*esh 5

试试这个

print"\n".join(["%#04d" % num for num in range(0, 9999)])
Run Code Online (Sandbox Code Playgroud)


FMC*_*orz 5

只需使用str.rjust:

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

以长度宽度的字符串返回右对齐的字符串.使用指定的fillchar完成填充(默认为ASCII空间).如果width小于或等于len(s),则返回原始字符串.


ber*_*nie 5

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

返回左边用数字字符串填充的长度为字符串的数字字符串.正确处理符号前缀.如果width小于或等于len(s),则返回原始字符串.

例如:

>>> for i in range(10):
...   print('{:d}'.format(i).zfill(4))
... 
0000
0001
0002
0003
0004
0005
0006
0007
0008
0009
Run Code Online (Sandbox Code Playgroud)