random模块的主要功能:
- 基本随机数生成:生成指定范围内的随机整数、随机浮点数等。
- 随机选择:从序列中随机选择一个或多个元素。
- 随机打乱:随机打乱序列中的元素顺序。
- 随机变量:模拟常见的随机变量分布,如正态分布、指数分布等。
常见的函数及用法:
1.random():生成一个[0.0, 1.0)之间的随机浮点数。
2.randint(a, b):生成一个[a, b]之间的随机整数。
3.randrange([start,] stop[, step]):生成一个[start, stop)之间以step为步长的随机整数。
4.choice(seq):从非空序列seq中随机选择一个元素。
5.shuffle(list):将list中的元素随机打乱。
6.sample(population, k):从population中随机选择k个不重复的元素。
7.uniform(a, b):生成一个[a, b]之间的随机浮点数。
8.normalvariate(mu, sigma):生成一个符合正态分布的随机数,mu是均值, sigma是标准差。
示例:
import random
# 生成0到10之间的随机整数(包括0和10)
print(random.randint(0, 10))
## 6
# 生成1到10之间(不包括10)的随机整数
print(random.randrange(1, 10))
## 7
# 生成0到1之间的随机浮点数(不包括1)
print(random.random())
## 0.9969447731196855
# 生成1到3之间的随机浮点数
print(random.uniform(1, 3))
## 2.7496006174747003
# 从列表中随机选择一个元素
list = [1, 2, 3, 4, 5]
print(random.choice(list))
## 4
# 从列表中随机选择3个不重复的元素
print(random.sample(list, 2))
## [4, 2]
# 打乱列表中的元素顺序
random.shuffle(list)
print(list)
## [5, 2, 1, 4, 3]
# 生成一个符合正态分布的随机数,均值为0,标准差为1
print(random.normalvariate(0, 1))
## -1.7658013036151325
使用random.seed()设置随机种子:
设置随机种子可以确保每次运行代码时生成的随机数序列是相同的,这在需要可重复实验的情况下很有用。
import random
# 设置随机种子
random.seed(1)
# 现在,每次使用相同的种子调用random函数,都会得到相同的结果
print(random.randint(0, 10))
## 2
# 假设输出为2(实际输出可能因版本而异)
print(random.randint(0, 10))
## 9
# 假设输出为某个特定数字(与上次不同,但因为是同一种子,所以可重复)
print(random.randint(0, 10))
## 1