如何生成具有特定位数的随机数?

新手上路,请多包涵

比方说我需要一个 3 位数的数字,所以它会是这样的:

 >>> random(3)
563

or

>>> random(5)
26748
>> random(2)
56

原文由 Arty 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 547
2 个回答

您可以使用 random.randintrandom.randrange 。所以要获得一个随机的 3 位数:

 from random import randint, randrange

randint(100, 999)     # randint is inclusive at both ends
randrange(100, 1000)  # randrange is exclusive at the stop

\* 假设您的意思是三位数,而不是“最多三位数”。


要使用任意数量的数字:

 from random import randint

def random_with_N_digits(n):
    range_start = 10**(n-1)
    range_end = (10**n)-1
    return randint(range_start, range_end)

print random_with_N_digits(2)
print random_with_N_digits(3)
print random_with_N_digits(4)

输出:

 33
124
5127

原文由 RichieHindle 发布,翻译遵循 CC BY-SA 4.0 许可协议

如果你想要它作为一个字符串(例如,一个 10 位数字的电话号码)你可以使用这个:

 n = 10
''.join(["{}".format(randint(0, 9)) for num in range(0, n)])

原文由 osman 发布,翻译遵循 CC BY-SA 4.0 许可协议

推荐问题