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 |
-
abs(n)取得絕對值
常用於計算距離、溫差或誤差值(避免出現負數)。
[案例]: 計算兩地溫差。 檔案:abs.py程式碼:
abs.pytemp_a = 15 # 城市 A 溫度 temp_b = -3 # 城市 B 溫度 temp_diff = abs(temp_a - temp_b) print(f"兩地溫差為 {temp_diff} 度") # 輸出:兩地溫差為 18 度 -
round() 函式奇進偶捨(Banker’s Rounding)
round()函式是以 「四捨六入五成雙」 的方式將浮點數轉換成整數值,但也可以指定要轉換的小數位數,使轉換成小數位數較小的浮點數,用於財務或統計計算,避免大量數據進位時產生累積偏誤語法如下:
round(n, m)程式碼:
round.pyscores = [12.5, 11.5, 13.5, 14.5, 14.51] rounded_scores = [round(score) for score in scores] # 沒指定 m 小數位數時 # Python 使用的是「四捨六入五成雙」(Banker's Rounding / 銀行家捨入法)。當遇到小數點後剛好是 .5 時,會取向最近的偶數 # 「五成雙」只適用於**剛好等於 5** 的情況 # 12.5 -> 12 (前位 2 為偶數,捨去) # 11.5 -> 12 (前位 1 為奇數,進位) # 13.5 -> 14 (前位 3 為奇數,進位) # 14.5 -> 14 (前位 4 為偶數,捨去) #「五成雙」只適用於剛好等於 5 的情況。如果 5 的後面還有數字(例如 14.51),這在數學上整體大於 0.5,就會直接歸類到「大於 5 ➔ 進位」的規則,變成 3 # 14.51 -> 15 print(rounded_scores) # 輸出:[12, 12, 14, 14, 15] # 指定 m 小數位數時,也是採用「四捨六入五成雙」 num=round(12.365,1) # num 12.4 保留 1 小數,觀察 6, 6 > 5 進位。這屬於「六入」。 num=round(12.367,2) # num 12.37 保留 2 小數,觀察 7, 7 > 5 進位。這屬於「六入」。 num=round(12.364,2) # num 12.36 保留 2 小數,觀察 4, 4 < 5 捨去位。這屬於「四捨」。 # 若遇到剛好要捨入的位數是 5,一樣會遵循偶數優先規則: # 保留 2 位小數,看第 3 位 (5) print(round(12.325, 2)) # 輸出 12.32 (前一位 2 是偶數 -> 捨去) print(round(12.335, 2)) # 輸出 12.34 (前一位 3 是奇數 -> 進位)說明
- 參數
n是用來被轉換的浮點數,參數m是指定轉換結果的小數位數。 - 參數
m省略,則預設的轉換結果為整數。 - 不論有沒有指定小數位數,Python 的
round()全都是採用「四捨六入五成雙」
- 參數
-
int(n)轉為整數(直接捨去小數) 檔案:int.py
常用於只取整數部分的場景,例如計算完整幾年、幾天。[案例]: 計算使用者滿幾歲(不考慮未滿一歲的小數)
程式碼:
int.pyexact_age = 25.85 age = int(exact_age) print(f"使用者今年滿 {age} 歲") # 輸出:使用者今年滿 25 歲 -
float(n)轉為浮點數
常用於處理使用者輸入或計算精確金額。
[案例]: 將輸入的字串數字轉為浮點數進行價格計算。 檔案:float.py程式碼:
float.pyprice_input = "199" discount = 0.85 final_price = float(price_input) * discount print(f"打折後價格:{final_price}") # 輸出:打折後價格:169.15 -
hex(n)與oct(n)進位制轉換
常用於色碼轉換、系統權限或硬體底層通訊。
[案例1]: 將RGB色碼(0~255)轉為十六進位網頁色碼。 檔案:hex.py程式碼:
hex.pyr, g, b = 255, 165, 0 # 橘色 hex_color = f"#{hex(r)[2:]}{hex(g)[2:]}{hex(b)[2:]}" # # 0xff 0xa5 0x0 ff a5 0 #ffa50 print(hex_color) # 輸出:#ffa50[案例2]: 查看
Linux檔案權限的八進位表示。 檔案 :oct.py程式碼:
oct.pychmod_val = 493 # 對應 rwxr-xr-x print(oct(chmod_val)) # 輸出:0o755 -
divmod(n, m)同時取得商數與餘數
常用於時間轉換(秒轉分秒)、分頁計算(計算總頁數與最後一頁剩餘數量)。[案例]: 將總秒數轉為「幾分幾秒」。 檔案:
divmov1.py程式碼:
divmov1.pytotal_seconds = 385 minutes, seconds = divmod(total_seconds, 60) print(f"總共是 {minutes} 分 {seconds} 秒") # 總共是 6 分 25 秒[案例]: 學年結束,老師將剩餘班費
6359元,平均歸給學生28人,則每位學生可分到多少錢,仍剩多少元。 (檔名:divmod2.py)[結果]
班費剩餘 6359 元, 學生有 28 人 每人均分得 227 元 班費仍剩餘 3 元[程式碼]
程式碼:
divmod2.pymoney = 6359 person = 28 print(f'班費剩餘 {money} 元, 學生有 {person} 人') (div, mod) = divmod(money, person) print (f'每人均分得 {div} 元') print (f'班費仍剩餘 {mod} 元') -
pow()函式 次方計算
常用於複利計算、幾何面積/體積計算或密碼學。 語法如下:pow(n, m, k)說明
三個參數的運算意義是,n的m次方結果再除以k的餘數。
例:print(mod:=pow(4,3,10))#(4 ** 3) % 10 = 4
例:print(mod:=pow(10,2,9))#(10 ** 2) % 9 = 1[案例]: 計算本利和(本金 10000 元,年利率 5%,存 3 年)
程式碼:
pow.pyprincipal = 10000 rate = 1.05 years = 3 total = principal * pow(rate, years) print(f"3 年後本利和:{round(total)} 元") # 輸出:3 年後本利和:11576 元 -
chr(n)與ord(s)Unicode 字元與編碼對轉換
常用於加密解密(如凱撒密碼)、產生連續英文字母選單、或判斷字元範圍。ord(s):輸入單一字元,傳回其對應的 Unicode 編碼數字。chr(n):輸入 Unicode 編碼數字,傳回其對應的 字元。
[案例]: 將字元轉為 ASCII / Unicode 數字。 檔案:ord.py
程式碼:
ord.py# 基本英文字母與數字 print(ord('A')) # 輸出: 65 print(ord('a')) # 輸出: 97 print(ord('0')) # 輸出: 48 # 中文字元與 Emoji print(ord('台')) # 輸出: 21488 print(ord('😊')) # 輸出: 128522[案例]: 將 Unicode 數字轉回字元。 檔案:
chr.py程式碼:
chr.py# 基本 ASCII 轉字元 print(chr(65)) # 輸出: 'A' print(chr(97)) # 輸出: 'a' print(chr(48)) # 輸出: '0' # Unicode 轉中文與 Emoji print(chr(21488)) # 輸出: '台' print(chr(128522)) # 輸出: '😊' # 快速產生 A ~ Z 英文字母清單 # ASCII 中 A 是 65,Z 是 90 alphabet = [chr(i) for i in range(65, 91)] print(alphabet) # ['A', 'B', 'C', ..., 'Z'] # 簡單的字母位移(凱撒密碼原理) # 利用 `ord()` 算出數字後加減,再用 `chr()` 轉回字元: char = 'C' shift = 3 # 將 'C' 向後推 3 個字母 new_char = chr(ord(char) + shift) print(f"'{char}' 向後推 {shift} 位是: '{new_char}'") # 輸出: 'C' 向後推 3 位是: 'F'
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 |
-
幾何與面積計算(
pi,sqrt,pow)
常用於計算圓形面積、球體體積或畢氏定理(直角三角形斜邊長)。
[案例]: 計算圓形面積與斜邊長。 檔案:pi.py程式碼:
pi.pyimport math # 案例:計算圓形面積與斜邊長 radius = 5.0 circle_area = math.pi * (radius ** 2) print(f"半徑 {radius} 的圓面積:{circle_area:.2f}") # 輸出:78.54 # 畢氏定理:計算直角三角形斜邊 (a=3, b=4) a, b = 3.0, 4.0 c = math.sqrt(pow(a,2) + b**2) print(f"斜邊長 c:{c}") # 輸出:5.0 -
無條件進位與捨去(
ceil,floor)
常用於物流箱數計算、租車天數或遊戲天數計算。
[案例]: 計算商品包裝箱數(每箱裝 10 件,共有 23 件商品)。 檔案:ceil.py程式碼:
ceil.pyimport math items = 23 capacity_per_box = 10 boxes_needed = math.ceil(items / capacity_per_box) print(f"需要箱數:{boxes_needed}") # 需要箱數:3 (無條件進位)[案例]: 計算完整租借天數(滿 24 小時算一天)。 檔案:
floor.py程式碼:
floor.pyimport math rent_hours = 50 days = math.floor(rent_hours / 24) print(f"滿天數:{days} 天") # 滿天數:2 天 (無條件捨去) -
指數與對數(
exp,log,e)
常用於計算複利、資料規模成長或自然科學演算法(如衰減率)。- e(歐拉數):是一個數學常數,數值約等於
2.71828。 - exp(x) 指數:代表計算 的 次方(即 )。
「這個 exp 底數乘了 次之後會變成多少?」 - log() 對數: 是 指數(Exponentiation)的逆運算。
「底數要自乘幾次,才會得到這個目標數值?」
[案例1]: 計算資訊學中的位元數需求 (以2為底的對數)
程式碼 log.py
import math print(f"圓周率 π:{math.pi}") # 輸出:3.141592653589793 print(f"自然對數 e:{math.e}") # 輸出:2.718281828459045 # 欲儲存 1000 種狀態,至少需要多少個位元 (Bits)? states = 1000 # 單一參數 math.log(x)(預設):當不填寫 base(底數)時,預設為自然對數(Natural Logarithm,以 e 為底),即 ln(x) 或 log_e(x)。 # 範例:math.log(math.e) 會得到 1.0 # 雙參數 math.log(x, base):指定以特定 base 為底數求 x 的對數,即 log_{base}(x) # 範例:math.log(1000, 2) 就是計算 log_2(1000) 趨近 approx 9.9657。 bits_needed = math.ceil(math.log(states, 2)) print(f"儲存 {states} 種狀態需要 {bits_needed} 個位元") # 儲存 1000 種狀態需要 10 個位元程式碼 exp.py
import math principal = 10000 # 本金 10,000 rate = 0.05 # 年利率 5% years = 3 # 3 年 # 計算連續複利公式:A = P * e^(r*t) amount = principal * math.exp(rate * years) print(f"連續複利後的總金額:{amount:.2f}") # 連續複利後的總金額:11618.34 - e(歐拉數):是一個數學常數,數值約等於
-
三角函數與反三角函數(
sin,cos,tan,asin,acos,atan)
常用於遊戲開發(角度計算、物體移動軌跡)、建築測量與物理模擬。注意事項:Python 的三角函數輸入參數均為弧度(Radian),而非度數(Degree)。
若要將角度轉為弧度,可使用公式:。[案例]
程式碼 trigonometry.py
import math # 案例 1:已知角度與斜邊,計算直角三角形的對邊高度 (sin) # 已知角度為 30 度,斜邊長為 10,求對邊高度 angle_degrees = 30 hypotenuse = 10.0 # 1. 將角度轉為弧度 radians = angle_degrees * (math.pi / 180) # 或使用 math.radians(30) # 2. 計算對邊高度 = 斜邊 * sin(角度) height = hypotenuse * math.sin(radians) print(f"30 度角、斜邊長 10 時的高度為:{height:.2f}") # 輸出:5.00 # 30 度角、斜邊長 10 時的高度為:5.00 # 案例 2:利用反切函數 (atan) 反推角度 # 已知對邊為 1,鄰邊為 1,求對應的角度 tan_value = 1.0 # 1. 計算反切函數取得弧度 rad_result = math.atan(tan_value) # 取得弧度 (約 0.7854,即 π/4) # 2. 將弧度轉為角度 deg_result = rad_result * (180 / math.pi) # 轉回角度 print(f"tan 答案為 1 時的角度為:{deg_result:.1f} 度") # tan 答案為 1 時的角度為:45.0 度 -
浮點數絕對值(
fabs)
與Python內建的abs()類似,但math.fabs()始終傳回浮點數 (float)。程式碼 fabs.py
import math val = -15 # 使用 math.fabs() 計算絕對值 result = math.fabs(val) # 輸出絕對值結果及其型態 print(f"絕對值結果:{result},型態:{type(result)}") # 輸出:絕對值結果:15.0,型態:<class '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[簡例] 使用亂數套件函式,隨機產生5個1~10之間的整數。 (檔名:randint01.py)
[結果]
第1個亂數:3
第2個亂數:9
第3個亂數:4
第4個亂數:3
第5個亂數:8程式碼: randint01.py
import random as R # 生成 5 個 1 到 10 之間的隨機整數 for i in range(5): # 生成隨機整數 rnd = R.randint(1, 10) # 輸出結果 print(f'第 {i+1} 個亂數 : {rnd}')
[簡例] 使用亂數套件函式及串列,隨機產生6個18〜35之間不會重複的整數。 (檔名:randint02.py)
程式碼: randint02.py
import random as R # 匯入 Python 隨機模組,並將別名設為 R 以方便呼叫 max = 35 # 設定亂數範圍的「最大值」(包含 35) min = 18 # 設定亂數範圍的「最小值」(包含 18) num = 6 # 設定預計要採集的不重複亂數「總數量」 arr = [0 for x in range(num)] # 使用串列生成式建立長度為 6 的串列,預設填入 0 (即 [0, 0, 0, 0, 0, 0]) # arr = R.sample(range(min, max+1), num) # (補充: Python 精簡寫法,可直接不重複抽樣取代底下整個 while 迴圈) n = 0 # 初始化「串列索引值」與「成功存入的亂數計數器」(從第 0 個位置開始填) while (n < num): # 當已成功的亂數數量 (n) 還沒達到預期總數 (num) 時,繼續執行迴圈 isRepeat = False # 每次產生新亂數前,先假設(預設)這個亂數「沒有重複」 rnd = R.randint(min, max) # 隨機產生一個介於 min(18) 到 max(35) 之間的整數(包含兩端點) for v in arr: # 逐一取出目前 arr 串列中的每一個元素 v 來比對 if rnd == v: # 如果新產生的亂數 rnd 等於串列中已存在的元素 v isRepeat = True # 代表數值重複了,將標記改為 True,並終止無謂的比對 break # (補充優化: 發現重複即可立即跳出 for 迴圈,節省效能) if not isRepeat: # 如果 isRepeat 仍為 False (即亂數確實「沒有重複」) arr[n] = rnd # 將這個合格的亂數放入串列 arr 的第 n 個位置 n += 1 # 成功存入一個亂數,將索引計數器 n 加 1,準備填寫下一個位置 for i in range(num): # 使用 for 迴圈從 i = 0 到 i = 5 走訪串列 print(f'第 {i+1} 個亂數 : {arr[i]}') # 透過 f-string 格式化輸出,將序號 (i+1) 與對應位置的亂數 (arr[i]) 印出
[結果]
第 1 個亂數 : 29
第 2 個亂數 : 19
第 3 個亂數 : 21
第 4 個亂數 : 27
第 5 個亂數 : 33
第 6 個亂數 : 26程式碼: others.py
import random # -------------------------------------------------- # 1. randint(n1, n2) # 說明:產生 n1 到 n2 之間的隨機整數(包含 n1 與 n2) # -------------------------------------------------- dice_result = random.randint(1, 6) print("1. randint 案例(擲骰子):", dice_result) # 輸出範例: 4 # -------------------------------------------------- # 2. randrange(n1, n2, n3) # 說明:從 n1 開始到 n2-1,以 n3 為間隔,隨機抽一個整數 # -------------------------------------------------- even_num = random.randrange(0, 10, 2) print("2. randrange 案例(抽0~8之間的偶數):", even_num) # 輸出範例: 6 # -------------------------------------------------- # 3. random() # 說明:產生 0.0 到 1.0 之間的隨機浮點數(包含 0.0,不包含 1.0) # -------------------------------------------------- chance = random.random() print("3. random 案例(機率/百分比):", chance) # 輸出範例: 0.732948102938472 # -------------------------------------------------- # 4. uniform(f1, f2) # 說明:產生 f1 到 f2 之間的隨機浮點數 # -------------------------------------------------- temperature = random.uniform(36.0, 37.5) print(f"4. uniform 案例(隨機體溫): {temperature:.2f} °C") # 輸出範例: 36.65 °C # -------------------------------------------------- # 5. choice(s) # 說明:從字串、串列等序列中,隨機選取一個元素 # -------------------------------------------------- pets = ['貓咪', '狗狗', '兔子', '倉鼠'] my_pet = random.choice(pets) print("5. choice 案例(隨機選一種寵物):", my_pet) # 輸出範例: 貓咪 # -------------------------------------------------- # 6. sample(s, n) # 說明:從序列中隨機選取 n 個「不重複」的元素,回傳串列 # -------------------------------------------------- lottery_pool = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] winning_numbers = random.sample(lottery_pool, 3) print("6. sample 案例(抽3個不重複獎號):", winning_numbers) # 輸出範例: [8, 2, 5] # -------------------------------------------------- # 7. shuffle(串列) # 說明:直接洗牌/打亂原本串列的順序(無傳回值,會修改原串列) # -------------------------------------------------- poker_cards = ['A', 'K', 'Q', 'J', '10'] random.shuffle(poker_cards) print("7. shuffle 案例(洗牌後的順序):", poker_cards) # 輸出範例: ['Q', 'A', 'J', '10', 'K']
4. time 套件函式
時間函式是利用時間變化來協助程式進行,以及取得時間、日期…等有關的設計。時間函式的原型定義在time套件中,time套件提供許多函式給使用者使用,例如 clock()、sleep()、time()…。
程式若有使用時間函式時,必須在使用前匯入 time 套件名稱,匯入敘述如下
import time套件名稱在匯入時可以另外取別名,如將 time 套件取別名為 T,匯入敘述如下:
import time as T1. time() 函式
time() 函式是取得電腦目前的時間,即自1970-01-01 00:00:00起到目前為止,所經過的秒數。
[例] 取得電腦目前的時間。
程式碼: time01.py
import time as T num = T.time() print(num) # 1785738947.4481163
說明
- 第
2行:Python的時間最小單位單位是tick,tick時長度為微秒(百萬分之一秒)。
因此time()函式傳回的秒數是精確到小數7位的浮點數。- 第
3行:所印出的時間是從1970-01-01 00:00:00起到目前的總秒數。
2. ctime() 函式
ctime() 函式是取得電腦目前所在時區的日期,時間資料,資料型別為字串。
[例] 取得電腦目前所在時區的日期、時間字串資料。(檔名:time02.py)
程式碼: time02.py
import time as T # 匯入 time 套件名稱,另取別名為 T st = T.ctime() print(st) # Mon Aug 3 14:37:19 2026
說明
- 第
2行:ctime()函式的傳回資料是英文字串,傳回值的格式為星期月份日時:分:秒 西元年。- 第
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)
程式碼: time03.py
import time as T timer = T.localtime() year = timer.tm_year moon = timer.tm_mon day = timer.tm_mday hour = timer.tm_hour minu = timer.tm_min sec = timer.tm_sec print(f'{year}-{moon}-{day} {hour}:{minu}:{sec}') # 2026-8-3 14:37:48
說明
- 第
2行:localtime()函式取得目前電腦所在時區的日期、時間資訊,指定給timer物件。此時這timer物件就擁有tm_year、tm_mon、tm_mday…等成員的資訊。- 第
3-8行:使用「物件,成員」的格式可以取得物件中指定成員的内容。如:timer.tm_year就是取得timer物件中tm_year成員的内容。- 第
9行:將所要的資訊以客製的格式「年-月-日時:分:秒」輸出顯示,例如顯示「2021-9-29 9:52:4」。
4. sleep()函式
sleep()函式可在程式執行的期間,使暫停一段時間。語法如下:
時間套件名稱(或別名).sleep(n) #n的單位為秒[例] 設定電腦執行期間暫停5秒,顯示暫停前後的電腦時間,並計算暫停前後的時間差距。(檔名:time04.py)
程式碼: time04.py
import time as T t1 = T.time() print(f'暫停前電腦時間:{t1}') T.sleep(5) t2 = T.time() print(f'暫停後電腦時間:{t2}') print(f'程式暫停了{t2-t1:.7f}秒') # 暫停前電腦時間:1785739090.8115215
5. datetime()函式
time套件所處理的日期/時間資料,其資料型別為 「time.struct_time」。而datetime套件所處理的日期/時間資料之資料型別為 「datetime.datatime」。使用前匯入datetime套件名稱,匯入敘述如下:
import datetime套件名稱在匯入時可以另外取別名,如DT,匯入敘述如下:
import datetime as DT-
取得日期/時間
datetime套件具有屬性year(西元年)、month、day、hour、minute、second、microsecond(微秒,0.000001秒)來讀取日期/時間的個別內容。2021-10-01 09:41:17.688769 現在日期:2021年10月1日 目前時間:9時41分17秒[例] 顯示現在日期(年、月、日) 和目前前時間(時、分、秒) 檔名:
datetime01.py程式碼: datetime01.py
import datetime as DT t1 = DT.datetime.now() print(t1) print(f'現在日期 : {t1.year} 年 {t1.month} 月 {t1.day} 日') print(f'目前時間 : {t1.hour} 時 {t1.minute} 分 {t1.second} 秒')[結果]
2026-08-03 14:38:55.418411 現在日期 : 2026 年 8 月 3 日 目前時間 : 14 時 38 分 55 秒 -
設定日期/時間
針對特殊的日期/時間要記錄起來,可以使用下列語法設定:物件變數 =datetime.datetime(year, month, day, hour, minute, second)上面語法至少要設定前面 year、month、day三個屬性,後面屬性若沒設定則預設值為
00:00:00。[例] 設定阿姆斯壯登上月球的日期·(檔名:
datetime02.py)程式碼: datetime02.py
import datetime as DT setTime = DT.datetime(1969,7,20) print(setTime) # 1969-07-20 00:00:00 -
格式化字串輸出
使用datetime套件的物件屬性內容可以依需求做格式化的字串輸出,如下例:[例]格式化顯示目前日期(年/月/日 星期),其中月份使用縮寫英文、星期幾使用英文全寫。(檔名:
datetime03.py)程式碼: datetime03.py
import datetime as DT # 取得目前的日期與時間 nowTime = DT.datetime.now() # 以不同方式格式化輸出日期與時間 print('{:%Y/%b/%d %A}'.format(nowTime)) # 使用 f-string 格式化 print(f'{nowTime:%Y/%b/%d %A}') # 使用 strftime 方法格式化 print(nowTime.strftime("%Y/%b/%d %A"))[結果]
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’)