python取汉字的拼音的首个字母

简介:

 最近需要写脚本,有个要取汉字拼音首字母的需求,上网查了一些材料,发现很容易实现,提出来大家分享。本脚本用于汉字的拼音的首个字母,如:”我是中国人“,得出的字母为:wszgr。

 


 
 
  1. #!/usr/bin/env python 
  2. # -*- coding: utf-8 -*- 
  3. def multi_get_letter(str_input): 
  4.      
  5.     if isinstance(str_input, unicode): 
  6.         unicode_str = str_input 
  7.     else
  8.         try
  9.             unicode_str = str_input.decode('utf8'
  10.         except
  11.             try
  12.                 unicode_str = str_input.decode('gbk'
  13.             except
  14.                 print 'unknown coding' 
  15.                 return 
  16.      
  17.     return_list = [] 
  18.     for one_unicode in unicode_str: 
  19.         return_list.append(single_get_first(one_unicode)) 
  20.     return return_list 
  21.  
  22. def single_get_first(unicode1): 
  23.     str1 = unicode1.encode('gbk'
  24.     try:         
  25.         ord(str1) 
  26.         return str1 
  27.     except
  28.         asc = ord(str1[0]) * 256 + ord(str1[1]) - 65536 
  29.         if asc >= -20319 and asc <= -20284
  30.             return 'a' 
  31.         if asc >= -20283 and asc <= -19776
  32.             return 'b' 
  33.         if asc >= -19775 and asc <= -19219
  34.             return 'c' 
  35.         if asc >= -19218 and asc <= -18711
  36.             return 'd' 
  37.         if asc >= -18710 and asc <= -18527
  38.             return 'e' 
  39.         if asc >= -18526 and asc <= -18240
  40.             return 'f' 
  41.         if asc >= -18239 and asc <= -17923
  42.             return 'g' 
  43.         if asc >= -17922 and asc <= -17418
  44.             return 'h' 
  45.         if asc >= -17417 and asc <= -16475
  46.             return 'j' 
  47.         if asc >= -16474 and asc <= -16213
  48.             return 'k' 
  49.         if asc >= -16212 and asc <= -15641
  50.             return 'l' 
  51.         if asc >= -15640 and asc <= -15166
  52.             return 'm' 
  53.         if asc >= -15165 and asc <= -14923
  54.             return 'n' 
  55.         if asc >= -14922 and asc <= -14915
  56.             return 'o' 
  57.         if asc >= -14914 and asc <= -14631
  58.             return 'p' 
  59.         if asc >= -14630 and asc <= -14150
  60.             return 'q' 
  61.         if asc >= -14149 and asc <= -14091
  62.             return 'r' 
  63.         if asc >= -14090 and asc <= -13119
  64.             return 's' 
  65.         if asc >= -13118 and asc <= -12839
  66.             return 't' 
  67.         if asc >= -12838 and asc <= -12557
  68.             return 'w' 
  69.         if asc >= -12556 and asc <= -11848
  70.             return 'x' 
  71.         if asc >= -11847 and asc <= -11056
  72.             return 'y' 
  73.         if asc >= -11055 and asc <= -10247
  74.             return 'z' 
  75.         return '' 
  76.  
  77. def main(str_input): 
  78.     a = multi_get_letter(str_input) 
  79.     b = '' 
  80.     for i in a: 
  81.         b= b+i 
  82.     print b 
  83. if __name__ == "__main__"
  84.     str_input='我是中国人' 
  85.     main(str_input) 

运行如下:

 


本文转自 lover00751CTO博客,原文链接:http://blog.51cto.com/wangwei007/983289,如需转载请自行联系原作者


 

相关文章
|
7月前
|
机器学习/深度学习 Python 算法
最新【Python 百练成钢】时间调整、二进制数、回文素数、字母距离(1),2024年最新2024年阿里Python岗面试必问
最新【Python 百练成钢】时间调整、二进制数、回文素数、字母距离(1),2024年最新2024年阿里Python岗面试必问
最新【Python 百练成钢】时间调整、二进制数、回文素数、字母距离(1),2024年最新2024年阿里Python岗面试必问
|
2月前
|
存储 Python
[oeasy]python038_ range函数_大小写字母的起止范围_start_stop
本文介绍了Python中`range`函数的使用方法及其在生成大小写字母序号范围时的应用。通过示例展示了如何利用`range`和`for`循环输出指定范围内的数字,重点讲解了小写和大写字母对应的ASCII码值范围,并解释了`range`函数的参数(start, stop)以及为何不包括stop值的原因。最后,文章留下了关于为何`range`不包含stop值的问题,留待下一次讨论。
27 1
|
7月前
|
数据采集 自然语言处理 Python
深入探索Python中的汉字处理技巧
深入探索Python中的汉字处理技巧
103 1
|
3月前
|
Shell Python
9-5|python将中文转化为拼音
9-5|python将中文转化为拼音
|
3月前
|
Python
6-18|Python画字母H
6-18|Python画字母H
|
3月前
|
数据采集 自然语言处理 数据挖掘
python查询汉字函数
简洁、高效、易懂的代码对于提高开发效率与项目质量至关重要,并且对于维持代码的可读性和可维护性也有着很大帮助。选择正确的工具和方法可以大幅提升处理中文数据的效率。在编写用户定义函数时,明确函数的功能与返回值类型对于函数的复用和调试也同样重要。当涉及到复杂的文本处理或数据分析时,不宜过分依赖单一的工具或方法,而应根据具体需求灵活选择和组合不同的技术手段。
41 0
|
4月前
|
Python
【Python】正则表达式判断是否存在连续N个字母
文章提供了一个Python函数five_continue,使用正则表达式来判断字符串中是否存在连续5个或更多字母的情况,并返回存在此类序列的布尔值。
70 2
|
4月前
|
Python
Python openpyxl 将 Excel中的汉字 转换成拼音首字母
Python openpyxl 将 Excel中的汉字 转换成拼音首字母
55 0
|
4月前
|
JSON 数据格式 Python
Python 将省、市 json 替换 成拼音
Python 将省、市 json 替换 成拼音
61 0
|
6月前
|
数据采集 开发者 Python
在Python中判断字符串中是否包含字母
在Python中判断字符串中是否包含字母
63 4

热门文章

最新文章