Python模块 random

python中的random模块是内建(built-in),用来生成随机数的,常用的函数如下:
使用交互模式举例子

Python 2.7.12 (default, Dec  4 2017, 14:50:18) 
[GCC 5.4.0 20160609] on linux2
Type "help", "copyright", "credits" or "license" for more information.

>>> import random


#查看random模块下的函数
>>> dir(random)
['BPF', 'LOG4', 'NV_MAGICCONST', 'RECIP_BPF', 'Random', 'SG_MAGICCONST', 'SystemRandom', 'TWOPI', 'WichmannHill', '_BuiltinMethodType', '_MethodType', '__all__', '__builtins__', '__doc__', '__file__', '__name__', '__package__', '_acos', '_ceil', '_cos', '_e', '_exp', '_hashlib', '_hexlify', '_inst', '_log', '_pi', '_random', '_sin', '_sqrt', '_test', '_test_generator', '_urandom', '_warn', 'betavariate', 'choice', 'division', 'expovariate', 'gammavariate', 'gauss', 'getrandbits', 'getstate', 'jumpahead', 'lognormvariate', 'normalvariate', 'paretovariate', 'randint', 'random', 'randrange', 'sample', 'seed', 'setstate', 'shuffle', 'triangular', 'uniform', 'vonmisesvariate', 'weibullvariate']


# 生成1至10(不包含10)的一个随机数,整型int
>>> random.randint(1,10)
10


# 生成一个0到1之间的随机浮点数,包括0但不包括1,也就是[0.0, 1.0)
>>> random.random()
0.45351869971251213
>>> random.random()
0.22462490577606353


# random.uniform(a, b)生成a至b之间的随机浮点数
# 与randint不同的是,a、b可以不是整数,也不用考虑大小
>>> random.uniform(1, 5)
4.253616977571431
>>> random.uniform(3.5, 5.9)
4.112165661774612
>>> random.uniform(5.9, 3.5)
4.710955790979342
>>> 


# random.choice(seq) 从序列中随机选取一个元素
# seq需要时一个序列,例如list、元组、字符串
>>> random.choice([1, 2, 3, 4])
1

>>> random.choice(['g', 'k', 'o'])
'g'
>>> random.choice(['hello', 'hi', 'say'])
'say'


# random.randrange(start, stop, step)生成一个从star到stop(不包括stop)
# 间隔为step的随机整数,start、stop、step都要为整数,且start>> random.randrange(0, 20, 2)
0
>>> random.randrange(0, 20, 2)
2
>>> random.randrange(0, 20, 2)
14
>>> random.randrange(0, 20, 2)
16
>>> random.randrange(0, 20, 2)
10
>>> random.randrange(0, 20, 2)
2


# random.sample(p, k)从p序列获取k个元素,生成一个新的序列
# sample不改变原来的序列
>>> a = [1, 2, 3, 4, 5, 6]
>>> random.sample(a, 3)
[3, 4, 5]
>>> random.sample(a, 4)
[1, 6, 4, 2]
>>> a
[1, 2, 3, 4, 5, 6]
>>> 


# random.shuffle(x)把序列x中的元素顺序打乱,shuffle直接改变原有的序列
>>> a = [1, 2, 3, 4, 5]
>>> random.shuffle(a)
>>> a
[4, 1, 5, 3, 2]
# 该函数没有返回值,不能直接print
>>> print(random.shuffle(a))
None
>>> 


# random.seed(a=None, version=2)初始化随机数生成器
# 初始化伪随机数生成器。如果未提供a或者a=None
#则使用系统时间为种子。如果a是一个整数,则作为种子。
>>> random.seed(1)
>>> random.random()
0.13436424411240122
>>> random.random()
0.8474337369372327
>>> random.random()
0.763774618976614

# 感受一下
>>> random.seed(1)
>>> random.random()
0.13436424411240122
>>> random.random()
0.8474337369372327
>>> random.random()
0.763774618976614
>>> 
THE END
分享
二维码
< <上一篇
下一篇>>