python - 命名建议 "subtract absolute"类型函数

标签 python math

是否存在标准函数或数学命名约定,该函数始终将第一个输入向 0 移动第二个输入的量。

def reduce(x, y):
    if x > 0:
        return x - y
    elif x < 0:
        return x + y
    else:
        return 0

这似乎是一个非常基本的操作,但我找不到任何示例。

如果 y 为负数,它将远离 0。如果 y > x,返回值将具有与 x 相反的符号(超过 0)。

最佳答案

我将调用该函数shift_towards_zero(number, delta)。这类似于“向零舍入”或“远离无穷大舍入”。请参阅http://en.wikipedia.org/wiki/Rounding#Round_half_towards_zero 。据我所知,此功能并未内置到 math 库中。你需要自己动手。不要将函数命名为 reduce,因为这是 Python 中的内置函数。

这是我编写该函数的方式:

def shift_towards_zero(number, delta):
    return sign(number) * (abs(number) - delta)

该函数的行为方式如下:

  • 如果 delta 为正,则向零移动。
  • 如果 delta 为负,则远离零
  • 如果 number 为零,则返回零,因为 number 没有符号
  • 如果abs(delta)>abs(number),结果将具有与number相反的符号(超过零)

这是该函数的输入/输出表

number  delta result
 5        1     4  #delta>0 means shift toward zero
 5       11    -6  #overshoot
 5       -1     6  #delta<0 means shift away from zero
 5      -11    16
-5        1    -4
-5       11     6  #overshoot
-5       -1    -6
-5      -11   -16
 5        0     5
-5        0    -5
 0        1     0  #shift direction is undefined
 0       11     0
 0       -1     0
 0      -11     0
 0        0     0

关于python - 命名建议 "subtract absolute"类型函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21157119/

相关文章:

python - 我需要根据元组中的元素是否相等,以不同的顺序对两个元组列表进行排序

python - 赋值前引用的 Pygame 局部变量

python - 在函数注释中指定类类型

javascript - html 表单无法识别输入

python - mkvirtualenv 导入错误 : No module named stevedore

python - 如何用python计算极导数?

python - fork 图 python - 没有图像?

mysql - MySQL查询中的复杂算法

math - 将模算子移动到等式的另一侧

java - Math.round() 方法的奇怪行为