Python之random模块

Zss 发表于:

Random模块主要是用来产生随机数,还支持三角、β分布、指数分布、伽马分布、高斯分布等等非常专业的随机算法,总结一下常用的一些方法

1.random.randint(x,y)    产生一个范围内的随机整数,不包括y,参数不能为浮点数

import random
print(random.randint(-10,-1))
print(random.randint(0,10))
输出:
-7
2

2.random.random()   产生一个包括0不包括1之间的随机浮点数  不带参数

import random
print(random.random())
print(random.random())
输出:
0.884653751959
0.0868213139495

3.random.uniform(x,y)  产生一个范围内的随机浮点数,不包括y,参数可以为浮点数

import random
print(random.uniform(-10,-1))
print(random.uniform(0,10.22))
输出:
-5.99528846938
6.68336572023

4.random.choice(x)   在x中随机选择一个元素,x可以为列表,元祖,字符串

import random
a = []
for i in xrange(10):
    a.append(random.randint(0,100))
print(a)
print(random.choice(a))

b = 'abcdef'
print(b)
print(random.choice(b))
输出:
[34, 4, 94, 35, 94, 55, 38, 68, 62, 97]
4
abcdef
b

5.random.randrange(x,y,z)  产生一个范围内的步长为z的随机整数,不包括y,参数不能为浮点数

import random
for i in range(3):
    print(random.randrange(0,10,2))
print('\n')
for i in range(3):
    print(random.randrange(0,10,3))
输出:
8
6
8

3
9
0

6.random.sample(x,y)    在x序列中随机选择 y个元素组成一个列表

import random
a = [0,1,2,3,4,5,6,7,8,9,10]
b = random.sample(a,4)
print(a)
print(b)

c = 'abcdefg'
d = random.sample(c,4)
print(c)
print(d)

输出:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
[9, 6, 2, 0]
abcdefg
['e', 'b', 'a', 'c']

7.random.shuffle(x)  将x序列元素随机打乱    x不能是字符串(洗牌)

import random
a = [0,1,2,3,4,5,6,7,8,9,10]
random.shuffle(a)
print(a)
print(random.shuffle(a))
输出:
[10, 9, 8, 5, 7, 3, 0, 6, 4, 2, 1]
None

随机打乱的不能直接print ,使用此方法会出现None结果,原因是random.shuffle() 是用来打乱列表元素的,没有返回值,所以不能用print(random.shuffle(a))来输出打印打乱后的序列