python 判断字符串中是否只有中文字符

本文介绍了Python中字符串编码的基本概念,重点讲解了encode和decode的功能,并提供了一段实用的代码来判断字符串中是否包含中文字符。
部署运行你感兴趣的模型镜像

python中的encode和decode:

首先,在python中字符串的表示是 用unicode编码。所以在做编码转换时,通常要以unicode作为中间编码。

decode的作用是将其他编码的字符串转换成unicode编码,比如 a.decode('utf-8'),表示将utf-8编码的字符串转换成unicode编码

encode的作用是将unicode编码的字符串转换成其他编码格式的字符串,比如b.encode('utf-8'),表示将unicode编码格式转换成utf-8编码格式的字符串

 

判断一个字符串中是否含有中文字符:

好了,有了以上知识,就可以很容易的解决这个问题了。这是代码

复制代码
 1 #-*- coding:utf-8 -*-
 2 
 3 import sys
 4 reload(sys)
 5 sys.setdefaultencoding('utf8')
 6 
 7 def check_contain_chinese(check_str):
 8     for ch in check_str.decode('utf-8'):
 9         if u'\u4e00' <= ch <= u'\u9fff':
10             return True
11     return False
12 
13 if __name__ == "__main__":
14     print check_contain_chinese('中国')
15     print check_contain_chinese('xxx')
16     print check_contain_chinese('xx中国')
17 
18 结果:
19 True
20 False
21 True

本文转载自 http://www.cnblogs.com/changzhi/p/3376140.html,转载内容纯粹为了方便查看和回顾,如有侵犯请见谅!

您可能感兴趣的与本文相关的镜像

Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

Python判断字符串是否有中文有多种方法,以下为你详细介绍: ### 方法一:利用 Unicode 编码范围判断 中文的 Unicode 编码范围是 `\u4e00 - \u9fff`。可以遍历字符串中的每个字符,判断其 Unicode 编码是否在这个范围内。示例代码如下: ```python def has_chinese(s): for char in s: if '\u4e00' <= char <= '\u9fff': return True return False ``` ### 方法二:使用正则表达式判断 可以使用正则表达式匹配中文的 Unicode 编码范围,判断字符串是否存在中文。示例代码如下: ```python import re def is_chinese(text, strict=False): """ 判断字符串是否包含中文 :param text: 待检测字符串 :param strict: 是否要求全部为中文(默认False) :return: bool """ pattern = re.compile(r'[\u4e00-\u9fff\u3400-\u4dbf\U00020000-\U0002a6df]') if strict: return all(pattern.search(char) for char in text) return bool(pattern.search(text)) ``` ### 方法三:排除法(结合 Unicode 区块) 通过遍历字符串中的每个字符,排除非中文字符判断是否存在中文。示例代码如下: ```python while True: name = input("需判断字符串:") c = 0 for i in name: if '\u4e00' <= i <= '\u9fff': continue c = c + 1 if c != 0: print("不是纯中文的字符串!") continue else: print("是纯中文的字符串!") break ``` ### 方法四:旧版本 Python 解码后判断 在旧版本 Python 中,需要先对字符串进行 `utf-8` 解码,再判断字符的 Unicode 编码是否在中文范围内。示例代码如下: ```python def check_contain_chinese(check_str): for ch in check_str.decode('utf-8'): if u'\u4e00' <= ch <= u'\u9fff': return True return False ```
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值