在學習程式設計時,我們通常會從最基本的數學運算(加減乘除)開始。然而,在處理科學計算、數據分析或工程問題時,這些基本運算往往遠遠不夠。這時,Python 內建的math 函式庫就派上用場了。
math 函式庫是 Python 的標準函式庫之一,它提供了許多進階的數學函式與常數,讓您可以輕鬆應對複雜的數學計算,而無需自己從頭實作。
本文將帶您快速瀏覽 math 函式庫的幾個核心功能,並透過程式碼範例,讓您了解如何將它應用於實際問題中。
1. 啟用 math 函式庫
由於 math 是一個標準函式庫,您只需要一行簡單的程式碼,就能啟用它:
import math
完成這一步驟後,您就可以透過 math.<函式名稱> 或 math.<常數名稱> 的格式來呼叫它所提供的功能了。
2. 常見的數學常數
math 函式庫包含了幾個在數學與物理學中非常重要的常數,讓您無需手動輸入精確的數值。
- math.pi:圓周率 $\pi$ 的值 (3.141592653589793)。
- math.e:自然對數的底數 $e$ 的值 (2.718281828459045)。
# 計算半徑為 5 的圓面積
radius = 5
area = math.pi * (radius ** 2)
print(f"圓面積為:{area:.2f}") # 輸出:78.54
3. 三角函數
math 函式庫提供完整的三角函數功能,這些函式都以弧度(radians)作為單位,而非角度。
- math.sin():正弦函數。
- math.cos():餘弦函數。
- math.tan():正切函數。
- math.radians():將角度轉換為弧度。
- math.degrees():將弧度轉換為角度。
# 計算 30 度角的正弦值
angle_degrees = 30
angle_radians = math.radians(angle_degrees)
sin_value = math.sin(angle_radians)
print(f"30 度的正弦值為:{sin_value:.2f}") # 輸出:0.50
4. 指數與對數運算
在處理複雜的成長模型或科學數據時,指數與對數運算不可或缺。
- math.sqrt():平方根,用於計算一個數的開根號。
- math.pow(x, y):指數運算,等同於 $x^y$。
- math.exp(x):計算 $e^x$。
- math.log(x, base):對數運算,計算以 base 為底數,x 的對數。若省略 base 參數,則預設為自然對數(以 $e$ 為底)。
- math.log10(x):以 10 為底的對數。
# 計算 100 的平方根
sqrt_value = math.sqrt(100)
print(f"100 的平方根為:{sqrt_value}") # 輸出:10.0
# 計算 2 的 10 次方
pow_value = math.pow(2, 10)
print(f"2 的 10 次方為:{pow_value}") # 輸出:1024.0
# 計算 1000 以 10 為底的對數
log_value = math.log10(1000)
print(f"log10(1000) 的值為:{log_value}") # 輸出:3.0
5. 實用進階函式
除了上述常見功能外,math 函式庫也提供了許多其他實用的數學工具。
- math.ceil():無條件進位,回傳大於或等於該數的最小整數。
- math.floor():無條件捨去,回傳小於或等於該數的最大整數。
- math.factorial():階乘,計算一個非負整數的階乘。
- math.gcd():最大公因數,計算兩個整數的最大公因數。
# 處理小數點
import math
price = 125.75
ceil_price = math.ceil(price)
floor_price = math.floor(price)
print(f"價格進位到整數:{ceil_price}") # 輸出:126
print(f"價格捨去小數點:{floor_price}") # 輸出:125
# 處理整數運算
num_factorial = math.factorial(5)
print(f"5 的階乘是:{num_factorial}") # 輸出:120
gcd_value = math.gcd(24, 36)
print(f"24 和 36 的最大公因數是:{gcd_value}") # 輸出:12
透過這些實用的函式,math 函式庫讓 Python 超越了單純的加減乘除,成為處理各種數學問題的強大工具。