在本节中,我们将学习如何使用random模块(random)在Python中生成随机数和数据。该模块为各种分布(包括整数,浮点数(实数))实现了伪随机数生成器。
本文的目标:
以下是我们将在本文中介绍的常见操作的列表。
为各种分布生成随机数,包括整数和浮点数。
随机抽样并从总体中选择元素。
random模块的功能。
随机播放序列数据。播种随机生成器。
生成随机字符串和密码。
使用秘密模块的加密安全随机生成器。生成安全令牌,安全密钥和URL
如何设置随机发生器的状态。
使用NumPy的random生成随机数组。
使用UUID模块生成唯一ID
如何使用random模块random模块具有各种功能来完成所有上述任务。我们将在本文的后半部分看到如何使用这些功能。
您需要在程序中导入random模块,然后就可以使用该模块了。使用以下语句将random模块导入代码中。
import random现在让我们看看如何使用random模块。
import random print("Printing random number using random.random()") print(random.random())如您所见,我们得到了0.50。您可能会得到其他号码。
random()是random模块的最基本功能。
random模块的几乎所有功能都依赖于基本功能random()。
random() 返回范围为[0.0,1.0)的下一个随机浮点数。
random模块功能现在,让我们看看random模块中可用的不同功能及其用法。
random.randint(a,b)使用random.randint()生成一定范围内的随机整数。让我们看一下生成0到9之间的随机数的示例。
import random print("Random integer is", random.randint(0, 9)) random.randrange(start, stop [, step])此函数从中返回随机选择的整数range(start, stop, step)。使用此函数可生成范围内的随机整数。例如, random.randrange(2, 20, 2)将返回2到20之间的任意随机数,例如2、4、6,…18。
import random print("Random integer is", random.randrange(2, 20, 2)) random.choice(seq)使用该random.choice功能从列表或任何序列中随机选择一个项目。
import random city_list = [\'New York\', \'Los Angeles\', \'Chicago\', \'Houston\', \'Philadelphia\'] print("Random element from list:", random.choice(city_list)) random.sample(population, k)要从列表或任何序列中随机选择多个元素时,请使用此功能。
import random city_list = [\'New York\', \'Los Angeles\', \'Chicago\', \'Houston\', \'Philadelphia\'] print("Pick 2 Random element from list:", random.sample(city_list, 2)) random.choices() random.choices(population, weights=None, *, cum_weights=None, k=1)如果要从序列中随机选择多个元素,请使用此方法。在Python 3.6版中引入的Choices方法可以重复元素。这是带有替换的随机样本。
import random #sampling with replacement list = [20, 30, 40, 50 ,60, 70, 80, 90] sampling = random.choices(list, k=5) print("sampling with choices method ", sampling)将random.choices()主要用于实现加权随机选择,这样我们就可以选择不同的概率列表元素
random.seed(a=None, version=2)seed函数用于初始化 Python中的伪随机数生成器。random模块使用种子值作为基础来生成随机数。如果不存在种子值,则需要系统当前时间。如果在调用任何random模块函数之前使用相同的种子值,则每次都会获得相同的输出。
import random # Random number with seed 6 random.seed(6) print(random.randint(10, 20)) random.seed(6) print(random.randint(10, 20)) random.shuffle(x [,random])使用此功能可以随机排列或随机化列表或其他序列类型。该shuffle功能可就地随机播放列表。最常见的例子是洗牌。
list = [2,5,8,9,12] random.shuffle(list) print ("Printing shuffled list ", list) random.uniform(开始,结束)使用random.uniform()生成一定范围内的浮点数。
import random print("floating point within given range") print(random.uniform(10.5, 25.5)) random.triangular(低,高,模式)该random.triangular()函数返回一个随机浮点数N,使得lower <= N <= upper 在这些边界之间具有指定的模式。
下限的默认值为零,上限为1。此外,peak参数默认为边界之间的中点,从而给出对称分布。
使用该random.triangular()函数生成用于三角分布的随机数,以在仿真中使用这些数。即从三角概率分布中产生值。
import random print("floating point triangular") print(random.triangular(10.5, 25.5, 5.5)) 产生随机字串在本节中,我将让您知道如何在python中生成固定长度的随机字符串。
本指南包括以下内容:–
随机生成固定长度的字符串。
获取带有字母和数字的随机字母数字字符串。
生成包含字母,数字和特殊符号的随机密码。
Python中的加密安全随机生成器由random模块生成的随机数和数据不是加密安全的。那么,如何生成在Python中具有加密安全性的随机数呢?