python - 在python中随机排除0

标签 python random while-loop

我想选择一个介于 -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/

相关文章:

python - 如何创建包含不同类型的查询集表达式

algorithm - 具有至少两个差异的唯一字符串

javascript - 更改 JavaScript with 语句的行为以防止赋值修改全局对象

c++如何在while循环中进行异常处理以发现输入错误

python - 如何阻止 Wing IDE 在出现异常时打开导入的模块

python - 如何在python中从给定的纬度和经度找到500米以内的用户位置

python - Set.pop() 不是随机的?

c++ - 高效 Xorshift 向前跳过

php - 在 PHP 中遍历 CSV 文件

python - 给定一组位置和一个位置,找到该组位置与单个位置最接近的位置