这期内容当中小编将会给大家带来有关怎么使用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随机模块