農會 資訊管理類程式設計110 年第 37 題單選題
在Python中,len("農會") 的結果為何?
B正確答案
Python 3 的 len() 計算字元數而非位元組數,「農會」為兩個中文字元,故結果為 2。
為什麼答案是 B
正確。Python 3 字串以 Unicode 處理,len() 回傳字元個數,「農會」共 2 個字元。
考點:字元計數考點:len()函式考點:編碼迷思考點:位元組混淆
載入中…
完整詳解
Pro · 無限重點 Python 3 的 len() 計算字元數而非位元組數,「農會」為兩個中文字元,故結果為 2。
看到 Python 字串長度,直接數「有幾個字」。中文字、英文字、符號都算 1 個字元,不用考慮編碼位元組!
逐選項分析
A字元計數✕
1 是錯誤的,字串中包含「農」與「會」兩個獨立字元,長度不可能為 1。
Blen()函式✓ 正確
正確。Python 3 字串以 Unicode 處理,len() 回傳字元個數,「農會」共 2 個字元。
C編碼迷思✕ 陷阱
4 是錯誤的。若誤以為中文字佔 2 個位元組(如 Big5 編碼)而相加就會錯選,但 Python 3 算的是字元數。
D位元組混淆✕
8 是錯誤的。可能是誤將字元數乘上 UTF-32 的 4 位元組,Python 3 的 len() 不會回傳位元組長度。
Python 字串長度與編碼對照
| 情境 | Python 3 行為 | 結果 |
|---|
| len("農會") | 計算 Unicode 字元數 | 2 |
| len("農會".encode('utf-8')) | 計算 UTF-8 編碼後的位元組數 | 6 |
| len("農會".encode('big5')) | 計算 Big5 編碼後的位元組數 | 4 |
考生常將早期 Python 2 或 C/Java 的位元組概念帶入 Python 3。請記住 Python 3 的字串預設是 Unicode,len() 只算「字元個數」,不算「位元組大小」。