我想得到一些字符串,范围从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位数 所有时间。任何人都可以帮助我吗?任何帮助表示感谢。
答案 0 :(得分:20)
获得所需内容的一种方法是使用字符串格式:
>>> 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)])
答案 1 :(得分:5)
试试这个
print"\n".join(["%#04d" % num for num in range(0, 9999)])
答案 2 :(得分:5)
只需使用str.rjust:
print "\n".join([str(num).rjust(4, '0') for num in range(0, 1000)])
以长度为一的字符串返回右对齐的字符串。填充 使用指定的fillchar完成(默认为ASCII空间)。该 如果width小于或等于len(s),则返回原始字符串。
答案 3 :(得分:5)
http://docs.python.org/library/stdtypes.html#str.zfill
返回以长度字符串填充零的数字字符串 宽度。正确处理符号前缀。原始字符串是 如果width小于或等于len(s),则返回。
E.g:
>>> for i in range(10):
... print('{:d}'.format(i).zfill(4))
...
0000
0001
0002
0003
0004
0005
0006
0007
0008
0009
答案 4 :(得分:2)
str.zfill也有效:
print('\n'.join([str(num).zfill(4) for num in range(0, 10000)]))
答案 5 :(得分:0)
另一种方法:
DEBUG:__main__:Add called
5
或
["%.4d" % i for i in range(0,999)]
答案 6 :(得分:0)
这应该起到将字符串左填充的技巧:
(lambda f: f(f))(lambda f: (lambda x: (x if len(x) == 4 else f(f)('0' + x))))(str(num))
答案 7 :(得分:0)
你可以试试这个:
for i in range(9999):
print(str(i).zfill(4)+"\n")