怎么使用Python随机模块

  介绍

这期内容当中小编将会给大家带来有关怎么使用Python随机模块,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

随机模块主要包含生成伪随机数的各种功能变量和函数。

在Python的交互式解释器中先导入随机模块,然后输入随机的。__all__命令(__all__变量代表了该模块开放的公开接口),即可看到该模块所包含的全部属性和函数:

在祝辞祝辞random.__all__   [& # 39;随机# 39;,,& # 39;种子# 39;,,& # 39;随机# 39;,,& # 39;统一# 39;,,& # 39;randint& # 39;,, & # 39;选择# 39;,,& # 39;示例# 39;,,& # 39;randrange& # 39;,, & # 39;洗牌# 39;,,& # 39;normalvariate& # 39;,,   & # 39;lognormvariate& # 39;,, & # 39; expovariate& # 39;,, & # 39; vonmisesvariate& # 39;,, & # 39; gammavariate& # 39;,, & # 39;三角# 39;,,& # 39;高斯# 39;,,& # 39;betavariate& # 39;,,   & # 39;paretovariate& # 39;,, & # 39; weibullvariate& # 39;,, & # 39; getstate # 39;,, & # 39;设置状态# 39;,,& # 39;getrandbits& # 39;,, & # 39;选择# 39;,,& # 39;SystemRandom& # 39;]

在随机模块下提供了如下常用函数:

随机的。种子(==None,版本2):指定种子来初始化伪随机数生成器。

随机的。randrange(启动、停止,停止]):返回从开始开始到停止结束,步长为步骤的随机数。其实就相当于选择(范围(启动、停止、步骤)的效果,只不过实际底层并不生成区间对象。

随机的。randint (a, b):生成一个范围为≤N≤b的随机数。其等同于randrange (a、b + 1)的效果。

random.choice (seq):从seq中随机抽取一个元素,如果seq为空,则引发IndexError异常。

随机的。选择(seq,权重=None, cum_weights=None, k=1):从seq序列中抽取k个元素,还可通过重量指定各元素被抽取的权重(代表被抽取的可能性高低)。

随机的。洗牌(x(随机)):对x序列执行洗牌”随机排列“操作。

随机的。示例(人口、k):从人口序列中随机抽取k个独立的元素。

random.random():生成一个从0.0(包含)到1.0(不包含)之间的伪随机浮点数。

随机的。制服(a, b):生成一个范围为≤N≤b的随机数。

random.expovariate (lambd):生成呈指数分布的随机数。其中lambd参数(其实应该是λ,只是λ是Python关键字,所以简写成lambd)为1除以期望平均值。如果lambd是正值,则返回的随机数是从0到正无穷大;如果lambd为负的值,则返回的随机数是从负无穷大到0。

下面程序示范了随机模块中常见函数的功能和用法:

import 随机的   #生成范围为0.0≤x<1.0,的伪随机浮点数   print  (random.random ())   #生成范围为2.5≤x<10.0,的伪随机浮点数   print  (random.uniform (2.5, 10.0))   #生成呈指数分布的伪随机浮点数   print  (random.expovariate (1/5))   #生成,从0到9,的伪随机整数   print (random.randrange (10))   #生成,从0到100,的随机偶数   print  (random.randrange (0,, 101,,, 2))   #随机抽取一个元素   print  (random.choice  ([& # 39; python # 39; & # 39;迅速# 39;,& # 39;芬兰湾的科特林# 39;)))   book_list =, (& # 39; python # 39; & # 39;迅速# 39;,& # 39;芬兰湾的科特林# 39;】   #对列表元素进行随机排列   random.shuffle  (book_list)   print  (book_list)   #随机抽,取4个独立的元素   print  (random.sample ([10, 20,,, 30,,, 40,,, 50),, k=4))

运行上面程序,可以看到如下输出结果:

0.7097266660597923   6.4845555071809535   9.707899380000603   2   70   Python   [& # 39;迅速# 39;,,& # 39;python # 39;,, & # 39;芬兰湾的科特林# 39;】   (20日,10日,30日,50)

import 随机的   import 集合   6,#指定随机抽取个元素,各元素被抽取的权重(概率)不同   print (random.choices ([& # 39; python # 39; & # 39;迅速# 39;,& # 39;芬兰湾的科特林# 39;],,[5,,5,,1],,k=6))   #下面模拟从52,张扑克牌中抽取20,张   #在被拍到的20,张牌中,牌面为10(包括J, Q, K的的牌占多大比例   #生成一个16个十(代表10)和36个,个low_cards(代表其他牌)的集合   甲板=,collections.Counter(十=16日,low_cards=36)   #从52,张牌中随机抽取20,张   看到=,random.sample(列表(deck.elements ()),, k=20)   #统计tens 元素有多少个,再除以20   打印(seen.count (& # 39; 10 # 39;)/20)

运行上面程序,可以看到如下输出结果:

[& # 39;迅速# 39;,,& # 39;迅速# 39;,,& # 39;迅速# 39;,,& # 39;迅速# 39;,,& # 39;python # 39;,, & # 39;迅速# 39;】   0.45

怎么使用Python随机模块