python3一个中文3个字符_高手接招! 小应用 用python3判断一个字符串是不是中文组成的...

在python3中,str默认是unicode编码

用 ord() 函数判断单个字符的unicode编码是否大于255即可。

一般来说,中文常用字的范围是:[\u4e00-\u9fa5]

准确点判断中文字符,可以这样比较:

>>> X,Y = ['\u4e00','\u9fa5']

>>> X<='阿'<=Y

True

例子:

>>> a = "你好";b = "

你好"

>>> def isAllZh(s):

for c in s:

if not('\u4e00' <= c <= '\u9fa5'):

return False

return True

>>> isAllZh(a)

True

>>> isAllZh(b)

False

#或者用 all()

>>> all(map(lambda c:'\u4e00' <= c <= '\u9fa5',a))

True

>>> all(map(lambda c:'\u4e00' <= c <= '\u9fa5',b))

False

既然 @依云 提出了编码范围的问题,就再补充一些~

详细的unicode分区信息可以参考这里:中日韩统一表意文字

楼主是问 判断中文的算法;很简单,就是比较字符编码的大小,落在cjk文字范围内,就是中文。

出了[\u4e00-\u9fa5]范围的汉字,多数是生僻字、异体字;如果很在意的话,可以参照下表,多加几个判断条件即可。

中文在unicode里的分区码段:

1、中日韩扩展部首[2E80-2EFF](116字)

2、康熙字典部首[2F00-2FDF](214字)

3、表意文字描述字符[2FF0-2FFF](12字)

4、中日韩笔画[31C0-31EF](37字)

5、中日韩统一表意文字扩展A区[3400-4DBF](6582字)

6、中日韩统一表意文字[4E00-9FFF](20940字)

7、私用区[E000-F8FF](896字)

8、中日韩兼容表意文字[F900-FAFF](471字)

9、中日韩统一表意文字扩展B区[20000-2A6DF](42711字)

10、中日韩统一表意文字扩展C区[2A700-2B73F](4149字)

11、中日韩统一表意文字扩展D区[2B740-2B81F](222字)

12、中日韩统一表意文字增补集[2F800-2FA1F](542字)

13、增补私用A区[F0000-FFFFF](73字)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值