如何用小数代替零?

How to replace zero with a small number?

如果除数等于 0,我想用一个非常小的数替换它。我正在执行如下操作:

A = pow(X,2)/(q - P)

它计算这些值并将它们存储在一个数组中(用于循环)。但是,在某些地方 q - P = 0,会引发运行时错误。我知道有一个变通办法,我不想那样。我怎样才能将 q - P 设置为一个非常小的数字,以防 q - P = 0 对于特定的迭代。

如果满足以下条件,您可以使用内联:

very_small_number = 0.001

A = pow(X, 2) / ( q - P if q != P else very_small_number )

如果发生 ZeroDivisionError 错误,我建议使用 try except 块并将 A 设置为不同的值:

try:
    A = (pow(X,2))/(q - P))
except ZeroDivisionError:
    A = 99999999999 #big nuber because devision by a small number
                    # you can also set A to infinity with `A = np.inf`

如果这不是您的选择(例如,您真的想更改 q 或 P 而不仅仅是 A),您可以简单地向 q 或 P 添加一个小数字

if q == P:
    q+= 0.00000000000001 # or P+=small_number or q-=small_number or P-=small_number

您可以使用以下技巧:

diff = q - P or .001
A = pow(X, 2) / diff

A = pow(X, 2) / (q - P or .001)