- 判断字符串中是否包含中文
- 方法一:利用 Unicode 编码范围判断
- 中文的 Unicode 编码范围是
\u4e00 - \u9fff
。可以遍历字符串中的每个字符,判断其 Unicode 编码是否在这个范围内。 - 示例代码如下:
- 中文的 Unicode 编码范围是
- 方法一:利用 Unicode 编码范围判断
def has_chinese(s):
for char in s:
if '\u4e00' <= char <= '\u9fff':
return True
return False
例如,print(has_chinese("你好"))
输出为True
,print(has_chinese("hello"))
输出为False
。
- 方法二:使用第三方库
zhon
(如果经常需要处理中文相关任务,推荐安装)zhon
库提供了更方便的工具来处理中文相关内容。可以使用zhon.hanzi
模块来判断字符串是否包含中文。- 首先需要安装
zhon
库:pip install zhon
。 - 示例代码如下:
from zhon.hanzi import all_hz
def has_chinese_zhon(s):
for char in s:
if char in all_hz:
return True
return False
调用方式和结果与第一种方法类似。
2. 判断字符串中是否包含英文
- 方法一:利用字符的 ASCII 码范围判断(简单情况)
- 英文字母(大小写)的 ASCII 码范围是
65 - 90
(大写字母A - Z
)和97 - 122
(小写字母a - z
)。可以遍历字符串中的字符,判断其 ASCII 码是否在这个范围内。 - 示例代码如下:
- 英文字母(大小写)的 ASCII 码范围是
def has_english(s):
for char in s:
if (65 <= ord(char) <= 90) or (97 <= ord(char) <= 122):
return True
return False
例如,print(has_english("hello"))
输出为True
,print(has_english("你好"))
输出为False
。
- 方法二:使用正则表达式判断
- 正则表达式
[a-zA-Z]
可以匹配任何英文字母。通过re
模块可以检查字符串中是否存在符合这个模式的字符。 - 需要先导入
re
模块:import re
。 - 示例代码如下:
- 正则表达式
def has_english_regex(s):
return bool(re.search(r'[a-zA-Z]', s))
调用这个函数,print(has_english_regex("abc"))
输出为True
,print(has_english_regex("你好"))
输出为False
。