Python标准库之random

 python
 

random是python中用来获取随机数的库,通过调用其中的方法,可以满足日常开发中需要的随机数生成。官方指出,不要用于安全和加密相关的模块,如果需要,可以使用secrets模块。

下面主要介绍一些常用的方法:

random.seed(int)

此方法可以给随机对象设置一个种子值,对于同一个种子值产生的随机数序列也一样。seed() 省略参数,意味着使用当前系统时间生成随机数。

1
2
3
4
5
random.seed(1)
print(random.random()) #0.13436424411240122
random.seed(1)
print(random.random()) #0.13436424411240122
print(random.random()) #结果不固定

random.randint(a,b)

此方法返回指定范围的一个随机整数,包含上下限。

1
print(random.randint(1, 2)) #结果为1/2

random.randrange(start, stop, step)

按步长随机在上下限范围内取一个随机数。根据测试,此方法和randint不一样,此方法只包含了下界,不包含上界。

1
print(random.randrange(0, 4, 1)) #结果为0/1/2/3

random.random()

获取随机浮点数。

1
print(random.random()) #结果不固定

random.choice(seq)

从给定的序列seq中随机取出一个值。

1
print(random.choice([1, 2, 3, 4])) #结果为1/2/3/4

random.sample(seq, k)

从给定的序列seq中随机取出k个值,放回的结果为一个list。

1
print(random.sample([1, 2, 3], 2)) #结果为seq序列中k个元素的可能组合

random.shuffle(seq)

对给定的seq序列进行打乱,改方法只能对list进行操作。

1
2
3
seq = [1, 2, 3]
random.shuffle(seq)
print(seq)

random.uniform(a, b)

随机获取a到b范围内的一个随机浮点数。

1
print(random.uniform(1, 3)) #结果不固定