Python 程序生成随机数

2024年9月5日 | 7分钟阅读

当应用程序需要随机数生成器时,在编程世界中生成随机数变得至关重要。随机数生成通常用于彩票、游戏和许多应用程序中。

Python 提供了几种生成随机数的方法。在 Python 中,我们可以通过导入“random”模块在各种范围内生成随机整数、双精度浮点数、长整数等。

在本文中,我们将探讨在 Python 中生成随机数的各种方法。

使用 random 模块生成随机数

在以下示例中,我们将学习如何使用 random 模块生成随机数。

语法

首先,我们必须导入 random 模块,然后应用语法

1. 生成随机数 - 使用 random() 函数

random 模块提供了一个 **random()** 方法,它生成一个介于 0 和 1 之间的浮点数。让我们看以下示例。

输出

Random Number between 0 to 1: 0.11835380687392505
Random Number between 0 to 1: 0.2563622979831378
Random Number between 0 to 1: 0.4344921246881883

说明

在上面的示例中,我们使用了 random 函数来生成一个介于 0 到 1 之间(包括 0 和 1)的随机数。当我们再次执行 random 函数时,我们将得到不同的输出,如上所示。

2. 在给定范围内生成数字 - 使用 randint() 函数

Python random 模块提供了 **randint()** 方法,它在特定范围内生成整数。我们可以将两个数字作为参数传递,它们定义了范围。让我们理解以下示例。

示例 - 1:使用 randint() 函数生成一个 0 到 50 之间的随机整数

输出

Random Number between 0 to 50: 12
Random Number between 0 to 50: 18
Random Number between 0 to 50: 8

说明

在上面的示例中,指定范围是 0 到 50。randint 函数巧妙地生成一个介于 0 和 50 之间(包括 0 和 50)的随机数。当我们再次执行该函数时,我们会在相同的范围内得到一个不同的随机数。

示例 - 2:使用 randint() 函数生成一个 100 到 200 之间的随机整数

输出

Random Integer between 100 to 200: 175
Random Integer between 100 to 200: 145
Random Integer between 100 to 200: 167

说明

这里,randint() 函数也在指定范围 100 到 200 之间生成一个随机数。每次我们调用 randint() 函数,它都会返回相同范围内的数字。

使用 for 循环创建随机整数列表

**randint()** 方法可以与 for 循环一起使用来生成随机数列表。为此,我们需要创建一个空列表,然后将生成的随机数一个接一个地追加到空列表中。让我们理解以下示例。

示例 - 使用 for 循环创建随机整数列表

输出

List of random integers: [50, 25, 43, 48, 24, 20, 39, 45, 32, 28]

说明

在上面的示例中,我们首先导入了 random 模块。之后,我们创建了一个列表来存储随机数。通过使用 for 循环,我们迭代地生成了十个随机整数并将它们存储在 rand_list 中。最后,我们将列表打印到控制台。

我们可以通过使用 sample 函数轻松创建随机整数列表,请参阅下面的示例

3. 使用 random.sample() 生成随机整数列表

random 模块还提供了 **sample()** 方法,它可以直接生成随机数列表。下面是一个使用 **sample()** 方法生成随机数的示例。

示例 - 使用 sample() 函数生成随机数列表

输出

List of random integers one [34, 21, 15, 25, 17, 10, 37, 18, 20, 30]
List of random integers two [4, 8, 5, 9, 1]

说明

在上面的代码中,我们使用了 range() 函数,它生成给定范围内的数字。然后 sample 函数返回一个长度为 10 的列表,其中包含从 range(10, 40) 中选择的随机整数。此外,我们还使用了整数列表并将其传递给 sample 函数。sample 函数从列表中选择五个随机数并返回一个包含这些随机数的列表。我们还可以将字符串、元组和集合传递给 sample 函数。

4. 在 Python 中使用 Uniform() 生成随机数

uniform() 函数用于在 Python 中生成随机浮点数。uniform() 函数允许我们在指定范围内生成随机数。

让我们看看如何在 Python 中使用 uniform() 函数生成随机数。

输出

Random Number 1: 0.9036830628327847
Random Number 2: 0.5129018404378839
Random Number 3: 0.10637532891792578

说明

在上面的示例中,我们使用了 uniform 函数,它在指定范围内生成一个随机浮点数。uniform 函数接受两个参数,下限和上限,并返回它们之间的随机数。这里,范围是 0 到 1,包括 0 和 1。uniform 函数生成的随机数都在这个范围内。

您还可以修改范围以在不同的范围内生成随机数。请参阅下面的示例代码

这里,uniform 函数在指定范围内生成随机数。

值得注意的是,uniform 函数使用伪随机数生成器。我们可以使用 random.seed() 函数设置种子值。它将初始化随机数生成器。

这意味着如果我们使用相同的种子值,每次运行程序时都会得到相同的随机数序列。

这是一个如何使用 random.seed() 的示例

输出

6.754841186120954
1.2250967970040025
3.4752638653220735

当我们运行相同的程序时,我们得到相同的输出

6.754841186120954
1.2250967970040025
3.4752638653220735

在结束讨论之前,让我们了解洗牌的概念。

使用 random.shuffle() 函数随机重新排序列表

洗牌的想法是指随机重新排序序列的元素。在 Python 中,random 模块包含 shuffle() 函数,它随机重新排序列表的元素。

演示如何在 Python 中使用 shuffle() 函数对列表进行洗牌的示例

输出

Before Shuffling: [1, 2, 3, 4, 5]
After first Shuffling: [2, 3, 1, 5, 4]
After second Shuffling: [4, 1, 5, 2, 3]

说明

在上面的代码中,我们使用了 shuffle 函数来重新排序 my_list 的元素。shuffle() 函数随机重新排序 my_list 中的元素。最后,我们打印洗牌后的列表。

此外,我们通过首先将字符串转换为列表,洗牌列表,然后将元素重新连接成字符串来对字符串应用洗牌。以下是您如何做到这一点

输出

Original string: Hello, World!
Shuffled String: H,oelWl!dro l

说明

在上面的示例中,我们首先将字符串转换为列表,使用 random.shuffle() 函数洗牌列表,然后将列表转换回字符串。最后,我们打印洗牌后的字符串。

结论

Python 提供了几种在 random 模块中生成随机数的方法。我们探索了使用 random()、randint()、sample() 和 uniform() 函数生成随机数的不同方法。

此外,我们讨论了 random.seed() 用于设置种子值,random.shuffle() 函数可用于随机洗牌列表的元素。

我们可以使用 Python 中 random 模块的这些灵活方法根据我们的特定要求生成随机数。