python中三角函数的范围


from math import * 
def f(a,b,c,d): 
alpha = arccos(a/d)
beta = pi - arcsin(a+b/d) 
theta= arccos(a/c)
eta= arccos (a+c/b+d) 
return (alpha, beta, theta, eta)

我在想,在此期间,有一种可能性,arccosarcsin内的条款将超出范围。所以我应该检查每个函数的项是否在范围内,比如用if语句,if a/d>1 or a/d<1: alpha=arccos(a/d)但是如果我想对每一行都这样做,这将使代码看起来很难看,加上我们有很多三角函数。有没有一个函数或方法来处理python中用到的所有余弦和正弦函数?

(注意上面的函数是随机编写的)

首先,请不要使用"随机"写的例子。一个例子是数学中的函数被称为acosasin,而不是arccosarcsin,通过实际运行代码你会发现这一点。

math.acos在给定参数&gt时引发ValueError并传递消息"math domain error";1. 您可以像这样捕获所有此类实例。

from math import acos, asin
def f(a,b,c,d):
try:
alpha = acos(a/d)
beta = pi - asin(a+b/d) 
theta = acos(a/c)
eta = acos (a+c/b+d) 
return alpha, beta, theta, eta
except ValueError:
print("Got an argument outside [-1, 1]")

最新更新