前提
math數據包不適用于復數
如果你需要計算復數,請使用 cmath 模塊中的同名函數
除非有說明,math的函數都返回浮點數
link:math --- 數學函數 — Python 3.7.3 文檔
1.math.ceil(x)
返回 x 的上限,即大于或者等于 x 的最小整數。如果 x 不是一個浮點數,則委托 x.__ceil__(), 返回一個 Integral 類的值。
2. math.copysign(x,?y)
返回一個基于?x?的絕對值和?y?的符號的浮點數。在支持帶符號零的平臺上,copysign(1.0,?-0.0)?返回?-1.0.
3.math.fabs(x)
返回?x?的絕對值。
4.math.factorial(x)
返回?x?的階乘。當*x*不是整數或者是負數時,引發?ValueError?異常。
4.1 階乘
In mathematics, the factorial of a positive integer n, denoted by n!, is the product of all positive integers less than or equal to n.?
5!=5*4*3*2*1
exclamation mark (!)
5.math.floor(x)
返回?x?的向下取整,小于或等于?x?的最大整數。如果?x?不是浮點數,則委托?x.__floor__()?,它應返回?Integral?值。
6.math.frexp(x)
返回 x 的尾數和指數作為對``(m, e)``。 m 是一個浮點數, e 是一個整數,正好是 x == m * 2**e 。 如果 x 為零,則返回 (0.0, 0) ,否則返回 0.5 <= abs(m) < 1 。這用于以可移植方式“分離”浮點數的內部表示。
7.math.gcd(a, b)
返回整數 a 和 b 的最大公約數。如果 a 或 b 之一非零,則 gcd(a, b) 的值是能同時整除 a 和 b 的最大正整數。gcd(0, 0) 返回 0。
8.math.isclose(a, b, *, rel_tol=1e-09, abs_tol=0.0)
若 a 和 b 的值比較接近則返回 True,否則返回 False。
根據給定的絕對和相對容差確定兩個值是否被認為是接近的。
rel_tol 是相對容差 —— 它是 a 和 b 之間允許的最大差值,相對于 a 或 b 的較大絕對值。例如,要設置5%的容差,請傳遞 rel_tol=0.05 。默認容差為 1e-09,確保兩個值在大約9位十進制數字內相同。 rel_tol 必須大于零。
abs_tol 是最小絕對容差 —— 對于接近零的比較很有用。 abs_tol 必須至少為零。
如果沒有錯誤發生,結果將是: abs(a-b) <= max(rel_tol * max(abs(a), abs(b)), abs_tol) 。
IEEE 754特殊值 NaN , inf 和 -inf 將根據IEEE規則處理。具體來說, NaN 不被認為接近任何其他值,包括 NaN 。 inf 和 -inf 只被認為接近自己。
9.math.isfinite(x)
如果 x 既不是無窮大也不是NaN,則返回 True ,否則返回 False 。 (注意 0.0 被認為 是 有限的。)
10.math.isinf(x)
如果 x 是正或負無窮大,則返回 True ,否則返回 False 。
11.math.isnan(x)
如果 x 是 NaN(不是數字),則返回 True ,否則返回 False 。
12. math.modf(x)
返回?x?的小數和整數部分。兩個結果都帶有?x?的符號并且是浮點數。
13.math.remainder(x,?y)
返回 IEEE 754 風格的?x?相對于?y?的余數。對于有限?x?和有限非零?y?,這是差異?x?-?n*y?,其中?n?是與商?x?/?y?的精確值最接近的整數。如果?x?/?y?恰好位于兩個連續整數之間,則最近的 * even* 整數用于?n?。 余數?r?=?remainder(x,?y)?因此總是滿足?abs(r)?<=?0.5?*?abs(y)?。
特殊情況遵循IEEE 754:特別是?remainder(x,?math.inf)?對于任何有限?x?都是?x?,而?remainder(x,0)?和?remainder(math.inf,?x)?引發?ValueError?適用于任何非NaN的?x?。如果余數運算的結果為零,則該零將具有與?x?相同的符號。
在使用IEEE 754二進制浮點的平臺上,此操作的結果始終可以完全表示:不會引入舍入錯誤。
14.math.trunc(x)
返回?Real?值?x?截斷為?Integral?(通常是整數)。 委托給?x.__trunc__()。
注意?frexp()?和?modf()?具有與它們的C等價函數不同的調用/返回模式:它們采用單個參數并返回一對值,而不是通過 '輸出形參' 返回它們的第二個返回參數(Python中沒有這樣的東西)。
對于?ceil()?,?floor()?和?modf()?函數,請注意?所有?足夠大的浮點數都是精確整數。Python浮點數通常不超過53位的精度(與平臺C double類型相同),在這種情況下,任何浮點?x?與?abs(x)?>=?2**52?必然沒有小數位。
ps:ceil() 都是入大值
floor() 取小的值
trunc() 截取整數值
????
15.math.exp(x)
返回?e?次?x?冪,其中?e?= 2.718281... 是自然對數的基數。這通常比?math.e?**?x?或?pow(math.e,?x)更精確。
16. math.expm1(x)
返回?e?的?x?次冪,減1。這里?e?是自然對數的基數。對于小浮點數?x?,?exp(x)?-?1?中的減法可能導致?significant loss of precision;?expm1()?函數提供了一種將此數量計算為全精度的方法
17.math.log(x[,?base])
使用一個參數,返回?x?的自然對數(底為?e?)。
使用兩個參數,返回給定的?base?的對數?x?,計算為?log(x)/log(base)?。
18.math.log1p(x)
返回?1+x?(base?e) 的自然對數。以對于接近零的?x?精確的方式計算結果。
19.math.log2(x)
返回?x?以2為底的對數。這通常比?log(x,?2)?更準確。
20.math.log10(x)
返回?x?底為10的對數。這通常比?log(x,?10)?更準確。
21.math.pow(x,?y)
將返回?x?的?y?次冪。
與內置的?**?運算符不同,?math.pow()?將其參數轉換為?float?類型。使用?**?或內置的?pow()?函數來計算精確的整數冪。
22. math.sqrt(x)
返回?x?的平方根。
23. math.acos(x)
以弧度為單位返回?x?的反余弦值。
24. math.asin(x)
以弧度為單位返回?x?的反正弦值。
25. math.atan(x)
以弧度為單位返回?x?的反正切值。
26. math.atan2(y,?x)
以弧度為單位返回?atan(y?/?x)?。結果是在?-pi?和?pi?之間。從原點到點?(x,?y)?的平面矢量使該角度與正X軸成正比。?atan2()?的點的兩個輸入的符號都是已知的,因此它可以計算角度的正確象限。 例如,?atan(1)?和?atan2(1,?1)?都是?pi/4?,但?atan2(-1,?-1)?是?-3*pi/4?。
27. math.cos(x)
返回?x?弧度的余弦值。
28. math.hypot(x,?y)
返回歐幾里德范數,?sqrt(x*x?+?y*y)?。 這是從原點到點?(x,?y)?的向量長度。
29. math.sin(x)
返回?x?弧度的正弦值。
30. math.tan(x)
返回?x?弧度的正切值。
31.math.degrees(x)
將角度?x?從弧度轉換為度數。
32.math.radians(x)
將角度?x?從度數轉換為弧度。
33.math.gamma(x)
返回?x?處的?伽馬函數?值。
34.math.pi
數學常數?π?= 3.141592...,精確到可用精度。
35.math.e
數學常數?e?= 2.718281...,精確到可用精度。
36.math.inf
浮點正無窮大。 (對于負無窮大,使用?-math.inf?。)相當于``float('inf')`` 的輸出。
37.math.nan
浮點“非數字”(NaN)值。 相當于?float('nan')?的輸出。