首页 > Python基础应用 > Python 进阶应用教程 > 17 Python 标准库之 random 模块

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()
0.02834747652200631
>>> random.random()
0.8357651039198697
>>> random.random()
0.43276706790505337
  • 调用 3 次 random.random(),产生 3 个不同的数
  • 每次产生的数都是在 [0.0, 1.0) 之间

2. random.seed(seed)

计算机使用确定性的算法计算出一个随机数序列。计算机产生的随机数并不真正的随机,但具有类似于随机数的统计特征,如均匀性、独立性等。

计算机根据随机数种子产生随机数序列,如果随机数种子相同,每次产生的随机数序列是相同的;如果随机数种子不同,产生的随机数序列是不同的。

random.seed(seed) 的功能是初始化给定的随机数种子,示例如下:

>>> import random
>>> random.seed(10)
>>> random.randint(0, 100)
73
>>> random.randint(0, 100)
4
>>> random.randint(0, 100)
54
>>> random.seed(10)
>>> random.randint(0, 100)
73
>>> random.randint(0, 100)
4
>>> random.randint(0, 100)
54
  • 在第 2 行,设定种子为 10
    • 在第 4 行,产生第 1 个随机数 73
    • 在第 6 行,产生第 2 个随机数 4
    • 在第 8 行,产生第 3 个随机数 54
  • 在第 9 行,设定种子为 10
    • 在第 11 行,产生第 1 个随机数 73
    • 在第 13 行,产生第 2 个随机数 4
    • 在第 15 行,产生第 3 个随机数 54
  • 可以看出,当种子相同时,产生的随机数序列是相同的

3. random.randint(a, b)

random.randint(a, b) 的功能是生成一个 [a, b] 之间的随机整数,示例如下:

>>> import random
>>> random.randint(0, 2)
1
>>> random.randint(0, 2)
0
>>> random.randint(0, 2)
1
>>> random.randint(0, 2)
2

在例子中,randint(0, 2) 产生 [0, 2] 之间的随机整数。

4. random.uniform(a, b)

random.uniform(a, b) 的功能是生成一个 [a, b] 之间的随机小数,示例如下:

>>> import random
>>> random.uniform(0, 2)
0.20000054219225438
>>> random.uniform(0, 2)
1.4472780206791538
>>> random.uniform(0, 2)
0.5927807855738692

在例子中,uniform(0, 2) 产生 [0, 2] 之间的随机小数。

5. random.choice(seq)

random.choice(seq) 的功能是从序列 seq 中随机选择一个元素,示例如下:

>>> import random
>>> seq = [1, 2, 3, 4]
>>> random.choice(seq)
3
>>> random.choice(seq)
1
  • 在第 4 行,第一次随机选择元素 3
  • 在第 6 行,第一次随机选择元素 1

6. random.shuffle(seq)

random.shuffle(seq) 的功能是将序列 seq 中元素随机排列, 返回打乱后的序列,示例如下:

>>> import random
>>> seq = [1, 2, 3, 4]
>>> random.shuffle(seq)
>>> seq
[1, 3, 2, 4]
  • 在第 2 行,建立一个有序列表
  • 在第 3 行,使用 shuffle 将原来的有序列表重新随机排序
本文来自互联网用户投稿,不拥有所有权,该文观点仅代表作者本人,不代表本站立场。
访问者可将本网站提供的内容或服务用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯本网站及相关权利人的合法权利。
本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站,邮箱:80764001@qq.com,予以删除。
© 2023 PV138 · 站点地图 · 免责声明 · 联系我们 · 问题反馈