栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Python实现检测字符串是否全为汉字(含生僻字)

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python实现检测字符串是否全为汉字(含生僻字)

1.  中文汉字Unicode 编码表

序号字符集字数Unicode 编码范围
1基本汉字209024E00-9FA5
2基本汉字补充749FA6-9FEF
3扩展A65823400-4DB5
4扩展B4271120000-2A6D6
5扩展C41492A700-2B734
6扩展D2222B740-2B81D
7扩展E57622B820-2CEA1
8扩展F74732CEB0-2EBE0
9康熙部首2142F00-2FD5
10部首扩展1152E80-2EF3
11兼容汉字477F900-FAD9
12兼容扩展5422F800-2FA1D
13PUA(GBK)部件81E815-E86F
14部件扩展452E400-E5E8
15PUA增补207E600-E6CF
16汉字笔画3631C0-31E3
17汉字结构122FF0-2FFB
18汉语注音433105-312F
19注音扩展2231A0-31BA
2013007
2. Python代码实现
#只要是检测到一个非汉字字符就返回
#if条件一大堆,肯定有更简单的写法,再学吧!
def is_ch(word):
    for ch in word:
        if not('u4e00' <= ch <= 'u9fef') and not ('u3400' <= ch <= 'u4db5') 
                and not ('u20000' <= ch <= 'u2a6d6') and not ('u2a700' <= ch <= 'u2b734')
                and not ('u2b740' <= ch <= 'u2b81d') and not ('u2b820' <= ch <= 'u2cea1')
                and not ('u2ceb0' <= ch <= 'u2ebe0') and not ('u2f00' <= ch <= 'u2fd5')
                and not ('u2e80' <= ch <= 'u2ef3') and not ('uf900' <= ch <= 'ufad9')
                and not ('u2f800' <= ch <= 'u2fa1d') and not ('ue815' <= ch <= 'ue86f')
                and not ('ue400' <= ch <= 'ue5e8') and not ('ue600' <= ch <= 'ue6cf')
                and not ('u31c0' <= ch <= 'u31e3') and not ('u2ff0' <= ch <= 'u2ffb')
                and not ('u3105' <= ch <= 'u312f') and not ('u31a0' <= ch <= 'u31ba'):
            return False
            break
    return True
3. 有时间时可以扩展

   (1)比如:全部为汉字时返回True和原字符串,有非汉字时返回False和非汉字字符串。

   (2)if中判断条件一大堆,肯定有简单的写法,找到一个简单的写法或是优雅点的写法。

   (3)更简单的实现方法?这些Unicode 编码连续吗?找时间研究一下!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/688688.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号