中蟒首頁 最新消息 程式下載 說明文件
中蟒社區 開發小組 繁體字版 English
中蟒文檔
中蟒入門
程式範例
參考手冊
 
程式範例
中蟒加油
繁簡互換
漢字基因字典
參考手冊產生器
 
電郵我們
glaze at chinesepython.org
 
Google

 
  

漢字基因字典

漢字基因字典是朱邦復先生編修的字典. 字典內容多取自康熙字典, 但加入了漢字基因的概念: 每個單字以其基因字首字身加以解釋. 為學習 "漢字" 的好材料. 本模組作為示範用途, 僅供查詢單字, 並不涉及朱老漢字基因的諸種妙用.
#--BIG5-- (此行為暗號, 向中蟒表明本文件用大五編碼)
從 sys 載入 modules
從 os.path 載入 dirname, join
基因字典 = {}
路 = dirname(modules[__名稱__].__檔案__)
取 文件 自 [ 'A1', 'B1', 'C1', 'D1', 'E1', 'F1', 'G1', 'H1', 'I1', 'J1', 
    'K1', 'L1', 'M1', 'N1', 'O1', 'P1', 'Q1', 'R1', 'S1', 'T1', 
    'U1', 'V1', 'W1', 'X1', 'Y1' ]:
	全文 = 打開(join(路,文件+'.TXT')).讀入().強設編碼('大五')
	全文 = 全文.替換('\r\n','\n')
	條列 = 全文.分割('\n@')
	取 條 自 條列:
		目 = 條[2:4]
		基因字典[目] = 條
寫 """共得 %i 條""".強設編碼("大五")%(長度(基因字典))
刪除 全文, 目, 條, 條列, dirname, join, modules, 文件

定義 查(字):
	如 長度(字) != 2:
		寫 """只能查詢單字""".強設編碼("大五")
		傳回 空
	如 字.字串編碼() == '國標':
		字 = 字.國標變大五()
	如 基因字典.有(字):
		傳回 基因字典[字]
	否則:
		傳回 """字典中無此字\n""".強設編碼("大五")

定義 問(字):
	寫 查(字)

基因字典的內文如下:
@【日】  リ  ㄖˋ  Ryhˋ
	象形-甲骨文
	茪荈均C
	  荂G  時日:太陽出沒一次為一日,分為二十四時。
		落日:下落中的太陽。
	        日暉:日光影響下,人的感受。
		日光:日發出強烈光線,人得以見。
		日圭:古代以日影計時,其計時器名日圭、日規或日晷。
		日曆:記載時間之曆表。
		日子:指定詞。指生活所經歷的時間。
		日記:逐日記錄之文稿。
	  唌G  明日:主觀立場所在的下一天。
		昨日:主觀立場所在的上一天。
		今日:主觀立場所在的當天。
		前日:主觀立場所在的上兩天。
                日蝕:月繞行至日及地球之間,遮沒了太陽,謂之日蝕。
		日落:日行至西天,時已晚,落於地平線下。
		日出:日由東方升起,是一日之始。
@【昌】  讒リ擗  ㄔㄤ  Chang
	字首〔日〕:茪荈均C
	字身〔曰〕:荓i口說。
	會意-甲骨文
	堇﹞荈坐坏,明亮,光大,美好。
	組合字:錩淐裮倡唱菖娼昍閶猖琩鯧??
	  荂G  昌言:人性以光大為美,是為美好之言。
	  唌G  昌盛:光大的程度高盛。
		昌隆:光大的程度興隆。
:
:
:
:

  • 該字典內容公開. 可到 http://www.cbflabs.com 下載. 如果你下載中蟒則已包括該字典.
  • 一般來說中蟒寫的程式都很容易明白, 基本上不要解釋. 但因為這個字典在大五及國標環境下都可運作, 然而兩種編碼同時操作很容易把人弄糊塗, 所以要特別說明一下:
    1. 基因字典本身是大五碼的, 所以讀進來的字都是大五編碼的字. (注意字串的編碼記號是和即譯器的目前編碼一致的, 因此和文本實際的編碼不一定吻合)
    2. 即譯器運行在國標編碼下的話, 用戶輸入的查詢字應為國標碼, 所以要先檢查是否需要轉換.
    3. 在顯示文字上, 因為中蟒在寫字串時會檢查目前編碼和字串的編碼作自動轉換, 所以不必操心.
    4. 那些使戶訊息如 "只能查詢單字" 什麼的就要處理一下. 用 '強設編碼("大五")' 這個函數為每個要輸出的訊息設好編即成.
    5. 三引號的用法在新版 2.1.3-0.4 中已取消那些使戶訊息如 "只能查詢單字" 什麼的就要處理一下. 有兩個方法, 第一個是用強設編碼的方法指定該字串的編碼, 另一個方法就是用三個引號把它們包起來, 三引號在 python 中經常用來作說明文件用, 在中蟒的情況下被三引號包住的字串會自動做編碼轉換. 這樣就省去了許多手續.
    6. 注意! 普通字串中一般會設為中蟒啟動時的編碼設定, 這是因為要方便處理二進位的資料流. 不問三七二十一都轉換編碼會弄的一團糟.