带前导零的randint

4 投票
5 回答
8589 浏览
提问于 2025-04-16 21:20

我想生成从00000到99999的数字。

使用

number=randint(0,99999)

我生成的值没有前导零,当然是23而不是00023。有没有什么技巧可以确保总是生成5位数的值,比如%05d,还是说我真的需要用Python的字符串技巧来填补长度小于5时前面的零呢?

谢谢你的阅读和帮助,

B

5 个回答

1

另外,使用 str(randint(0, 99999)).zfill(5) 这个方法,性能会比字符串格式化快一点,大约快20%,比使用 str.rjust 方法快1%。

3

randint生成的数字是整数。整数就是没有小数的数字,打印出来的时候不会有前面的零。

如果你想要一个字符串形式的数字,这种形式可以有前面的零,可以试试:

str(randint(0, 99999)).rjust(5, "0")
11

你需要用一个Python的小技巧,因为整数本身是没有前导零的。

number="%05d" % randint(0,99999)

撰写回答