Python 计算两个指南针航向之间的差值

Python 计算两个指南针航向之间的差值,python,Python,我必须测试罗盘读数和设定点之间的度数差是否在x范围内 描述了我所追求的,它只是用C语言编写的,我无法解释解决方案是如何工作的 例如 Compass Reading Set Point Difference (absolute) 360 1 1 50 60 10 1 360 1 这是转换为python的代码: def getHeadingError(init,

我必须测试罗盘读数和设定点之间的度数差是否在x范围内

描述了我所追求的,它只是用C语言编写的,我无法解释解决方案是如何工作的

例如

Compass Reading  Set Point  Difference (absolute)
360              1          1
50               60         10
1                360        1

这是转换为python的代码:

def getHeadingError(init, final):
    if init > 360 or init < 0 or final > 360 or final < 0:
        raise Exception("out of range")
    diff = final - init
    absDiff = abs(diff)

    if absDiff == 180:
        return absDiff
    elif absDiff < 180:
        return diff
    elif final > init:
        return absDiff - 360
    else:
        return 360 - absDiff

print("init -- final -- error")
print("360 -- 1 -- {}".format(getHeadingError(360, 1)))
print("50 -- 60 -- {}".format(getHeadingError(50, 60)))
print("1 -- 360 -- {}".format(getHeadingError(1, 360)))

我希望这能对您有所帮助

我鼓励您自己尝试将C解决方案翻译成Python,并在遇到困难时提出具体问题,发布到目前为止的代码。现在的问题是,请为我编码,这通常不适合这个网站。