theagao&leozhang

等风来

python包_3_随机函数— random包

random是内建(built-in)函数,作用是产生随机数,使用较多.

首先是导入模块:

import random

接着就可以调用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— random.random()

生成一个0到1之间的随机浮点数,包括0但不包括1,也就是[0.0, 1.0)。

random.random()   # 0.3333221129987

===============================================================================

2— random.randint(start, end)

语句的含义是产生1至100,即[1,100],的一个随机数, start 和 end 必须是整数

random.randint(1, 100)  # 54

也可以:   

from random import randint #直接导入randint函数

from random import randint as ra_int  # 还可以改名

===============================================================================

3— random.uniform(a, b)

生成a、b之间的一个随机浮点数。不过与randint不同的是,a、b无需是整数,也不用考虑ab哪个大哪个小

random.uniform(10,100) # 30.8734634634232
random.uniform(100,10) # 78.8346632623232
random.uniform(10,10) # 10.0  ab都等于10的时候,取10
random.uniform(5.2, 2.1)   # 3.3333221129987

=========================================================================

4— random.choice(seq)

从序列中随机选取一个元素。seq需要是一个序列,比如list、元组、字符串

random.choice([1, 2, 3, 5, 8, 13]) #list 5

random.choice('hello') #字符串  h

random.choice(['hello', 'world']) #字符串组成的list  'world'

random.choice((1, 2, 3)) #元组 3

=========================================================================

5— random.randrange(start, stop, step)

生成一个从start到stop(不包括stop),间隔为step的一个随机数。start、stop、step都要为整数,且start<stop。

import random
random.randrange(10,100) #输出为10到100间的任意数
random.randrange(10,100,4) #随机输出为10到100内以4递增的序列[10,14,18,22...]中的一个数
random.choice(range(10,100,4)) #输出在结果上与上一条等效

=========================================================================

6— random.sample(population, k)

从population序列中,随机获取k个元素,生成一个新序列。sample不改变原来序列。且新序列的顺序和原序列相同。

random.sample([3,5,6,12,9,0,4],3)  # [3,12,0]

===============================================================================

7— random.shuffle(x)

把序列x中的元素顺序打乱。shuffle直接改变原有的序列。

list = [3,5,2,7,9]
random.shuffle(list) # 不能直接print random.shuffle(list) 会返回None。该命令直接改变序列而不返回序列
print list  # [2,9,5,3,7]

=========================================================================

8— random.seed() 

seed()方法改变随机数生成器的种子,可以在调用其他随机模块函数之前调用此函数, 注意其实是伪随机数,只要初始值一样,得到的结果会是一样的,在python中,默认用系统时间作为seed。你也可以手动调用random.seed(x)来指定seed。

random.seed(100)


阅读更多
版权声明: https://blog.csdn.net/u013116760/article/details/79958699
个人分类: python
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

不良信息举报

python包_3_随机函数— random包

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭