Python3 random(伪随机数 模块)

Python3 random(伪随机数 模块)


本文由 Luzhuo 编写,转发请保留该信息.
原文: http://blog.csdn.net/Rozol/article/details/71097183


以下代码以Python3.6.1为例
Less is more!

# coding=utf-8
# randomdemo.py random伪随机数
# 生成伪随机 整数 和 浮点数, 随机获取列表元素

import random # 随机数模块

lists = [1, 2, 3, 4, 5]

def demo():
    # 产生[0, 100]随机整数
    num = random.randint(0, 100)
    print(num)

    # 产生[0, 100)随机浮点数
    fnum = random.uniform(0, 100)
    print(fnum)

    # 随机获取元素
    elem = random.choice(lists)
    print(elem)

    # 打乱顺序
    random.shuffle(lists)
    print(lists)



def funs():
    # seed(a=None, version=2) // 初始换生成器的随机数
    random.seed()
    random.getstate() # 获取生成器内部状态
    random.setstate(random.getstate()) # 设置生成器内部状态


    # 获取随机数
    num = random.getrandbits(8) # 获取x位(bit)随机整数
    # randrange(stop) / randrange(start, stop[, step]) // 生成随机整数
    num = random.randrange(0, 100, 2) # [0,100)产生的随机整数+2
    # randint(a, b) == randrange(a, b + 1) // [a, b]
    num = random.randint(0, 1)
    fnum = random.random() # 获取浮点随机数 [0.0, 1.0)
    fnum = random.uniform(1, 2) # 获取指定范围内的浮点随机数 [1.0, 2.0)

    # triangular(low, high, mode) // 获取随机浮点数, low低边界(默认0),high高边界(默认1),模式(默认边界中点)
    fnum = random.triangular(0, 1, 1.5)
    # betavariate(alpha, beta) // Beta分布,[0.0, 1.0]
    fnum = random.betavariate(1, 1)
    # expovariate(lambd) // 指数分布, lambd返回整,值[0, +∞]; lanbd返回负,值[-∞, 0]
    fnum = random.expovariate((lambda arg1, arg2: arg1 + arg2)(1, 2)) # lambd返回值越小,获得值越大
    # gammavariate(alpha, beta) // 伽玛分布
    fnum = random.gammavariate(1, 1)
    # gauss(mu, sigma) // 高斯分布 mu:平均值, sigma:标准偏差
    fnum = random.gauss(1, 1)
    # lognormvariate(mu, sigma) // 对数正态分布,获得平均值mu和标准偏差sigma的正态分布; mu:任何值,sigma:>0。
    fnum = random.lognormvariate(1, 1)
    # normalvariate(mu, sigma) // 正态分布, mu是平均值, sigma是标准偏差
    fnum = random.normalvariate(1, 1)
    # vonmisesvariate(mu, kappa) // 冯米塞斯分布的随机数。mu:平均角度(弧度[0, 2*pi]), kappa:集中程度>=0
    fnum = random.vonmisesvariate(1, 1)
    # paretovariate(alpha) // 帕累托分布, alpha:形状
    fnum = random.paretovariate(1)
    # weibullvariate(alpha, beta) // 韦伯分布, alpha:缩放, beta:形状
    fnum = random.weibullvariate(1, 1)

    elem = random.choice(lists) # 非空序列中取出随机元素, 序列为空抛IndexError
    elems = random.sample(lists, 3) # 从列表中随机获取3个元素, 范围>列表大小,抛ValueError


    # 打乱顺序
    random.shuffle(lists) # 打乱序列


if __name__ == "__main__":
    demo()
    funs()
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值