最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • python的random怎么用

    正文概述    2020-05-08   291

    python的random怎么用

    在 Python 的交互式解释器中先导入 random 模块,然后输入 random.__all__ 命令(__all__ 变量代表了该模块开放的公开接口),即可

    看到该模块所包含的全部属性和函数:

    >>> random.__all__
    ['Random', 'seed', 'random', 'uniform', 'randint', 'choice', 'sample', 'randrange', 'shuffle', 'normalvariate', 
    'lognormvariate', 'expovariate', 'vonmisesvariate', 'gammavariate', 'triangular', 'gauss', 'betavariate', 
    'paretovariate', 'weibullvariate', 'getstate', 'setstate', 'getrandbits', 'choices', 'SystemRandom']

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

    random.seed(a=None, version=2):指定种子来初始化伪随机数生成器。

    random.randrange(start, stop[, stop]):返回从 start 开始到 stop 结束、步长为 step 的随机数。其实就相当于 choice(range(start, stop, step)) 的效果,只不过实际底层并不生成区间对象。

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

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

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

    random.shuffle(x[, random]):对 x 序列执行洗牌“随机排列”操作。

    random.sample(population, k):从 population 序列中随机抽取 k 个独立的元素。

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

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

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

    推荐学习《python教程》

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

    import random
    #生成范围为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 (['Python','Swift','Kotlin']))
    book_list = ['Python','Swift','Kotlin']
    #对列表元素进行随机排列
    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
    ['Swift', 'Python', 'Kotlin']
    [20, 10, 30, 50]

    实际上,使用 random 模块中的随机函数可以做很多很有趣的事情。比如下面程序:

    import random
    import collections
    #指定随机抽取6 个元素,各元素被抽取的权重(概率)不同
    print(random.choices(['Python','Swift','Kotlin'], [5, 5, 1], k=6))
    #下面模拟从52 张扑克牌中抽取20 张
    #在被拍到的20 张牌中,牌面为10(包括J、Q、K的的牌占多大比例
    #生成一个16个tens(代表10)和36 个low_cards(代表其他牌)的集合
    deck= collections.Counter(tens=16, low_cards=36)
    #从52 张牌中随机抽取20 张
    seen= random.sample(list(deck.elements()), k=20)
    #统计tens 元素有多少个,再除以20
    print(seen.count('tens')/20)

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

    ['Swift', 'Swift', 'Swift', 'Swift', 'Python', 'Swift']
    0.45

    起源地下载网 » python的random怎么用

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元