Python随机模块

2025 年 8 月 5 日 | 阅读 7 分钟

在 Python 中,Random 模块是一个内置模块,允许我们生成随机数。Random 模块生成伪随机数,这意味着这些数字在技术上不是随机的。Random 模块可以在 Python 中生成数字、字符串或列表等随机对象。

Python Random Module

Python Random 模块中的 Seed 值是什么?

Seed 值是 Random 模块中用于生成一组固定随机数的数字。这似乎有些讽刺和令人困惑,对吧?

让我们看一些例子来理解 Seed 值在 Python Random 模块中的用法

示例:Seed 值的用法

示例

输出

0.13436424411240122
0.8474337369372327
0.763774618976614

说明

我们使用 seed 值打印了随机数。无论您运行代码多少次,它都会给出相同的值。但是,如果您添加另一个 print(random.random()) 语句,它将打印一个不同的值,当您再次运行带有该附加语句的代码时,输出不会改变。

让我们在此代码中添加另一个 print(random.random()) 语句

示例

输出

0.6229016948897019
0.7417869892607294
0.7951935655656966
0.9424502837770503
#running the code 2nd time
0.6229016948897019
0.7417869892607294
0.7951935655656966
0.9424502837770503

说明

在这里,我们使用 seed 值设置为 5 的 Random 模块打印了随机数。如我们所见,当我们添加另一个 print(random.random()) 语句时,它生成了一个新的随机值。但是现在,即使我们运行多次,输出也不会改变。

Python Random 模块中的函数

Python Random 模块中有各种类型的函数。让我们来看一下

序号函数描述
1)seed()它生成一组固定的随机数
2)getstate()它给出随机数生成器的当前内部状态。
3)getrandbits()生成随机比特
4)randrange()在指定范围内生成随机数
5)randint()它也在给定范围内生成随机数。
6)setstate()它恢复随机数生成器的内部状态。
7)choice()它从序列中给出一个随机数。
8)choices()它从序列中给出多个数字
9)shuffle()此函数可以随机打乱序列中的项目
10)sample()此函数返回序列的给定样本
11)random()此函数返回 0 和 1 之间的随机浮点数
12)uniform()返回两个给定参数之间的随机浮点数
13)triangular()返回两个给定参数之间的随机浮点数。您还可以设置一个模式参数来指定另外两个参数之间的中点。
14)betavariate()它根据 Beta 分布给出 0 和 1 之间的随机浮点数。
15)expovariate()它根据指数分布给出随机浮点数。
16)gammavariate()它根据 Gamma 分布给出随机浮点数。
17)gauss()此函数根据高斯分布生成随机浮点数。
18)lognormvariate()此函数根据对数正态分布给出随机浮点数。
19)normalvariate()此函数根据正态分布给出随机浮点数
20)vonmisesvariate()此函数根据 Von Mises 分布返回随机浮点数。
21)paretovariate()此函数根据 Pareto 分布返回随机浮点数。
22)weibullvariate()此函数根据 Weibull 分布返回随机浮点数。

Python Random 模块示例

使用 randint() 函数

我们可以使用 random.randit() 函数打印随机整数。让我们通过一个例子来看看

示例

输出

8

说明

在上面的示例中,我们导入了 random 模块并使用 randint() 函数在 1 到 15(包括这两个数字)的范围内打印了一个随机整数值。

使用 randrange() 函数

我们可以使用 random.randrange() 函数从指定范围打印随机整数。我们还可以包含一个步长值,这将为我们提供打印具有特定间隔的随机数的更多控制权。

让我们通过一个例子来理解这一点

示例

输出

#first run
7
#second run	
1
#third run	
13

说明

在这里,我们使用 randrange() 函数在指定范围内打印随机整数,将步长值设置为 2。步长值将在 2 的间隔内提供随机整数,不包括 15。

例如,使用步长值 = 2,我们只会从这些数字中获得数字

生成 0 到 1 之间随机浮点数的示例

要生成 0 到 1 之间的随机浮点数,我们使用 random() 函数。在代码中,我们写成 random.random(),让我们在示例中使用它

示例

输出

0.6231843843709984

说明

在上面的示例中,我们使用 random() 函数在 0 到 1 之间打印了一个随机浮点数。在代码中,写成 random.random()

随机从列表、字符串和元组中选择的示例

在这里,我们将使用 choice() 函数从列表、字符串和元组中随机选择元素。

让我们通过一个例子来理解这一点

示例

输出

6
o
9

说明

在此示例中,我们使用了 random.choice() 函数从 列表字符串元组 中返回随机元素。

打乱列表中元素的示例

shuffle() 函数用于随机打乱或更改元素的位置。这是通过使用 random.shuffle() 方法完成的。

让我们通过一些例子来看看 shuffle() 函数是如何工作的

示例 1:打乱数字

示例

输出

After shuffle : 
[3, 9, 7, 8, 1, 4, 2, 5]

Second shuffle : 
[8, 3, 1, 7, 9, 5, 4, 2]

Third shuffle : 
[7, 2, 4, 8, 9, 5, 3, 1]

说明

在上面的示例中,我们使用了 random.shuffle() 函数随机打乱或更改了元素的顺序。

类似地,我们也可以使用 random.shuffle() 函数来随机打乱字符串,但前提是将它们放入一个列表中。让我们通过下面的例子来学习

示例 2:打乱字符串

我们正在使用 random.shuffle() 函数随机打乱字符串。

示例

输出

After shuffle : 
['point', 'T', 'Tech']

Second shuffle : 
['point', 'Tech', 'T']

Third shuffle : 
['T', 'point', 'Tech']

说明

在上面的示例中,我们使用了 random.shuffle() 函数,在将字符串放入列表后,随机地打乱或更改了字符串的位置,因为 random.shuffle() 仅适用于列表等可变序列。

Python Random 模块的应用

Python Random 模块有多种应用,例如

  1. 生成随机数 - 这可以用于游戏或彩票。
  2. 洗牌 - 可用于扑克牌洗牌和其他活动。
  3. 创建随机密码 - 我们可以创建随机密码,这将增强安全性。
  4. 机器学习和数据科学 - 随机训练数据集。

结论

Python Random 模块是一个内置模块,允许我们生成随机数。它生成伪随机数,这意味着这些数字在技术上不是随机的。Random 模块可以生成数字、字符串或列表等对象。

Python Random 模块也有多种应用,例如生成随机数、洗牌、创建随机密码和 PIN。它也用于机器学习,以随机方式训练数据集。

常见问题解答 (FAQs)

1. Python 中的 random 模块是什么?

在 Python 中,Random 模块是一个内置模块,允许我们生成随机数。

2. Python 的随机数真的随机吗?

不,Random 模块生成伪随机数,这意味着这些数字在技术上不是随机的。

3. 如何在 Python 中生成随机整数?

我们可以使用 random.randint(x,y) 函数在 Python 中生成随机整数,其中 x 和 y 都被包含在内。

4. randrange() 和 randint() 有什么区别?

randrange() 和 randint() 函数之间有一个非常小的区别。random.randint(x,y) 包含 x 和 y。

random.randrange(x, y, step value) 的工作方式类似于带步长值的 range,y 被排除在外。

5. random.shuffle() 是否适用于字符串和元组?

不,random.shuffle() 仅适用于可变序列,例如列表。但是,字符串和元组可以转换为列表。

6. 如何随机打乱列表?

我们可以使用 random.shuffle(*listname*) 函数来随机打乱列表。

7. Random 模块中的 seed 函数是什么?

Seed 值是 Random 模块中用于生成一组固定随机数的数字。


下一个主题Python 统计模块