17611538698
webmaster@21cto.com

怎样在 Python 中生成随机数

编程语言 0 414 2024-04-25 08:49:25

图片

随机数在编程中是一件很棘手的事情,尤其是当您需要真正的随机性时。

不幸的是,在计算机的世界里,真正的随机性实际上是不可能的。为什么?计算机只能做它们被告知的事情。为了实现真正的随机性,您必须引入外部影响来使其发生(例如移动鼠标、在键盘上键入随机字符、风速等事件)。

然而,伪随机性是可能的,这就是我们正在讨论的。

在Python 程序中使用随机数非常有用。例如,假设您玩《龙与地下城》并希望创建一个小型 Python 程序来为您摇号。当然,滚动物理骰子给玩家带来了很大的满足感,但为此创建一个有趣的小应用程序是学习在 Python 中使用随机数的好方法。

让我告诉你怎么做——它从随机模块开始。

什么是随机模块?

Python random 随机模块内置于 Python 中。因此无需在安装 Python 后再次安装它。random包含多种方法,例如:

seed() – 初始化随机数生成器。

getstate() – 返回随机数生成器的当前状态

randrange() – 返回给定范围内的随机数(不包括端点)

randint() – 返回给定范围(包括两个端点)之间的随机数

choice() – 返回给定序列中的随机元素

shuffle() – 打乱数字序列并以随机顺序返回它们


让我首先演示使用一个非常简单的应用程序生成随机数,该应用程序运行时将生成特定范围内的单个随机数。

你需要准备什么

为此,您唯一需要的是一台安装了 Python3的台式机或笔记本电脑,里面可以是 Linux、MacOS 或 Windows系统。当然,您还需要一个文本编辑器。

我将在 Ubuntu Budgie 和 nano 编辑器上演示这些代码。如果您使用不同的平台(或不同的编辑器),则需要更改文件创建命令。除此之外应该能够毫无问题地进行操作。

一个简单的随机数生成器

对于我们的第一个应用程序,我将使用 randint() 生成 0 到 10 之间的随机数。应用程序中的第一件事是导入随机模块:

import random

我们的下一行将使用 randint() 函数定义一个变量 n,如下所示:

n = random.randint(0,10)


请注意,我们不是使用 n = randint(0,10),因为我们必须告诉 Python randint()方法明确属于哪个模块。

最后,我们告诉 Python 打印 n:

print(n)

上面的行将打印出 randint(0,10) 的结果。

整个应用程序如下所示:

import random 
n = random.randint(0,10)
print(n)

用以下命令创建新文件:

nano simplerand.py


将以上代码粘贴到文件中并保存。接着使用以下命令运行应用程序:

python3 simplerand.py

每次运行该程序时,您都应该看到一个 0 到 10 之间的伪随机数。

如果您不想包含限制的外部范围,则可以使用randrange()函数。通过使用此函数,您可以从随机性中排除 0 和 10 作为选项。该代码如下所示:

import random 
n = random.ranrange(0,10)
print(n)

稍微复杂一点的随机数生成器

当然,上面的应用程序并不是很方便,尤其是当您正在进行 D&D 时。您可能需要掷 3、6、10、20 或 100 面的骰子。让我向您展示创建它是多么容易。

为此,我们将接受用户的输入并告诉他们输入所需的骰子面。当然,我们做的第一件事是引入随机库:

import random

我们的下一行使用input()函数 定义 number_1,如下所示:

number_1 = input("Enter the number of sides on your dice from 3, 6, 10, 20, and 100: ")

下一行有一点繁琐,因为我们必须确保 Python 知道我们范围内的第一个数字始终为 0(因为您必须考虑到严重的遗漏,对吧?

该行看起来像这样:

n = random.randint(0,int(number_1))

因此,我们将 n 设置为一个随机数,范围从 0 到用户输入的任何值(由 number_1 定义)。

最后,我们告诉 Python 使用以下行打印结果:

print(n)

我们的整个程序如下所示:

import random 
number_1 = input("Enter the number of sides on your dice from 3,10,20, and 100: ")
n = random.randint(0,int(number_1))
print(n)

使用以下命令创建新文件:

nano rando.py

使用以下命令运行应用程序:

python3 rando.py

每次运行该应用程序时,您都会得到一个伪随机结果,范围从 0 到用户输入的任何数字。

一个有趣的旋转是在混合中添加一个 while 循环,这样您就不必一遍又一遍地运行程序来查看骰子的滚动。该代码如下所示:

import random 
while True:
number_1 = input("Enter the number of sides on your dice from 3, 6, 10, 20, and 100: ")
n = random.randint(0,int(number_1))
print(n)


当你运行上面的代码时,它会不断要求输入并输出一个随机数。要结束应用程序,请按 Ctrl+C 键盘快捷键即可。

这便是 Python 中的简单随机数生成。

作者:万能的大雄

评论