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)
在此期間,我在想,里面的條款有可能arccos超出arcsin范圍。所以我應該檢查每個函式是否在范圍內,即通過 useif陳述句示例:if a/d>1 or a/d<1: alpha=arccos(a/d)但是如果我想為每一行都做這個,這將使代碼看起來很難看,再加上我們有很多三角函式的情況. 對于python中使用的所有余弦和正弦,是否有函式或方法可以做到這一點?
(注意上面這個函式是隨機寫的)
uj5u.com熱心網友回復:
首先,請不要使用“隨機撰寫”的示例。為什么呼叫數學中的函式的一個例子是acosand asin,而不是arccosand arcsin,通過實際運行代碼你會發現這一點。
math.acos當給定引數 > 1 時引發ValueError訊息"math domain error"。您可以像這樣捕獲所有此類實體。
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]")
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/485526.html
標籤:Python python-3.x 范围 三角学
下一篇:分組并取平均字符長度
