Python語言的編譯器提供一個已定義好的函式集合稱為「標準函式庫」,在標準函式庫裡有輸出入函式、數值函式、字串函式、檔案輸出入函式、時間函式、亂數函式…等。

1. 數值函式

函式使用說明
abs(n)取得 n 的絕對值。
例:num = abs(-8) # num ← 8
round(n)取得 n 四捨六入後的整數值。當小數第一位數字是 5 時,若前一位數字是偶數則捨去;若前一位數字是奇數則進位。
例:num = round(12.6) # num ← 13
例:num = round(12.4) # num ← 12
例:num = round(12.5) # num ← 12, 因 2 是偶數
例:num = round(11.5) # num ← 12, 因 1 是奇數
int(n)將 n 轉換成整數(小數部分直接捨去)。
例:num = int(12.35) # num ← 12
float(n)將 n 轉換成浮點數。
例:num = float(12) # num ← 12.0
hex(n)將 n 轉換成十六進位數字。
例:num = hex(254) # num ← 0xfe
oct(n)將 n 轉換成八進位數字。
例:num = oct(12) # num ← 0o14
divmod(n, m)取得 n 除以 m 的商和餘數。
例:(x, y) = divmod(23, 5) # x ← 4, y ← 3
例:ret = divmod(23, 5) # ret[0] ← 4, ret[1] ← 3
pow(n, m)取得 n 的 m 次方。
例:num = pow(5, 3) # num ← 125
chr(n)取得 Unicode 編碼 n 的字元。
例:s = chr(20013) # s ← '中'
ord(s)取得 s 字元的 Unicode 編碼值。
例:n = ord('中') # n ← 20013
  1. abs(n) 取得絕對值
    常用於計算距離、溫差或誤差值(避免出現負數)。
    [案例]: 計算兩地溫差。 檔案: abs.py

  2. round() 函式 奇進偶捨(Banker’s Rounding)
    round()函式是以 「四捨六入五成雙」 的方式將浮點數轉換成整數值,但也可以指定要轉換的小數位數,使轉換成小數位數較小的浮點數,用於財務或統計計算,避免大量數據進位時產生累積偏誤

    語法如下:

    round(n, m)

    說明

    1. 參數n是用來被轉換的浮點數,參數m是指定轉換結果的小數位數。
    2. 參數m省略,則預設的轉換結果為整數。
    3. 不論有沒有指定小數位數,Python 的 round() 全都是採用「四捨六入五成雙」
  3. int(n) 轉為整數(直接捨去小數) 檔案: int.py
    常用於只取整數部分的場景,例如計算完整幾年、幾天。

    [案例]: 計算使用者滿幾歲(不考慮未滿一歲的小數)

  4. float(n) 轉為浮點數
    常用於處理使用者輸入或計算精確金額。
    [案例]: 將輸入的字串數字轉為浮點數進行價格計算。 檔案: float.py

  5. hex(n)oct(n) 進位制轉換
    常用於色碼轉換、系統權限或硬體底層通訊。
    [案例1]: 將 RGB 色碼(0~255)轉為十六進位網頁色碼。 檔案: hex.py

    [案例2]: 查看 Linux 檔案權限的八進位表示。 檔案 : oct.py

  6. divmod(n, m) 同時取得商數與餘數
    常用於時間轉換(秒轉分秒)、分頁計算(計算總頁數與最後一頁剩餘數量)。

    [案例]: 將總秒數轉為「幾分幾秒」。 檔案: divmov1.py

    [案例]: 學年結束,老師將剩餘班費6359元,平均歸給學生28人,則每位學生可分到多少錢,仍剩多少元。 (檔名:divmod2.py)

    [結果]

    班費剩餘 6359 元, 學生有 28 人
    每人均分得 227 元
    班費仍剩餘 3 元

    [程式碼]

  7. pow()函式 次方計算
    常用於複利計算、幾何面積/體積計算或密碼學。 語法如下:

    pow(n, m, k)

    說明
    三個參數的運算意義是,nm次方結果再除以k的餘數。
    例:print(mod:=pow(4,3,10)) # (4 ** 3) % 10 = 4
    例:print(mod:=pow(10,2,9)) # (10 ** 2) % 9 = 1

    [案例]: 計算本利和(本金 10000 元,年利率 5%,存 3 年)

  8. chr(n)ord(s) Unicode 字元與編碼對轉換
    常用於加密解密(如凱撒密碼)、產生連續英文字母選單、或判斷字元範圍。

    • ord(s):輸入單一字元,傳回其對應的 Unicode 編碼數字
    • chr(n):輸入 Unicode 編碼數字,傳回其對應的 字元
      [案例]: 將字元轉為 ASCII / Unicode 數字。 檔案: ord.py

    [案例]: 將 Unicode 數字轉回字元。 檔案: chr.py

2. math 套件函式

數值的內建函式不止上一小節那些函式,還有定義在 math 套件中的數值函式,如: sin()exp()log()…。不過要使用套件內的函式,必須在使用前匯入套件名稱,匯入套件的敘述如下:

import 套件名稱

[例] 匯入math 套件名稱

import math

[例] 給一套件別名
套件名稱在匯入時,可以另外取較簡短或有特殊意義的別名,例如將 math 套件另外取別名為M,其匯入敘述如下:

import math as M

下表為常用的math 套件函式:

函式使用說明
pi圓周率常數
例:num = math.pi # num ← 3.141592653589793
e數學常數。
例:num = math.e # num ← 2.718281828459045
ceil(n)取得大於 n 的最小整數。
例:num = math.ceil(4.7) # num ← 5
floor(n)取得小於 n 的最大整數。
例:num = math.floor(4.7) # num ← 4
fabs(n)取得浮點數 n 的絕對值。
例:num = math.fabs(-24.67) # num ← 24.67
sqrt(n)取得 n 的平方根。
例:num = math.sqrt(100) # num ← 10.0
exp(n)取得
例:num = math.exp(1) # num ← 2.718281828459045
log(n)取得
例:num = math.log(10) # num ← 2.302585092994046
log(n, b)取得
例:num = math.log(125, 5) # num ← 3
sin(n)取得弧度為 n 的正弦函式值。
例:num = math.sin(math.pi/6) # num ← 0.5
cos(n)取得弧度為 n 的餘弦函式值。
例:num = math.cos(math.pi/3) # num ← 0.5
tan(n)取得弧度為 n 的正切函式值。
例:num = math.tan(math.pi/4) # num ← 1
asin(n)取得反正弦函式的弧度值。
例:num = math.asin(0.5) # num ← 0.5235987755982989,即 π/6
acos(n)取得反餘弦函式的弧度值。
例:num = math.acos(0.5) # num ← 1.0471975511965976,即 π/3
atan(n)取得反正切函式的弧度值。
例:num = math.atan(1) # num ← 0.7853981633974483,即 π/4
  1. 幾何與面積計算(pi,sqrt,pow
    常用於計算圓形面積、球體體積或畢氏定理(直角三角形斜邊長)。
    [案例]: 計算圓形面積與斜邊長。 檔案: pi.py

  2. 無條件進位與捨去(ceil,floor
    常用於物流箱數計算、租車天數或遊戲天數計算。
    [案例]: 計算商品包裝箱數(每箱裝 10 件,共有 23 件商品)。 檔案: ceil.py

    [案例]: 計算完整租借天數(滿 24 小時算一天)。 檔案: floor.py

  3. 指數與對數(exp,log,e
    常用於計算複利、資料規模成長或自然科學演算法(如衰減率)。

    • e(歐拉數):是一個數學常數,數值約等於 2.71828
    • exp(x) 指數:代表計算 次方(即 )。
      「這個 exp 底數乘了 次之後會變成多少?」
    • log() 對數: 是 指數(Exponentiation)的逆運算
      「底數要自乘幾次,才會得到這個目標數值?」
      [案例1]: 計算資訊學中的位元數需求 (以2為底的對數)
  4. 三角函數與反三角函數(sin, cos, tan, asin, acos, atan
    常用於遊戲開發(角度計算、物體移動軌跡)、建築測量與物理模擬。

    注意事項:Python 的三角函數輸入參數均為弧度(Radian),而非度數(Degree)。
    若要將角度轉為弧度,可使用公式:

    [案例]

  5. 浮點數絕對值(fabs
    Python內建的abs()類似,但math.fabs()始終傳回浮點數 (float)

3. random 套件函式

亂數函式主要用來產生不同的數值,多用於電腦、統計學、模擬、離散數學、抽樣、作業研究、數值分析、決策等各領域。亂數函式的原型定義在random套件中,random套件有許多函式提供給使用者使用,如choice()randint()random()…。程式若有使用亂數函式時,必須在使用前匯入random套件名稱,匯入敘述如下:

import random

下表為常用的亂數套件函式:

函式使用說明
randint(n1, n2)從 n1 到 n2 之間隨機產生一個整數。
例:random.randint(1, 10)
      # 由 1~10 產生一個整數,如:6
randrange(n1, n2, n3)從 n1 到 (n2-1) 之間每隔 n3 的數,隨機產生一個整數。
例:random.randrange(0, 6, 2)
      # 由 0,2,4 產生一個整數,如:4
random()從 0 到 1 之間隨機產生一個浮點數。
例:random.random()
      # 由 0.0000000000000001 ~ 0.9999999999999999 之間產生一個浮點數,如:0.834657283069456
uniform(f1, f2)從 f1 到 f2 之間隨機產生一個浮點數。
例:random.uniform(1, 10)
      # 由 1.0000000000000001 ~ 9.999999999999999 之間產生一個浮點數,如:5.2934203283061023
choice(s)從 s 字串中隨機取得一個字元。
例:random.choice('abc12') # 由 'abc12' 中產生一個字元,如:'c'
sample(s, n)1. 從 s 字串中隨機取得不重複的 n 個字元。
例: random.sample('abc123', 2)
      # 由 'abc123' 中產生 2 個字元,如:['2', 'b']
2. 從 s 串列中隨機取得不重複的 n 個元素。
例: random.sample([2,4,6,8,9], 3)
      # 由 [2,4,6,8,9] 串列中產生 3 個元素,如:[8, 2, 6]
shuffle(串列)使串列重新排列。
例: lst = [1,2,3,4,5]
      random.shuffle(lst) # 使串列 lst 重新排列
      print(lst) # 印出新排列的串列,如:[3,1,2,5,4]

套件名稱在程式匯入時可以取別名,例如將random套件取別名為 R,其匯入敘述為:

import random as R

[簡例] 使用亂數套件函式,隨機產生51~10之間的整數。 (檔名:randint01.py)

[結果]

第1個亂數:3
第2個亂數:9
第3個亂數:4
第4個亂數:3
第5個亂數:8

[簡例] 使用亂數套件函式及串列,隨機產生618〜35之間不會重複的整數。 (檔名:randint02.py)

[結果]

第 1 個亂數 : 29
第 2 個亂數 : 19
第 3 個亂數 : 21
第 4 個亂數 : 27
第 5 個亂數 : 33
第 6 個亂數 : 26

4. time 套件函式

時間函式是利用時間變化來協助程式進行,以及取得時間、日期…等有關的設計。時間函式的原型定義在time套件中,time套件提供許多函式給使用者使用,例如 clock()sleep()time()…

程式若有使用時間函式時,必須在使用前匯入 time 套件名稱,匯入敘述如下

import time

套件名稱在匯入時可以另外取別名,如將 time 套件取別名為 T,匯入敘述如下:

import time as T

1. time() 函式

time() 函式是取得電腦目前的時間,即自1970-01-01 00:00:00起到目前為止,所經過的秒數。

[例] 取得電腦目前的時間。

說明

  1. 2行:Python的時間最小單位單位是tick,tick時長度為微秒(百萬分之一秒)。
    因此time()函式傳回的秒數是精確到小數7位的浮點數。
  2. 3行:所印出的時間是從1970-01-01 00:00:00起到目前的總秒數。

2. ctime() 函式

ctime() 函式是取得電腦目前所在時區的日期,時間資料,資料型別為字串。

[例] 取得電腦目前所在時區的日期、時間字串資料。(檔名:time02.py)

說明

  1. 2行:ctime()函式的傳回資料是英文字串,傳回值的格式為星期月份日時:分:秒 西元年
  2. 3行:所印出的時間是目前電腦所在時區的日期、時間資料。

3. localtime()函式

localtime()函式可傳回目前電腦所在時區的日期、時間資訊,這些資訊成員及成員的內容表列如下:

Localtime

成員內容
tm_year西元年
tm_mon月份 (1~12)
tm_mday日 (1~31)
tm_hour時 (0~23)
tm_min分 (0~59)
tm_sec秒 (0~59)
tm_wday星期(0~6),0:星期一,1:星期二,…,6:星期日
tm_yday該年的第幾天(0~366)
tm_isdst日光節約時間(0:無日光節約時,1:有日光節約時)

[例] 顯示電腦目前時區的「年-月-日時:分:秒」資料。(檔名:time03.py)

說明

  1. 2行:localtime()函式取得目前電腦所在時區的日期、時間資訊,指定給timer 物件。此時這timer物件就擁有tm_yeartm_montm_mday…等成員的資訊。
  2. 3-8行:使用「物件,成員」的格式可以取得物件中指定成員的内容。如:timer.tm_year就是取得timer物件中 tm_year成員的内容。
  3. 9行:將所要的資訊以客製的格式「年-月-日時:分:秒」輸出顯示,例如顯示「2021-9-29 9:52:4」。

4. sleep()函式

sleep()函式可在程式執行的期間,使暫停一段時間。語法如下:

時間套件名稱(或別名).sleep(n) #n的單位為秒

[例] 設定電腦執行期間暫停5秒,顯示暫停前後的電腦時間,並計算暫停前後的時間差距。(檔名:time04.py)

5. datetime()函式

time套件所處理的日期/時間資料,其資料型別為 「time.struct_time」。而datetime套件所處理的日期/時間資料之資料型別為 「datetime.datatime」。使用前匯入datetime套件名稱,匯入敘述如下:

import datetime

套件名稱在匯入時可以另外取別名,如DT,匯入敘述如下:

import datetime as DT
  1. 取得日期/時間
    datetime套件具有屬性year(西元年)、monthdayhourminutesecondmicrosecond(微秒,0.000001秒)來讀取日期/時間的個別內容。

    2021-10-01 09:41:17.688769
    現在日期:2021年10月1日
    目前時間:9時41分17秒

    [例] 顯示現在日期(年、月、日) 和目前前時間(時、分、秒) 檔名:datetime01.py

    [結果]

    2026-08-03 14:38:55.418411
    現在日期 : 2026 年 8 月 3 日
    目前時間 : 14 時 38 分 55 秒
  2. 設定日期/時間
    針對特殊的日期/時間要記錄起來,可以使用下列語法設定:

    物件變數 =datetime.datetime(year, month, day, hour, minute, second)

    上面語法至少要設定前面 year、month、day三個屬性,後面屬性若沒設定則預設值為00:00:00

    [例] 設定阿姆斯壯登上月球的日期·(檔名:datetime02.py)

  3. 格式化字串輸出
    使用datetime套件的物件屬性內容可以依需求做格式化的字串輸出,如下例:

    [例]格式化顯示目前日期(年/月/日 星期),其中月份使用縮寫英文、星期幾使用英文全寫。(檔名:datetime03.py)

    [結果]

    2026/Aug/03  Monday
    2026/Aug/03  Monday
    2026/Aug/03  Monday

    格式化輸出使用的%字元參數及轉換成字串的使用說明,表列如下:

    [格式化輸出]

    %字元參數轉換成字串的使用說明
    %Y西元年份,如:‘2021’
    %y西元年份不含世紀,如:‘21’ 代表西元 2021 年
    %B月份使用完整英文,如:‘October’
    %b月份使用縮寫英文,如:‘Oct’ 代表十月
    %m月份使用數字(‘00’ ~ ‘12’),如:‘10’ 代表十月
    %d所在月份的第幾天(‘00’ ~ ‘31’)
    %A星期幾使用完整英文,如:Friday
    %a星期幾使用縮寫英文,如:‘Fri’ 代表星期五
    %w星期幾使用數字,如:‘5’ 代表星期五,‘0’ 代表星期日
    %H時 使用 24 小時制(‘00’ ~ ‘23’)
    %I時 使用 12 小時制(‘00’ ~ ‘12’)
    %M分 (‘00’ ~ ‘59’)
    %S秒 (‘00’ ~ ‘59’)
    %p呈現 ‘AM’ 或 ‘PM’)

相關主題與延伸閱讀