我想选择一个介于 -1.5 和 1.5 之间的数字,但这不应该是 0。
我正在使用:
x = random.uniform( -1.5, 1.5 )
但我必须写一个排除 0 的条件,例如:
x = 0
while (x==0):
x = random.uniform( -1.5, 1.5 )
是否可以不加条件地写这个?
最佳答案
你可以试试
1.5 * (1.0 - random.random())
然后随机决定是否否定结果。自 random.random() < 1.0
,你不应该(在数字上)得到零。
编辑:
已经(正确地)指出这需要两个随机决定。要通过一个随机决定来做到这一点,请使用以下内容:
v = 3.0 * random.random()
result = 1.5 - v
if v >= 1.5:
result = v - 3.0
如果0.0 <= v < 1.5
, 你得到 1.5 - v
, 和 0.0 <= range < 1.5
.
否则,1.5 <= v < 3.0
,你会得到 v - 3.0
, 所以 0.0 > range >= -1.5
.
关于python - 在python中随机排除0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20239478/