我想要一个0到1之间的随机数,比如0.3452。我用了随机。Randrange(0,1)但对我来说总是0。我该怎么办?
当前回答
我发现我的变化更灵活。
str_Key = ""
str_FullKey = ""
str_CharacterPool = "01234ABCDEFfghij~-)"
for int_I in range(64):
str_Key = random.choice(str_CharacterPool)
str_FullKey = str_FullKey + str_Key
其他回答
你可以使用random。uniform
import random
random.uniform(0, 1)
你可以使用numpy。随机模块,你可以得到你想要的形状的随机数数组
>>> import numpy as np
>>> np.random.random(1)[0]
0.17425892129128229
>>> np.random.random((3,2))
array([[ 0.7978787 , 0.9784473 ],
[ 0.49214277, 0.06749958],
[ 0.12944254, 0.80929816]])
>>> np.random.random((3,1))
array([[ 0.86725993],
[ 0.36869585],
[ 0.2601249 ]])
>>> np.random.random((4,1))
array([[ 0.87161403],
[ 0.41976921],
[ 0.35714702],
[ 0.31166808]])
>>> np.random.random_sample()
0.47108547995356098
这个解决方案有效!
The random randrange (0, 2)
我想要一个0到1之间的随机数,比如0.3452
Random.random()就是你要找的东西:
来自python文档: 对象中的下一个随机浮点数 范围[0.0,1.0)。
顺便问一下,为什么你的尝试没有成功?:
你的尝试是:随机的。randrange (0, 1)
来自python文档: random.randrange()返回range(start, stop, step)中随机选择的元素。这相当于choice(range(start, stop, step)),但实际上并没有构建一个range对象。
你在这里所做的,random。randrange(a,b)是从range(a,b)中选择一个随机元素;在你的例子中,from range(0,1),但是,你猜怎么着!: range(0,1)中唯一的元素是0,所以,你从range(0,1)中唯一可以选择的元素是0;这就是为什么你总是得到0。
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 << 64) - 1)
0.7409674234050893
推荐文章
- Django:“projects”vs“apps”
- 如何列出导入的模块?
- 转换Python程序到C/ c++代码?
- 如何从gmtime()的时间+日期输出中获得自epoch以来的秒数?
- 在python模块文档字符串中放入什么?
- 我如何在Django中过滤一个DateTimeField的日期?
- 在Python中用索引迭代列表
- -e,——editable选项在pip install中什么时候有用?
- 使用pip命令从requirements.txt升级python包
- Django更改默认的runserver端口
- 输入对象的datetime。Datetime没有Datetime属性
- numpy数组的Python内存使用情况
- NumPy或Pandas:保持数组类型为整数,同时具有NaN值
- 列表理解条件中的' elif '
- Python的“property”和“attribute”有什么区别?