我们如何使用python生成一个四位数的计数器?
range(0,9999)
将有1位数字,2位数字和3位数字。我们只想要4位数。
即。 0000至9999
当然,最简单的Pythonic方式。
答案 0 :(得分:15)
将要填充的字符串格式化为0。要获得用0填充0到9999的列表:
["%04d" % x for x in range(10000)]
同样适用于5,6,7,8个零等。请注意,这将为您提供字符串列表。没有办法用零填充整数变量,所以字符串尽可能接近。
同样的格式化操作也适用于单个整数。
答案 1 :(得分:12)
也许str.zfill
也可以帮到你:
>>> "1".zfill(4)
'0001'
答案 2 :(得分:4)
你没有。输出或处理时格式化为4位数。
print '%04d' % val
答案 3 :(得分:1)
如果您想选择字符串格式,正如许多建议的那样,并且您使用的Python不低于2.6,请注意在其最新版本中使用字符串格式。而不是:
["%04d" % idx for idx in xrange(10000)]
["{0:0>4}".format(i) for i in xrange(1000)]
这是因为后一种方式在Python 3中用作格式化字符串的默认习惯用法,我想最好将代码可移植性提升到未来的Python版本。
正如有人在评论中所说,在Python 2.7+中没有必要指定位置参数,所以这也是有效的:
["{:0>4}".format(i) for i in xrange(1000)]
答案 4 :(得分:0)
真的过火了,
In [8]: class Int(int):
...: def __repr__(self):
...: return self.__str__().zfill(4)
...:
...:
In [9]: a = Int(5)
In [10]: a
Out[10]: 0005