python獲取一組漢字的拼音首字母

mxw8 9年前發布 | 3K 次閱讀 Python

#!/usr/bin/env python

-- coding: utf-8 --

def multi_get_letter(str_input):

if isinstance(str_input, unicode):
    unicode_str = str_input
else:
    try:
        unicode_str = str_input.decode('utf8')
    except:
        try:
            unicode_str = str_input.decode('gbk')
        except:
            print 'unknown coding'
            return

return_list = []
for one_unicode in unicode_str:
    return_list.append(single_get_first(one_unicode))
return return_list

def single_get_first(unicode1): str1 = unicode1.encode('gbk') try:
ord(str1) return str1 except: asc = ord(str1[0]) * 256 + ord(str1[1]) - 65536 if asc >= -20319 and asc <= -20284: return 'a' if asc >= -20283 and asc <= -19776: return 'b' if asc >= -19775 and asc <= -19219: return 'c' if asc >= -19218 and asc <= -18711: return 'd' if asc >= -18710 and asc <= -18527: return 'e' if asc >= -18526 and asc <= -18240: return 'f' if asc >= -18239 and asc <= -17923: return 'g' if asc >= -17922 and asc <= -17418: return 'h' if asc >= -17417 and asc <= -16475: return 'j' if asc >= -16474 and asc <= -16213: return 'k' if asc >= -16212 and asc <= -15641: return 'l' if asc >= -15640 and asc <= -15166: return 'm' if asc >= -15165 and asc <= -14923: return 'n' if asc >= -14922 and asc <= -14915: return 'o' if asc >= -14914 and asc <= -14631: return 'p' if asc >= -14630 and asc <= -14150: return 'q' if asc >= -14149 and asc <= -14091: return 'r' if asc >= -14090 and asc <= -13119: return 's' if asc >= -13118 and asc <= -12839: return 't' if asc >= -12838 and asc <= -12557: return 'w' if asc >= -12556 and asc <= -11848: return 'x' if asc >= -11847 and asc <= -11056: return 'y' if asc >= -11055 and asc <= -10247: return 'z' return ''

def main(str_input): a = multi_get_letter(str_input) b = '' for i in a: b= b+i print b if name == "main": str_input=u'歡迎你' main(str_input)</pre>

 本文由用戶 mxw8 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!