常见模块(五) random模块

random随机函数中的常用方法

1.random.random 返回一个介于左闭右开[0.0, 1.0)区间的浮点数

print(random.random())

2.random.randrange(start,stop[,step])  返回range[start,stop)之间左闭右开一个整数,可加step,跟range(0,10,2)类似

print(random.randrange(1,30,2))

3.random.randint(start,stop)  返回range[a,b]之间的一个整数,等价于然的range(a,b+1)

print(random.randint(0,1))

4.random.uniform(start,stop)  返回一个介于a和b之间的浮点数。如果a>b,则是b到a之间的浮点数。这里的a和b都有可能出现在结果中。

print(random.uniform(0,1))
print(random.uniform(1,0))

5.random.choice 从非空序列seq中随机选取一个元素。如果seq为空则弹出 IndexError异常,这里的seq可以是字符串,元祖,列表,包含有index和len方法的数据类型

print(random.choice('123'))
print(random.choice([1,2,3]))
print(random.choice((1,2,3)))

6.random.choices(population, k) 3.6版本新增。从population集群中随机抽取K个元素(可重复)

>>>print(random.choices([1,2,3],k=1))
[2]

>>>print(random.choices([1,2,3],k=2))
[1, 2]

>>>print(random.choices([1,2,3],k=3))
[1, 1, 1]

>>>print(random.choices([1,2,3],k=4))
[2, 1, 1, 2]

7.random.sample(population, k)

从population样本或集合中随机抽取K个不重复的元素形成新的序列。常用于不重复的随机抽样。返回的是一个新的序列,不会破坏原有序列。要从一个整数区间随机抽取一定数量的整数,请使用sample(range(10000000), k=60)类似的方法,这非常有效和节省空间。如果k大于population的长度,则弹出ValueError异常。

>>>a = [1,2,3]
>>>print(random.sample(a,2))
[1, 3]
>>>print(random.sample(a,3))
[1, 3, 2]
>>>print(a)
[1, 2, 3]
>>>print(random.sample(a,4))
ValueError: Sample larger than population or is negative

8.random.shuffle()  随机打乱序列x内元素的排列顺序。只能针对可变的序列,对于不可变序列,请使用下面的sample()方法

>>>lst = [1,2,3]
>>>random.shuffle(lst)
>>>print(lst)
[1, 3, 2]

 

posted on 2019-02-14 16:38  Shawn_1026  阅读(296)  评论(0编辑  收藏  举报