在开始了解之前,我们需要知道random()函数是需要导入模板,才可以进行访问,然后通过调用静态对象来使用这个方法,另外返回生成的随机实数,是有一定的范围。下面正式开始主题介绍:
先给大家带来一列实例“生成-4-7之间的随机数,并且和为1,并将符合条的2个值打印出来”,通过调用random()函数,代码如下:
import random
for i in range(30):
num1=random.randint(-4,8)
num2 = random.randint(-4, 8)
if num1+num2==1:
print(num1,num2)
运行结果:
以上是调用:整数用函数
-1 2
2 -1
random.randrange(stop)
random.randrange(start, stop[, step])
从 range(start, stop, step) 返回一个随机选择的元素。 这相当于 choice(range(start, stop, step)) ,但实际上并没有构建一个 range 对象。
位置参数模式匹配 range() 。不应使用关键字参数,因为该函数可能以意外的方式使用它们。
拓展random()函数调用用法以及实例演示
如常用数学实践中所使用的那样, 函数参数以分布方程中的相应变量命名;大多数这些方程都可以在任何统计学教材中找到。
1、random.random()
返回 [0.0, 1.0) 范围内的下一个随机浮点数。
2、random.uniform(a, b)
返回一个随机浮点数 N ,当 a <= b 时 a <= N <= b ,当 b < a 时 b <= N <= a 。
取决于等式 a + (b-a) * random() 中的浮点舍入,终点 b 可以包括或不包括在该范围内。
3、random.triangular(low, high, mode)
返回一个随机浮点数 N ,使得 low <= N <= high 并在这些边界之间使用指定的 mode 。 low 和 high 边界默认为零和一。 mode 参数默认为边界之间的中点,给出对称分布。
4、random.betavariate(alpha, beta)
Beta 分布。 参数的条件是 alpha > 0 和 beta > 0。 返回值的范围介于 0 和 1 之间。
5、random.expovariate(lambd)
指数分布。 lambd 是 1.0 除以所需的平均值,它应该是非零的。 (该参数本应命名为 “lambda” ,但这是 Python 中的保留字。)如果 lambd 为正,则返回值的范围为 0 到正无穷大;如果 lambd 为负,则返回值从负无穷大到 0。
6、random.gammavariate(alpha, beta)
Gamma 分布。 ( 不是 gamma 函数! ) 参数的条件是 alpha > 0 和 beta > 0。
概率分布函数是:x ** (alpha - 1) * math.exp(-x / beta)
pdf(x) = --------------------------------------
math.gamma(alpha) * beta ** alpha
7、random.gauss(mu, sigma)
高斯分布。 mu 是平均值,sigma 是标准差。 这比下面定义的 normalvariate() 函数略快。
8、random.lognormvariate(mu, sigma)
对数正态分布。 如果你采用这个分布的自然对数,你将得到一个正态分布,平均值为 mu 和标准差为 sigma。 mu 可以是任何值,sigma 必须大于零。
9、random.normalvariate(mu, sigma)
正态分布。 mu 是平均值,sigma 是标准差。
10、random.vonmisesvariate(mu, kappa)
mu 是平均角度,以弧度表示,介于0和 2*pi 之间,kappa 是浓度参数,必须大于或等于零。 如果 kappa 等于零,则该分布在0到 2*pi 的范围内减小到均匀的随机角度。
11、random.paretovariate(alpha)
帕累托分布。 alpha 是形状参数。
12、random.weibullvariate(alpha, beta)
威布尔分布。 alpha 是比例参数,beta 是形状参数。
13、class random.Random([seed])
该类实现了 random 模块所用的默认伪随机数生成器。
14、class random.SystemRandom([seed])
使用 os.urandom() 函数的类,用从操作系统提供的源生成随机数。 这并非适用于所有系统。 也不依赖于软件状态,序列不可重现。 因此,seed() 方法没有效果而被忽略。 getstate() 和 setstate() 方法如果被调用则引发 NotImplementedError。
大多数随机模块的算法和种子函数都会在 Python 版本中发生变化,但保证两个方面不会改变:
1)如果添加了新的播种方法,则将提供向后兼容的播种机。
2)当兼容的播种机被赋予相同的种子时,生成器的 random() 方法将继续产生相同的序列。
基本示例:
>>> random() # Random float: 0.0 <= x
0.37444887175646646
>>> uniform(2.5, 10.0) # Random float: 2.5 <= x
3.1800146073117523
>>> expovariate(1 / 5) # Interval between arrivals averaging 5 seconds
5.148957571865031
>>> randrange(10) # Integer from 0 to 9 inclusive
7
>>> randrange(0, 101, 2) # Even integer from 0 to 100 inclusive
26
>>> choice(['win', 'lose', 'draw']) # Single random element from a sequence
'draw'
>>> deck = 'ace two three four'.split()
>>> shuffle(deck) # Shuffle a list
>>> deck
['four', 'two', 'ace', 'three']
>>> sample([10, 20, 30, 40, 50], k=4) # Four samples without replacement
[40, 10, 50, 30]
想必通过以上对python中random()函数的用法结合实例展示,大家已经有一定认知了吧