python根据unicode判断语言类型实例代码

时间:2022-11-05 17:33:39

本文实例主要实现的是python根据unicode判断语言类型,具体如下。

实例代码:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
def is_chinese(uchar):
"""判断一个unicode是否是汉字"""
  if uchar >= u'\u4e00' and uchar<=u'\u9fa5':
    return True
  else:
    return False
 
def is_number(uchar):
"""判断一个unicode是否是数字"""
  if uchar >= u'\u0030' and uchar<=u'\u0039':
    return True
  else:
    return False
 
def is_alphabet(uchar):
"""判断一个unicode是否是英文字母"""
  if (uchar >= u'\u0041' and uchar<=u'\u005a') or (uchar >= u'\u0061' and uchar<=u'\u007a'):
    return True
  else:
    return False
 
def is_other(uchar):
"""判断是否非汉字,数字和英文字符"""
  if not (is_chinese(uchar) or is_number(uchar) or is_alphabet(uchar)):
    return True
  else:
    return False
 
def B2Q(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)
 
def Q2B(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)
 
def stringQ2B(ustring):
"""把字符串全角转半角"""
  return "".join([Q2B(uchar) for uchar in ustring])
 
def uniform(ustring):
"""格式化字符串,完成全角转半角,大写转小写的工作"""
  return stringQ2B(ustring).lower()
 
def string2List(ustring):
"""将ustring按照中文,字母,数字分开"""
retList=[]
utmp=[]
for uchar in ustring:
if is_other(uchar):
if len(utmp)==0:
continue
else:
retList.append("".join(utmp))
utmp=[]
else:
utmp.append(uchar)
if len(utmp)!=0:
retList.append("".join(utmp))
return retList

总结

以上就是本文关于python根据unicode判断语言类型实例代码的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!

原文链接:http://blog.csdn.net/uestcyao/article/details/22092403