random是python的内置函数库_Python random库常用函数介绍

在了解random库的函数前,最好先对随机种子的概念有一定的认识。

随机种子(Random Seed)是计算机专业术语,一种以随机数作为对象的以真随机数(种子)为初始条件的随机数。一般计算机的随机数都是伪随机数,以一个真随机数(种子)作为初始条件,然后用一定的算法不停迭代产生随机数。

摘自百度百科-随机种子

而random库中的seed()函数便是与随机数种子相关的一个函数:

seed()、random()

seed()函数用来初始化随机数种子,默认值为当前系统时间。

随机数种子多为一个整数,而且相同的种子所生成的随机数序列也相同。

random()函数用来生成一个[0, 1]之间的随机小数。

>>> from random import *

>>> seed(100) #指定种子值为100

>>> random()

0.1456692551041303

>>> random()

0.45492700451402135

>>> random()

0.7707838056590222

>>> seed(100) #重新指定种子值为100

>>> random()

0.1456692551041303

>>> random()

0.45492700451402135

>>> random()

0.7707838056590222

这个例子中我们通过seed()函数指定了种子值为100,然后连续调用了三次random库的random()函数。再重新指定相同的种子值重复上面的操作,可以看出,下面生成的随机数和上面是一样的。

用seed()方法指定种子值便于测试和同步数据,实际上很多时候都不会使用这个方法而直接使用可以产生随机值的方法。

randint()

randint(a, b)(a<=b) 生成一个[a, b]之间的整数。

下面的例子都默认使用了from random import *的方式导入了该模块,不会再在代码中写出...

>>> randint(1, 100)

56

>>> randint(1, 100)

65

>>> randint(1, 100)

15

getrandbits()

getrandbits(n) 生成一个n比特长度的随机整数。

这个方法可能有点模糊,所以用了较多例子展示(已省略换行符)

>>> for i in range(15):

getrandbits(2)

3 2 3 0 1 0 1 3 3 3 0 3 0 0 0

>>> for i in range(15):

getrandbits(4)

14 5 5 10 6 15 13 3 6 15 7 8 4 14 12

>>> for i in range(15):

getrandbits(16)

53609 24582 10513 56130 42502 41841 8132 11838 369 39502 25920 9673 50692 55803 37103

randrange()

randrange(a, b, s)三个参数,前两个确定范围,最后一个确定步长。生成一个[a, b)之间的以s为步数的随机整数。

>>> randrange(1, 5, 2)

3

>>> randrange(1, 5, 2)

1

>>> randrange(1, 5, 2)

1

>>> randrange(1, 5, 2)

1

上面例子的取值只可能是1或3。

第三个参数可以省略,randrange(a, b),此时该函数则会返回[a, b)之间的一随机整数。(类似randint,但范围不同,b取的是开区间)

uniform

uniform(a, b)生成一个[a, b]间的随机小数。

>>> uniform(5, 9)

5.544250560923066

>>> uniform(5, 9)

7.3384045617521085

>>> uniform(5, 9)

7.3375537545818705

>>> uniform(5, 9)

5.444180418594738

>>> uniform(5, 9)

6.203185383252325

choice(), shuffle()

choice(s)从序列类型中随机返回一个元素。

shuffle(s)将序列类型中的元素随机排列,返回打乱后的序列。

>>> s = list(range(10))

>>> s

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> shuffle(s)

>>> s

[9, 4, 7, 2, 5, 6, 8, 0, 3, 1]

>>> choice(s)

9

>>> choice(s)

0

>>> choice(s)

8

sample()

sample(s, k)

从序列类型中随机选择k个元素,返回这k个元素组成的列表。

>>> s = tuple(range(10))

>>> s

(0, 1, 2, 3, 4, 5, 6, 7, 8, 9)

>>> sample(s, 4)

[0, 2, 7, 9]

如有错误,欢迎指正~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值