有没有办法在 python 数学中将角度模式设置为度数?

问题描述 投票:0回答:1

有没有办法在 python 数学中将角度模式设置为degrees

你知道在python中,三角函数默认是radians模式

from math import sin, radians
print(sin(radians(30)))

当我使用 degrees 工作时,继续输入

radians(...)
似乎是多余的。

from math import sin, radians

def sin2(degrees):
    return sin(radians(degrees))

## or
sin2 = lambda degrees: sin(radians(degrees))

print(sin2(30))

像这样定义函数似乎很好,
但是,有谁知道这样做的更好方法吗?也许在数学中设置模式?

python math trigonometry
1个回答
0
投票

math
中的纯设置,据我所知没有。但是,我们可以包装它们的三角函数以接受以度为单位的角度。

import math

def trig_wrapper(func):
    def inner(*args, **kwargs):
        args = [math.radians(arg) if isinstance(arg, (int, float)) else arg for arg in args]
        return func(*args, **kwargs)
    return inner

for func_name in ['sin', 'cos', 'tan']:
    setattr(math, func_name, trig_wrapper(getattr(math, func_name)))

print(math.sin(90))
print(math.cos(0)) 

个人不推荐,更喜欢定义新功能

© www.soinside.com 2019 - 2024. All rights reserved.