本篇介紹一些可能比較常用的數學運算,以下範例請在 cmd 當中開啟 Python 來執行,並在開啟後就立刻輸入過「import math」。若你希望寫成 *.py 的檔案來執行,則除了在檔案開頭加上「import math」以外,還要加上適當的「print」,才會有結果輸出。
數論系列:
math.ceil(0.4) # 往正向無條件進位至整數 math.floor(0.6) # 往負向無條件捨位至整數 math.fabs(-12.345) # 絕對值。亦可使用「abs(-12.345)」,「abs」也是是內建函式,前面不需要「math.」 math.factorial(5) # 階乘 math.gcd(12, 34) # 最大公因數,Python 3.5 開始支援「四捨五入」比較特別,一般會先想到「round」,但它做的是「四捨六入五取雙」。此外,round 是內建函式,不用載入 math 等任何函式庫就可以使用:
round(12.34) round(56.78) round(7.5) round(8.5)「round」在四捨五入到小數點下指定位數的時候,也會遇到問題:
round(3.15, 1) # 會得到 3.1,但數學上是 3.2 round(4.15, 1) # 會得到 4.2,與數學上相同這些問題是由於電腦表示小數點的精確度限制所導致。若想要有效的處理類似問題,可以自行參考「decimal」這個模組。
指數對數系列:
math.exp(3) # e 的幾次方 math.pow(3, 5) # x 的 y 次方,相當於 x ** y math.sqrt(2) # 開根號 math.log(20.085536923187668) # 自然對數 math.log2(8) math.log10(7) # 若要計算其他底數的對數,請使用「math.log(真數, 底數)」的方式,或自行套用換底公式三角函數系列,其輸入單位為弧度:
math.sin(0.5) math.cos(0.5) math.tan(0.5) # 利用 radians 將角度轉換為弧度 math.sin(math.radians(45)) math.cos(math.radians(45)) math.tan(math.radians(45)) # 反三角函數,並利用 degrees 將結果從弧度轉為角度 tmp = 1 / math.sqrt(2) math.degrees(math.asin(tmp)) math.degrees(math.acos(tmp)) math.degrees(math.atan(tmp))