一、介绍
random模块实现了各种分布的伪随机数的生成器。
导入语法:
import random
二、常用函数
常用的函数如下图所示:
函数 | 说明 |
random.seed(a) | 设置初始化随机种子,可输出相同随机数序列,a取整数或浮点数,不设置时默认以系统时间为种子 |
random.random() | 用于生成一个0.0到1.0的随机浮点数 |
random.uniform(a,b) | 生成一个[a,b]之间的随机小数,a/b取整数或浮点数 |
random.randint(a,b) | 生成一个[a,b]之间的随机整数 |
random.randrange(start,stop,[step]) | 生成一个[start,stop)之间以step为步数的随机整数,step不设置默认为1 |
random.getrandbits(k) | 生成一个占内存k位以内的随机整数,k取长度的整数值 |
random.choice(seq) | 从序列类型seq中随机返回一个元素 |
random.shuffle(seq) | 将序列类型中的元素随机排序 |
random.sample(pop,k) | 从pop中选取k个元素,以列表类型返回 |
三、实例
1、random.seed(a)
import random
print('没有设定种子')
for i in range(5):
data = random.randint(1, 10)
print(data, end=' ')
print()
print('设定种子')
random.seed(1)
for i in range(5):
data = random.randint(1, 10)
print(data, end=' ')
print()
输出:
10 3 6 9 8
设定种子
3 10 2 5 2
没有设定种子
6 7 2 9 4
设定种子
3 10 2 5 2
从输出结果我们可以看出:没有显式设置种子时,每次输出的随机数都是不一样的;显式设置种子时,每次输出的随机数都是一样的。
3、random.random()
import random
print(random.random())
输出:
0.34784252370278534
3、random.uniform(a,b)
import random
# 生成一个5.0到10.0之间的随机小数
print(random.uniform(5.0, 10.0))
输出:
5.102225103831665
4、random.randint(a,b)
import random
# 生成一个5到10之间的随机整数
print(random.randint(5, 10))
输出:
10
5、random.randrange(start,stop,[step])
import random
# 生成一个1到49之间以步数为1的随机整数
print(random.randrange(1, 50))
输出:
4
6、random.choice(seq)
import random
# 从列表中返回随机元素
print(random.choice([1, 2, 3, 4, 5, 6]))
输出:
5
7、random.shuffle(seq)
import random
# 将序列类型随机排序
list = [1, 2, 3, 4, 5]
random.shuffle(list)
print(list)
random.shuffle(list)
print(list)
输出:
[3, 1, 2, 4, 5]
[1, 4, 3, 5, 2]
8、random.sample(pop,k)
import random
# 从列表中选择3个元素
list = [1, 2, 3, 4, 5]
print(random.sample(list, 3))
print(random.sample(list, 3))
输出:
[4, 1, 3]
[3, 4, 1]