i want to get some string, range from 0000 to 9999, that's to say, i want to print the following string:
0000
0001
0002
0003
0004
0005
0006
....
9999
i tried to use print "\n".join([str(num) for num in range(0, 9999)]), but failed, i get the following number:
0
1
2
3
4
5
6
...
9999
i want python to add the prefix 0 automatically, making the number remain 4 bit digits all the time. can anyone give a hand to me? any help appreciated.
One way to get what you want is to use string formatting:
>>> for i in range(10):
... '{0:04}'.format(i)
...
'0000'
'0001'
'0002'
'0003'
'0004'
'0005'
'0006'
'0007'
'0008'
'0009'
So to do what you want, do this:
print "\n".join(['{0:04}'.format(num) for num in range(0, 10000)])
try this
print"\n".join(["%#04d" % num for num in range(0, 9999)])
http://docs.python.org/library/stdtypes.html#str.zfill
Return the numeric string left filled with zeros in a string of length width. A sign prefix is handled correctly. The original string is returned if width is less than or equal to 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
Simply using str.rjust:
print "\n".join([str(num).rjust(4, '0') for num in range(0, 1000)])
Return the string right justified in a string of length width. Padding is done using the specified fillchar (default is an ASCII space). The original string is returned if width is less than or equal to len(s).
str.zfill also works:
print('\n'.join([str(num).zfill(4) for num in range(0, 10000)]))
another way to do that:
["%.4d" % i for i in range(0,999)]
or
["%04d" % i for i in range(0,999)]
来源:https://stackoverflow.com/questions/9527990/how-to-loop-from-0000-to-9999-and-convert-the-number-to-the-relative-string