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

时间:2015-05-15 04:36:36

标签: python-3.x random

在Python 3x中,有没有办法生成一个固定数字的随机数,这些数字可以在第一个位置或前两个位置返回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')进行比较。

1 个答案:

答案 0 :(得分:0)

您可以尝试以下操作:

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']
>>>