geekdoc-python-zh/docs/py4b/how-to-use-the-random-modul...

5.4 KiB
Raw Permalink Blame History

如何使用 Python 中的随机模块

原文:https://www.pythonforbeginners.com/random/how-to-use-the-random-module-in-python

在这篇文章中,我将描述 Python 中随机模块的使用。随机模块提供对支持许多操作的功能的访问。也许最重要的是它允许你生成随机数。

Python 中什么时候使用 Random 模块?

如果你想让计算机在一个给定的范围内挑选一个随机数,从一个 python 列表中挑选一个随机元素,从一副牌中挑选一张随机牌,掷硬币等等,你可以使用 python 中的 random 模块。您还可以使用随机模块来创建随机字符串,同时选择密码以使您的密码数据库更加安全,或者为您网站的随机页面功能提供动力。

Python 中的随机函数

随机模块包含一些非常有用的函数,即 randint()函数、Random()函数、choice()函数、randrange()函数和 shuffle()函数。让我们逐一讨论这些功能。

Python 中的 randint()函数

python random 模块中定义的 randint()函数可用于在一个范围内创建随机字符串。该函数将两个数字作为其输入参数。第一个输入参数是范围的开始第二个输入参数是范围的结束。执行后randint()函数返回给定范围内的随机整数。

如果我们想要一个随机整数,我们可以使用 randint()函数。例如,您可以生成 1 到 5 之间的随机整数,如下例所示。

import random
print random.randint(0, 5) 

上述代码将输出 1、2、3、4 或 5。这里您应该确保 randint()函数中的第一个输入参数应该小于第二个输入参数。否则,程序会出错。

random()函数

python random 模块中的 random()函数用于生成 0 到 1 之间的随机数。执行时random()函数返回一个介于 0 和 1 之间的浮点数。

如果你想要一个更大的数字,你可以把它乘以一个更大的值。例如,要创建一个 0 到 100 之间的随机数,可以将 random()函数的输出乘以 100如下所示。

import random
random.random() * 100 

choice()函数

choice()函数用于从一个集合对象中选择一个随机元素,比如列表、集合、元组等。该函数将集合对象作为其输入参数,并返回一个随机元素。

例如,通过将颜色名称列表作为输入传递给 choice()函数,可以从颜色列表中选择一种随机颜色,如下例所示。

random.choice( ['red', 'black', 'green'] ). 

choice 函数通常用于从列表中选择一个随机元素。

import random
myList = [2, 109, False, 10, "Lorem", 482, "Ipsum"]
random.choice(myList) 

函数的作用是

顾名思义shuffle 函数将列表中的元素打乱顺序。shuffle()函数将一个列表作为输入参数。执行后,列表中的元素以随机的顺序被打乱,如下例所示。

from random import shuffle
x = [[i] for i in range(10)]
shuffle(x) 
Output:
# print x  gives  [[9], [2], [7], [0], [4], [5], [3], [1], [8], [6]]
# of course your results will vary 

randrange()函数

python random 模块中的 randrange()函数用于从给定的范围中选择一个随机元素。它采用三个数字作为输入参数,即开始、停止和步进。执行后,它从范围(开始、停止、步进)中生成一个随机选择的元素。要了解 range()函数的工作原理,可以阅读这篇关于 python range 的文章。

random.randrange(start, stop[, step]) 
import random
for i in range(3):
    print random.randrange(0, 101, 5) 

实际上randrange()函数是 choice()函数和 range()函数的组合。

Python 中随机模块的代码示例

下面的代码示例使用 choice()函数来计算 10000 次投掷中正面和反面的数量。为此,我们定义了一个名为 outcomes 的字典来存储正面和反面的数量。接下来,我们使用 python 字典的 keys()方法来获取列表["heads "" tails"]。之后,我们使用 choice()函数从列表中随机选择一个值,并根据输出更新结果字典。

import random
import itertools

outcomes = { 'heads':0,
             'tails':0,
             }
sides = outcomes.keys()

for i in range(10000):
    outcomes[ random.choice(sides) ] += 1

print 'Heads:', outcomes['heads']
print 'Tails:', outcomes['tails'] 

只允许两种结果,所以与其使用数字并转换它们,不如将单词“正面”和“反面”与 choice()一起使用。

使用结果名称作为关键字,将结果列表显示在字典中。

$ python random_choice.py

Heads: 4984
Tails: 5016 

结论

在本文中,我们讨论了 Python 中 random 模块的不同函数。我们还讨论了一个使用 choice()函数模拟抛硬币的代码示例。

要了解更多关于 python 编程的知识,你可以阅读这篇关于 Python 中的列表理解的文章。你可能也会喜欢这篇关于字符串操作的文章。

我希望你喜欢阅读这篇文章。请继续关注更多内容丰富的文章。

快乐学习!