python 判斷是不是中文字

2021-07-27 15:59:29 字數 2500 閱讀 9360

下面這個小工具包含了 判斷unicode是否是漢字,數字,英文,或者其他字元。 全形符號轉半形符號。 unicode字串歸一化等工作。 還有乙個能處理多音字的漢字轉拼音的程式,還在整理中。

漢字處理的工具:

判斷unicode是否是漢字,數字,英文,或者其他字元。

全形符號轉半形符號。

def

is_chinese

(uchar):

"""判斷乙個unicode是否是漢字"""

if uchar >= u'/u4e00'

and uchar<=u'/u9fa5':

return

true

else:

return

false

defis_number

(uchar):

"""判斷乙個unicode是否是數字"""

if uchar >= u'/u0030'

and uchar<=u'/u0039':

return

true

else:

return

false

defis_alphabet

(uchar):

"""判斷乙個unicode是否是英文本母"""

if (uchar >= u'/u0041'

and uchar<=u'/u005a') or (uchar >= u'/u0061'

and uchar<=u'/u007a'):

return

true

else:

return

false

defis_other

(uchar):

"""判斷是否非漢字,數字和英文本元"""

ifnot (is_chinese(uchar) or is_number(uchar) or is_alphabet(uchar)):

return

true

else:

return

false

defb2q

(uchar):

"""半形轉全形"""

inside_code=ord(uchar)

if inside_code<0x0020

or inside_code>0x7e: #不是半形字元就返回原來的字元

return uchar

if inside_code==0x0020: #除了空格其他的全形半形的公式為:半形=全形-0xfee0

inside_code=0x3000

else:

inside_code+=0xfee0

return unichr(inside_code)

defq2b

(uchar):

"""全形轉半形"""

inside_code=ord(uchar)

if inside_code==0x3000:

inside_code=0x0020

else:

inside_code-=0xfee0

if inside_code<0x0020

or inside_code>0x7e: #轉完之後不是半形字元返回原來的字元

return uchar

return unichr(inside_code)

defstringq2b

(ustring):

"""把字串全形轉半形"""

return

"".join([q2b(uchar) for uchar in ustring])

defuniform

(ustring):

"""格式化字串,完成全形轉半形,大寫轉小寫的工作"""

return stringq2b(ustring).lower()

defstring2list

(ustring):

"""將ustring按照中文,字母,數字分開"""

retlist=

utmp=

for uchar in ustring:

if is_other(uchar):

if len(utmp)==0:

continue

else:

utmp=

else:

if len(utmp)!=0:

return retlist

if __name__=="__main__":

#test q2b and b2q

for i in range(0x0020,0x007f):

print q2b(b2q(unichr(i))),b2q(unichr(i))

#test uniform

ustring=u'中國 人名a高頻a'

ustring=uniform(ustring)

ret=string2list(ustring)

print ret

判斷是不是樹

判斷是否為樹的的依據可以簡化為一句話 是否有且僅有乙個入度為0的節點。上只用對映就可以解決,但是要排除自環的情況。include using namespace std map int,int indegree bool istree return rootcount 迴圈結束後,若根節點數非0,則...

如何判斷序列是不是堆 如何判斷墨鏡是不是偏光的

開車的都比較喜歡配戴偏光太陽鏡,因為偏光鏡除了能阻擋紫外線外,還能最大限度的減少和過濾掉反射的強光眩光。譬如開車時對面車的強光燈,或行駛在前面的車因後窗貼的反光阻隔uv的窗貼膜被太陽照射而形成的強眩光,使佩戴者能清楚的開清前面的事物。購買的偏光眼鏡一般在鏡片上或鏡腿內側都會有polarized 偏光...

怎麼判斷是不是尤拉迴路 怎麼判斷自己是不是甲溝炎

1 急性甲溝炎 初期症狀為指甲區域性紅腫,輕 觸紅腫部分即會產生刺痛。約數天後開始化膿,並可能延伸至指甲下方。2 慢性甲溝炎 如同症名,指甲會緩慢逐漸變成黃褐色,同時變形彎曲凹凸不平後變慘白或黃 色 研究發現慢性甲溝炎也常合併綠膿桿菌感染而使指甲變綠。3 化膿性甲溝炎化 甲溝有輕度紅腫 疼痛 甲小皮...