在
Python 3.6,77000中添加了.
使用此模块在范围[n,m]中生成随机整数的最有效方法是什么?
我尝试了选择(范围(n,m)),但我怀疑这是最好的方法.
解决方法
secrets.choice(range(n,m))应该没问题,因为Python 3上的范围是懒惰的.
n secrets.randbelow(m-n)是另一种选择.我不会用它,因为它不太明显是正确的.
由于secrets提供对SystemRandom类的访问,使用与random.Random相同的接口,您还可以保留自己的SystemRandom实例:
my_secure_rng = secrets.SystemRandom()
并做
my_secure_rng.randrange(n,m)