python 产生随机函数random

Posted sineik

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 产生随机函数random相关的知识,希望对你有一定的参考价值。

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

导入模块:

import random 

 

 

接着就可以调用random模块下的函数了使用 dir(random)可以查看random模块下有哪些函数,结果如下:

1 >>> dir(random)  
2 [BPF, LOG4, NV_MAGICCONST, RECIP_BPF, Random, SG_MAGICCONST, SystemRandom, TWOPI, _BuiltinMethodType, _MethodType, _Sequence  
3 , _Set, __all__, __builtins__, __cached__, __doc__, __file__, __loader__, __name__, __package__, __spec__, _acos, _bisect  
4 , _ceil, _cos, _e, _exp, _inst, _itertools, _log, _pi, _random, _sha512, _sin, _sqrt, _test, _test_generator, _urandom  
5 , _warn, betavariate, choice, choices, expovariate, gammavariate, gauss, getrandbits, getstate, lognormvariate, normalvariate,   
6 paretovariate, randint, random, randrange, sample, seed, setstate, shuffle, triangular, uniform, vonmisesvariate, weibullvaria  
7 te] 

 

 

最常用的函数有如下:

 random.randint

1 random.randint(1,10)

语句的含义是产生1至10(包含1与10)的一个随机数(整数int型)。(参数为整数不可为浮点数否则会报错)

1 random.randint(20, 10) #该语句是错误的。下限必须小于或等于上限  

 

random.random

1 random.random() 

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

 

random.uniform

1 random.uniform(a, b)

生成a、b之间的随机浮点数。不过与randint不同的是,a、b可以不是整数,也不用考虑大小。

1  random.uniform(3.65,10.56)#可以这样
1 random.uniform(10.56, 3.65)#也可以这样  

 

  

 

random.choice

1 random.choice(seq)

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

1 random.choice([1, 2, 3, 5, 8, 13]) #list  
2   
3 random.choice(hello) #字符串  
4   
5 random.choice([hello, world]) #字符串组成的list  
6   
7 random.choice((1, 2, 3)) #元组 

都是可行的用法。

 

random.randrange

1 random.randrange(start, stop, step)

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

1  random.randrange(0, 21, 2))# 随机生成0-20之间的偶数

 

 

random.sample

1 random.sample(p, k) 

从p序列中,随机获取k个元素,生成一个新序列。sample不改变原来序列。

这个模块很 666,还支持三角、β分布、指数分布、伽马分布、高斯分布等等非常专业的随机算法。

 

random.shuffle

1 random.shuffle(x)  

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

1 import random  
2 a=[1,2,3,4,5,6]  
3 random.shuffle(a)  
4 print(a

结果如下:

1 [5, 1, 3, 6, 4, 2]

新手在使用此函数时可能会出现一些错误,如下:

1 import random  
2 a=[1,2,3,4,5,6]  
3 print(random.shuffle(a))  

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

后的序列

 

以上是关于python 产生随机函数random的主要内容,如果未能解决你的问题,请参考以下文章

python的random模块函数分析

python引用random库产生一个60,100之间的随机整数N,并计算1到N的所有能被3+整?

python基础2:随机数生成—random模块、numpy中的random函数

Python之random学习

Python 随机产生[0,100]以内的随机数,找到最大值和最小值并交换位置

Python生成随机数的一个标准库-random