math.hypot(2, 4) # 只是SquareRoot(2 ** 2 + 4 ** 2)的简写 # 出:4.47213595499958
所有math函数都期望弧度,因此您需要将度数转换为弧度:
math.radians(45) # 转换45度为弧度 # 出:0.7853981633974483
逆三角函数的所有结果以弧度形式返回结果,因此您可能需要将其转换回度:
math.degrees(math.asin(1)) # 将asin的结果转换为度 # 出局:90.0
# 正弦和反正弦 math.sin(math.pi / 2) # 出:1.0 math.sin(math.radians(90)) # 90度正弦 # 出:1.0 math.asin(1) # Out: 1.5707963267948966 # "= pi / 2" math.asin(1) / math.pi # 出:0.5 # 余弦和反余弦: math.cos(math.pi / 2) # 出:6.123233995736766e-17 # Almost zero but not exactly because "pi" is a float with limited precision! math.acos(1) # 出:0.0 # 切线和反正切: math.tan(math.pi/2) # 出:1.633123935319537e + 16 # Very large but not exactly "Inf" because "pi" is a float with limited precision
math.atan(math.inf) # Out: 1.5707963267948966 # This is just "pi / 2"
math.atan(float('inf')) # Out: 1.5707963267948966 # This is just "pi / 2"
除了之外,math.atan还有两个参数的math.atan2函数,该函数计算正确的象限并避免被零除的陷阱:
math.atan2(1, 2) # Equivalent to "math.atan(1/2)" # Out: 0.4636476090008061 # ≈26.57度,第一象限 math.atan2(-1, -2) # Not equal to "math.atan(-1/-2)" == "math.atan(1/2)" # Out: -2.677945044588987 # ≈-153.43度(或206.57度),第三象限 math.atan2(1, 0) # math.atan(1/0)将引发ZeroDivisionError # Out: 1.5707963267948966 # This is just "pi / 2"
# 双曲正弦函数 math.sinh(math.pi) # = 11.548739357257746 math.asinh(1) # = 0.8813735870195429 # 双曲余弦函数 math.cosh(math.pi) # = 11.591953275521519 math.acosh(1) # = 0.0 # 双曲正切函数 math.tanh(math.pi) # = 0.99627207622075 math.atanh(0.5) # = 0.5493061443340549