#45128: python unicodedata


sam851015@gmail.com (多挖鼻孔有益身心健康)

學校 : 臺中市立惠文高級中學
編號 : 277705
來源 : [123.192.228.253]
最後登入時間 :
2025-05-10 17:41:09
d337. 中国字 -- liouzhou_101 | From: [123.192.228.253] | 發表日期 : 2025-01-10 19:28

這題考的是怎樣判斷一個字元是否是漢字

剛好,python 有個內建工具可以協助處理— unicodedata,可以透過 import 使用它

 

unicodedata 可以用來協助分析、處理一個 unicode 字元,在這題中我使用的是 unicodedata.name

這個函數會返回一個 unicode 字符的「名稱」

 

什麼是 unicode 字符的名稱?

與其說是名稱,更像是備註的概念,這個名稱會紀載該字符的一些特性、用途、意義,例如:

 

中文「你」的名稱是「CJK Unified Ideograph-4F60」

英文「a」的名稱是「Latin Small Letter A」

日文「の」的名稱是「Hiragana Letter No」

韓文「ㅋ」的名稱是「Hangul Letter Khieukh」

 

這些資訊可以在這個網站查: Unicode - Compart

 

這個名稱是有規律的,會在名稱的開頭標記其所屬的語系、主要類別

英文是 Latin

韓文是 Hangul

數字是 Digit

日文有分平假名和片假名,平假名是 Hiragana,片假名是 Katakana

 

漢字比較特別,因為漢字有許多地區都有在使用,但大家用的又有些重複,有些不重複,所以漢字在 unicode 中被特別拉出來,統稱 CJK

絕大部分的漢字的 unicode 名稱開頭都是 CJK

所以我們只需要檢查每個字元的 unicode 名稱開頭是否是 CJK 即可

 

if unicodedata.name(chr)[:3] == 'CJK'

 

這樣就可以特別把漢字挑出來,避免印到其他字符

 

 
ZeroJudge Forum