玖叶教程网

前端编程开发入门

四十、Python模块random: 伪随机数据生成与随机元素抽取

Python内置模块random生成随机数

Python的random内置模块主要包含用来生成伪随机数的各种变量和函数。

先来看看random模块都提供了哪些功能变量和函数:

random模块的属性和函数

1.生成随机整数

  • random.randint(a,b): 生成一个范围是【a,b】的随机整数, 等价于: random.randrange(a, b+1)

random.randint(a,b)

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

random.randrange(start, step[,stop])

2.生成随机浮点数

  • random.random() 生成 [0.0,1.0]间的随机浮点数

random.random()

  • random.uniform(a,b) 生成[a,b]之间的伪随机浮点数

random.uniform(a,b)

3.生成成指数分布的伪随机浮点数

  • random.expovariate(lambd): 生成呈指数分布的随机数,其中的lambd是"lamdba"的意思,但是它是Python的保留关键字,所以缩写了,它代表1/mean, 即1除以期望的平均值

random.expovariate(lambd): 生成呈指数分布的随机数


4.根据序列生成随机数函数(随机抽取)

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

random.choice(seq)

  • random.choices(seq, weights, *, cum_weights, k) #从seq中有放回地抽取k个元素,通过weights可以指定被抽取到的权重, 如果seq为空,引发IndexError异常
    • weights和cum_weights不能同时指定,否则会引发TypeError异常, weights或cum_weights可以是整型、浮点型、分数,但不能用decimals型
    • 权重的长度必须和seq的长度相同

random.choices(seq, weights, *, cum_weights, k)

  • random.shuffle(seq[, random]): 对序列seq元素执行“洗牌”操作,即随机排列

random.shuffle(seq[, random])

  • random.sample(seq, k): 从序列seq中随机抽取k个独立的元素, k的个数不能大于序列的长度,否则会引发ValueError异常

random.sample(seq, k)

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言