歡迎加入 Python 官方文檔翻譯團隊:https://www.transifex.com/python-doc/
math 模塊官方文檔:https://docs.python.org/3/library/math.html
math 模塊包含的函數按照用途可分爲:數論與表示函數、冪函數與對數函數、三角函數、角度轉換、雙曲函數、特殊函數和常量
math 模塊包含的部分函數如下:(最常用的函數已用紅色標識)
數論與表示函數 |
函數 | 功能 |
---|---|
ceil(x) | 對浮點數 x 向上取整,即大於或等於 x 的最小整數,返回整形值 |
floor(x) | 對浮點數 x 向下取整,即小於或等於 x 的最大整數,返回整形值 |
copysign(x, y) | 返回與 y 同號的 x 值,類型爲浮點數 |
fabs(x) | 對數 x 求絕對值,返回浮點數 |
factorial(x) | 對數 x 求 x! ,即 x 的階乘,返回整數 |
fmod(x, y) | 求 x/y 的餘數,fmod() 與 % 類似,不同的是,fmod 以 x 來決定餘數的符號,% 以 y 來決定餘數的符號 |
frexp(x) | 返回一個由 x 的尾數和指數組成的元組 (m,e) 計算方式:x 分別除以 0.5 和 1,得到一個值的範圍 2e 的值要在這個範圍之內,e 爲符合要求的最大整數值,x/2e 得到 m 的值 如果 x 等於 0,則 m 和 e 的值都爲 0,m 的絕對值的範圍爲 (0.5,1) 之間,不包括 0.5 和 1 |
fsum(iterable) | 對迭代器裏的每個元素進行求和操作,返回浮點數 |
gcd(x, y) | 求整數 x 和 y 的最大公約數,gcd(0, 0) 返回 0 |
isclose(a, b, *, rel_tol=1e-09, abs_tol=0.0) | 若 a 和 b 的值比較接近則返回 True ,否則返回 False rel_tol :最大相對容差,是 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) |
isfinite(x) | 如果 x 不是無窮大,則返回 True ,否則返回 False (注意 0.0 被認爲是有限的) |
isinf(x) | 如果 x 是正無窮大或負無窮大,則返回 True ,否則返回 False |
isnan(x) | 如果 x 不是數字,則返回 True ,否則返回 False |
ldexp(x, i) | 返回 x * (2i) 的值。是函數 frexp() 的反函數 |
modf(x) | 返回由 x 的小數部分和整數部分組成的元組 |
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二進制浮點的平臺上,此操作的結果始終可以完全表示:不會引入舍入錯誤 |
trunc(x) | 對浮點數 x 取整(捨去小數部分),返回整形值trunc(x) 函數功能與 // 整除的結果類似,區別在於 trunc(x) 函數返回的值爲整形,而 // 整除返回的值是浮點型 |
冪函數與對數函數 |
函數 | 功能 |
---|---|
exp(x) | 返回 e x,即 e 次 x 冪,其中 e = 2.718281… 是自然對數的基數,這通常比 math.ex 或 pow(math.e, x) 更精確 |
expm1(x) | 返回 e x-1,即 e 的 x 次冪減 1,其中 e = 2.718281… 是自然對數的基數 |
log(x[, base]) | 返回 x 的自然對數,默認以 e 爲基數,base 參數給定時,將 x 的對數返回給定的 base,計算式爲:log(x)/log(base) |
log1p(x) | 返回 x+1 的自然對數 (基數爲e) 的值 |
log2(x) | 返回 x 以 2 爲底的對數,通常比 log(x, 2) 更準確 |
log10(x) | 返回 x 底爲10的對數,通常比 log(x, 10) 更準確 |
pow(x, y) | 返回 x 的 y 次冪,即 xy |
sqrt(x) | 返回 x 的平方根 |
三角函數 |
函數 | 功能 |
---|---|
cos(x) | 返回 x 弧度的餘弦值 |
sin(x) | 返回 x 弧度的正弦值 |
tan(x) | 返回 x 弧度的正切值 |
acos(x) | 以弧度爲單位返回 x 的反餘弦值 |
asin(x) | 以弧度爲單位返回 x 的反正弦值 |
atan(x) | 以弧度爲單位返回 x 的反正切值 |
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 |
hypot(x, y) | 返回歐幾里德範數,sqrt(x*x + y*y) ,這是從原點到點 (x, y) 的向量長度 |
角度轉換 |
函數 | 功能 |
---|---|
degrees(x) | 將角度 x 從弧度轉換爲度數 |
radians(x) | 將角度 x 從度數轉換爲弧度 |
雙曲函數(基於雙曲線而非圓來對三角函數進行模擬) |
函數 | 功能 |
---|---|
acosh(x) | 返回 x 的反雙曲餘弦值 |
asinh(x) | 返回 x 的反雙曲正弦值 |
atanh(x) | 返回 x 的反雙曲正切值 |
cosh(x) | 返回 x 的雙曲餘弦值 |
sinh(x) | 返回 x 的雙曲正弦值 |
tanh(x) | 返回 x 的雙曲正切值 |
特殊函數 |
函數 | 功能 |
---|---|
erf(x) | 可用於計算傳統的統計函數,如 累積標準正態分佈 |
erfc(x) | 返回 x 處的互補誤差函數。 互補錯誤函數 定義爲 1.0 - erf(x)。 它用於 x 的大值,從其中減去一個會導致 有效位數損失 |
gamma(x) | 返回 x 處的 伽馬函數值 |
lgamma(x) | 返回 Gamma 函數在 x 絕對值的自然對數 |
常量 |
函數 | 功能 |
---|---|
math.pi | 數學常數 π = 3.141592…,精確到可用精度 |
math.e | 數學常數 e = 2.718281…,精確到可用精度 |
math.tau | 數學常數 τ = 6.283185…,精確到可用精度,Tau 是一個圓周常數,等於 2π,圓的周長與半徑之比 |
math.inf | 浮點正無窮大(對於負無窮大,使用 -math.inf )相當於 float('inf') 的輸出 |
math.nan | 浮點非數字(NaN)值,相當於 float('nan') 的輸出 |