在 python 3x 中创建前导 0 的随机数

Creating random numbers with a leading 0 in python 3x

在Python3x中,有没有办法生成一个固定位数的随机数,可以return一个0在第一位或前两位?例如005059 而不是 559?

我正在创建一个游戏,玩家需要输入一个随机创建的 3 位数代码(在游戏的其他地方找到)。理想情况下,它将从 000 - 999 中选择。

random.randint(0,999) 不会提供我想要的输出。

我唯一能想到的解决办法是啰嗦(生成0到9之间的3个数字,转换为字符串并组合),我想知道是否有更直接的方法:

import random

digit1 = str(random.randint(0,9))
digit2 = str(random.randint(0,9))
digit3 = str(random.randint(0,9))

code = digit1 + digit2 + digit3

此方法可以让我与用户输入的代码进行比较,但如果可能的话,我想直接生成数字。

编辑:为了澄清,我想知道是否有一种方法可以生成一个具有预定位数的数字,该数字可以在一个或多个前导数字中包含“0”,无需将数字转换为字符串即可进行格式化。 Nicest way to pad zeroes to string 有帮助,尽管我不是要打印随机数,而是将其与使用输入(例如“0560”)进行比较。

您可以尝试以下方法:

import random

min = 0
max = 999
digits = [str(random.randint(min, max)) for i in range(5)]
digits = [(len(str(max))-len(digit))*'0'+digit for digit in digits]

>>> digits
['099', '142', '684', '881', '734']
>>>