本篇介紹一些可能比較常用的數學運算,以下範例請在 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))