有理由从Python中的数字中减去零吗?

时间:2019-04-15 06:40:41

标签: python math

我最近遇到this Python code,下面是一个代码段:

if abs(i - 0) < SMALL_NUMBER:
    # For non-inclined orbits, raan is undefined;
    # set to zero by convention

真正让我困惑的是这部分:

abs(i - 0)

在将数字传递给abs()之前是否有合理的理由要从数字中减去零?似乎没有任何数学上的原因,但也许这门语言有些古怪?

1 个答案:

答案 0 :(得分:4)

我们只能猜测,但是这段代码

abs(i - 0)

正试图在i0之间实现距离,就像我们要做的

abs(x - y)

除此之外,减/加0不会改变float的值(否则,意味着连续加0会使数字漂移...)

请注意,在CPU方面,它的成本较高:

>>> 
  6           0 LOAD_GLOBAL              0 (abs)
              3 LOAD_GLOBAL              1 (i)
              6 LOAD_CONST               1 (0)  <=== not optimized out
              9 BINARY_SUBTRACT                 <=== not optimized out
             10 CALL_FUNCTION            1 (1 positional, 0 keyword pair)
             13 RETURN_VALUE