如何用小数代替零?
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)
如果除数等于 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)