python中0和1之间的随机数

我想要一个0到1之间的随机数,比如0.3452。我使用了random.randrange(0, 1),但对我来说,它总是0。我应该怎么做?

解决办法

你可以使用random.uniform

import random
random.uniform(0, 1)
评论(4)

random.random()正是这样做的

>>> import random
>>> for i in range(10):
...     print(random.random())
... 
0.908047338626
0.0199900075962
0.904058545833
0.321508119045
0.657086320195
0.714084413092
0.315924955063
0.696965958019
0.93824013683
0.484207425759

如果你想要真正的随机数,并且覆盖[0, 1]的范围。


>>> import os
>>> int.from_bytes(os.urandom(8), byteorder="big") / ((1 
评论(3)

我想要一个0到1之间的随机数,比如0.3452

random.random()就是你要找的东西。

来自python文档: random.random() 返回下一个随机的浮点数,在 范围[0.0, 1.0]。


还有,为什么你的尝试没有成功?

你的尝试是:random.randrange(0, 1)

来自python文档: random.randrange() 返回一个从range(start, stop, step)中随机选择的元素。这等同于 choice(range(start, stop, step)),但实际上并没有建立一个范围对象。

所以,你在这里用random.randrange(a,b)做的是在range(a,b)中选择一个随机元素;在你的例子中,是从range(0,1)中,但是,你猜怎么着!:range(0,1)中唯一的元素是0,所以,你能从range(0,1)中选择的唯一元素是0;这就是为什么*你总是得到0

评论(0)