python标准库之随机

python标准库中的random模块可以用来生成(伪)随机数。随机数不仅可以用于数学用途,还经常被嵌入到算法中,用以提高算法效率,并提高程序的安全性。

一、生成随机数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import random

# 随机种子,不设置时默认以系统时间为种子
random.seed(3)

# 返回[0,1)之间的随机浮点数
print(random.random())

# 返回[a,b]之间的随机整数
print(random.randint(1, 100))

# 返回[a,b]之间的随机小数
print(random.uniform(1, 100))

# 返回k比特长度的随机整数
print(random.getrandbits(8))

# randrange(start,stop[,step]), 返回[start,stop)之间以step为步长的随机整数, step不设时默认值为1
print(random.randrange(0, 3, 2))

二、随机抽取和随机排序

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import random

# 随机种子,不设置时默认以系统时间为种子
random.seed(3)

# 序列抽1签: 从序列类型seq中随机返回一个元素
print(random.choice([1, 2, 3, 4, 5]))

# 序列抽K签: 从序列类型seq中选取k个元素,以列表类型返回
print(random.sample([1, 2, 3, 4, 5], 3))

# 序列洗牌: 将序列类型中元素随机排序, 返回打乱后序列, seq被改变(无返回值)
l = [1, 2, 3, 4, 5]
random.shuffle(l)
print(l)