今天继续给大家介绍Python相关知识,本文主要内容是Python random库生成随机数详解。
random库是Python的标准库之一,可以使用该库来生成一系列的随机函数。random库使用梅森旋转算法生成一个伪随机序列,在一般的工程实践中,我们可以认为这是一个随机序列。(注意:关于梅森旋转算法,以及伪随机序列等概念,可以参考数学和密码学相关知识)
random库的使用需要先引用该库,执行命令:
import random
即可。
random库中有两类函数,一种是基本随机函数,另一种是扩展随机数函数。
基本随机函数又有两个,分别是seed()函数和random()函数。
seed()函数可以用一个数做参数,表示指定随机数的“种子”,梅森旋转算法生成伪随机数的条件需要一个随机数作为种子,如果这个“种子”是确定的,那么梅森旋转算法生成的随机数序列也是确定的。如果我们不使用这个函数作为“种子”,那么Python会使用当前的系统时间作为种子,同样可以生成一系列的随机数序列。事实上,指定seed()函数,真正作用在于生成一个可复现的随机数序列,这对于一些程序的调试、试验很有帮助。random()函数可以用来生成一个0-1之间的随机小数(包括0,但是不包含1)。
除了上述基本随机函数外,random库还提供了6个扩展随机函数,这6个函数,可以帮助我们在特定情况下,生成特定的随机序列。这6个函数及其作用如下表所示:
| 函数 | 作用 |
|---|---|
| randint(x,y) | 随机生成一个介于x和y之间(包含x和y)的整数,x和y必须是整数,并且x必须小于或等于y |
| randrange(x,y,k) | 随机生成一个在x和y之间(包含x和y)的,步长为k的整数。参数k可选,在不指定参数k时,k默认为1 |
| getrandbits(x) | 随机生成一个x比特长的随机整数 |
| uniform(x,y) | 随机生成一个在x和y之间(包含x和y)的随机小数,这里的x和y大小任意 |
| choice(seq) | 在这里seq是一个序列,表示从序列中随机选择一个元素 |
| shuffle(seq) | 在这里seq是一个序列,表示将序列中的元素随机排列后返回,注意该函数会影响序列本身 |
最后,为了更好的帮助大家学习random库,给大家提供一些random库的使用案例。
random基本随机函数运用如下所示:

从上图中我们可以看到,如果我们使用seed()函数指定了“种子”,那么生成的随机数序列也是固定的,这就实现了“可复现”的随机序列。
random扩展随机函数如下所示:

原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200