Python Random 模块
随机数是随机产生的数,比如购买彩票,中奖的号码就是随机的。random 库是用于生成随机数的 Python 标准库,random 库提供如下函数:
函数 | 功能 |
---|---|
random() | 生成一个 [0.0, 1.0) 之间的随机小数 |
seed(seed) | 初始化给定的随机数种子 |
randint(a, b) | 生成一个 [a, b] 之间的随机整数 |
uniform(a, b) | 生成一个 [a, b] 之间的随机小数 |
choice(seq) | 从序列 seq 中随机选择一个元素 |
shuffle(seq) | 将序列 seq 中元素随机排列, 返回打乱后的序列 |
1. random.random()
random.random() 的功能是生成一个 [0.0, 1.0) 之间的随机小数,示例如下:
>>> import random>>> random.random()>>> random.random()>>> random.random()
调用 3 次 random.random(),产生 3 个不同的数
每次产生的数都是在 [0.0, 1.0) 之间
2. random.seed(seed)
计算机使用确定性的算法计算出一个随机数序列。计算机产生的随机数并不真正的随机,但具有类似于随机数的统计特征,如均匀性、独立性等。
计算机根据随机数种子产生随机数序列,如果随机数种子相同,每次产生的随机数序列是相同的;如果随机数种子不同,产生的随机数序列是不同的。
random.seed(seed) 的功能是初始化给定的随机数种子,示例如下:
>>> import random>>> random.seed()>>> random.randint(, )>>> random.randint(, )>>> random.randint(, )>>> random.seed()>>> random.randint(, )>>> random.randint(, )>>> random.randint(, )
在第 2 行,设定种子为 10
在第 9 行,设定种子为 10
可以看出,当种子相同时,产生的随机数序列是相同的
3. random.randint(a, b)
random.randint(a, b) 的功能是生成一个 [a, b] 之间的随机整数,示例如下:
>>> import random>>> random.randint(, )>>> random.randint(, )>>> random.randint(, )>>> random.randint(, )
在例子中,randint(0, 2) 产生 [0, 2] 之间的随机整数。
4. random.uniform(a, b)
random.uniform(a, b) 的功能是生成一个 [a, b] 之间的随机小数,示例如下:
>>> import random>>> random.uniform(, )>>> random.uniform(, )>>> random.uniform(, )
在例子中,uniform(0, 2) 产生 [0, 2] 之间的随机小数。
5. random.choice(seq)
random.choice(seq) 的功能是从序列 seq 中随机选择一个元素,示例如下:
>>> import random>>> seq = [, , , ]>>> random.choice(seq)>>> random.choice(seq)
6. random.shuffle(seq)
random.shuffle(seq) 的功能是将序列 seq 中元素随机排列, 返回打乱后的序列,示例如下:
>>> import random>>> seq = [, , , ]>>> random.shuffle(seq)>>> seq[, , , ]