random模块
在random之前,我们需要了解一些概念:
-
random库是使用随机数的Python标准库
-
计算机是不可能产生随机值,真正的随机数也是在特定条件下产生的确定值,只不过这些条件我们没有理解,或者超出了我们的理解范围。计算机不能产生真正的随机数,那么伪随机数也就被称为随机数
-
伪随机数:计算机中通过采用梅森旋转算法生成的(伪)随机序列元素
调用方法
import random
random库包含两类函数,常用的共8个:
- 基本随机函数: seed(), random()
- 扩展随机函数:randint(), getrandbits(), uniform(), randrange(), choice(), shuffle()
1、基本随机函数
Python中产生随机数使用随机数种子来产生(只要种子相同,产生的随机序列,无论是每一个数,还是数与数之间的关系都是确定的,所以随机数种子确定了随机序列的产生)
函数 | 描述 |
---|---|
radom.seed(a=None) | 初始化给定的随机数种子,默认为当前系统时间 |
random.random() | 随机生成一个实数(0,1),没有参数 |
>>>import random
>>>random.random()
0.13436424411240122
扩展随机函数
函数 | 描述 |
---|---|
randint(a,b) | 生成一个[a,b]之间的整数 |
randrange(m,n[,k]) | 生成一个[m,n)之间以k为步长的随机整数 |
getrandbits(k) | 生成一个k比特长的随机整数 |
uniform(a,b) | 生成一个[a,b]之间的随机小数 |
choice(seq) | 从序列中随机选择一个元素 |
shuffle(seq) | 将序列seq中元素随机排列,返回打乱后的序列 |
>>>import random
>>>random.randint(2,6)
5
>>>random.randrange(2,6,2)
2
>>>random.getrandbits(2)
31
>>>random.uniform(3,6)
5.4707666176003364
>>>random.choice([2,3,4,5,6])
3
总结:
设置随机数种子
random.seed(a=None,version=2)
整数用:
random.randrange(start,stop[,step])
random.randint(a,b)
序列用:
random.choice(seq) 随机挑选一个元素
random.shuffle(x,[,random]) 随机排序
random.sample(population,k) 随机挑选K个元素
浮点数:
均匀分布
random.random() 随机生成一个实数(0,1)
random.uniform(a,b) 随机生成一个实数(a,b)