Bootstrap

Python判断字符串中是否是中英文文小技巧

  1. 判断字符串中是否包含中文
    • 方法一:利用 Unicode 编码范围判断
      • 中文的 Unicode 编码范围是\u4e00 - \u9fff。可以遍历字符串中的每个字符,判断其 Unicode 编码是否在这个范围内。
      • 示例代码如下:
       def has_chinese(s):
           for char in s:
               if '\u4e00' <= char <= '\u9fff':
                   return True
           return False

例如,print(has_chinese("你好"))输出为Trueprint(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 码是否在这个范围内。
    • 示例代码如下:
       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"))输出为Trueprint(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"))输出为Trueprint(has_english_regex("你好"))输出为False

悦读

道可道,非常道;名可名,非常名。 无名,天地之始,有名,万物之母。 故常无欲,以观其妙,常有欲,以观其徼。 此两者,同出而异名,同谓之玄,玄之又玄,众妙之门。

;