我想要一个0到1之间的随机数,比如0.3452。我使用了random.randrange(0, 1),但对我来说,它总是0。我应该怎么做?
random.randrange(0, 1)
你可以使用random.uniform。
random.uniform
import random random.uniform(0, 1)
random.random()正是这样做的
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
我想要一个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。
random.randrange(a,b)
range(a,b)
range(0,1)
0
你可以使用
random.uniform
。random.random()
正是这样做的如果你想要真正的随机数,并且覆盖[0, 1]的范围。
random.random()
就是你要找的东西。还有,为什么你的尝试没有成功?。
你的尝试是:
random.randrange(0, 1)
。所以,你在这里用
random.randrange(a,b)
做的是在range(a,b)
中选择一个随机元素;在你的例子中,是从range(0,1)
中,但是,你猜怎么着!:range(0,1)
中唯一的元素是0
,所以,你能从range(0,1)
中选择的唯一元素是0
;这就是为什么*你总是得到0
。