如何得到一个随机数之间的浮动范围?

randrange(start, stop)只接受整数参数。那么如何在两个浮点值之间得到一个随机数呢?

656236 次浏览

使用# EYZ0:

>>> import random
>>> random.uniform(1.5, 1.9)
1.8733202628557872

random.uniform(a, b)似乎就是你要找的。从文档中可以看出:

返回一个随机浮点数N,对于a <= N <= b,对于b <= b <= N <= a;一个。

看到# EYZ0。

如果你想生成一个随机浮点数,在点的右边有N个数字,你可以这样做:

round(random.uniform(1,2), N)

第二个参数是小数的个数。

最常见的,你会使用:

import random
random.uniform(a, b) # range [a, b) or [a, b] depending on floating-point rounding

如果需要,Python提供其他发行版

如果你已经导入了numpy,你可以使用它的等效:

import numpy as np
np.random.uniform(a, b) # range [a, b)

同样,如果您需要另一个发行版,numpy还有很多其他的提供了与python相同的发行版。

根据我处理python的经验,我只能说随机函数可以帮助生成随机浮点数。请看下面的例子;

import random


# Random float number between range 15.5 to 80.5
print(random.uniform(15.5, 80.5))


# between 10 and 100
print(random.uniform(10, 100))
The random.uniform() function returns a random floating-point number between a given range in Python

这两组代码生成随机浮点数。你可以试着用它来得到你想要的。

使用这个函数获取范围n到m之间的随机浮点数:

import random
random.uniform(n,m)

如果你想要得到一个随机的浮点数,直到小数点后x位,你可以使用这个代替:

import random
round(random.uniform(n, m), x)