python 判断区分字符串是否都是英文/中文

本文介绍如何使用Python判断字符串是否全为英文、中文或其他特定字符类型的方法。通过实例演示了利用Unicode范围判断中文字符,以及使用内置函数如isalpha(), isdigit(), isalnum(), isupper(), islower(), istitle(), isspace()等进行字符类型的判断。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 判断 是否全是 英文

b = 'bilibili站'
b.isalpha()        # 中英混合不适用
# True
b.encode('utf-8').isalpha()
# False
b.encode('utf-8')
# b'bilibili\xe7\xab\x99'

 

2. 判断 是否全是 中文

word_1 = '如何再飘摇'
res = True

for w in word_1:
    if not '\u4e00' <= w <= '\u9fff':
        res = False
        
print(res)
# True
word_2 = '风停了云知道2333'
res = True
for w in word_2:
    if not '\u4e00' <= w <= '\u9fff':
        res = False
        
print(res)
# False


word_3 = 'abc风中有朵雨做的云abc'
res = True
for w in word_3:
    if not '\u4e00' <= w <= '\u9fff':
        res = False
print(res)
# False

 

3. 其他判断函数

isalpha ( )判断是否全是字母
isdigit ( )判断是否全是数字
isalnum ( )是否全是数字或字母
isupper ( )... 大写字母
islower ( )... 小写字母
istitle ( )... 首字母大写
isspace()... 空白字符

 

要实现不区分大小写的字符串比较,可以先将两个字符串都转换为相同的大小写形式(例如全部转为小写),然后再进行比较。以下是具体的解析和代码示例: ### 方法说明 为了完成这一功能,可以通过 `str.lower()` 或者 `str.upper()` 将字符串统一到同一大小写状态后再调用 `==` 进行比较操作。 另外需要注意的是,在某些情况下可能需要考虑空字符串或者特殊字符的情况。这里我们假设输入均为合法的字符串对象[^3]。 下面是完整的函数定义以及复杂度分析: ```python def is_string_equal_case_insensitive(input_str: str, target: str = 'abc') -> bool: """ 判断给定字符串是否与目标字符串相等(忽略大小写) 参数: input_str (str): 待检测的字符串. target (str): 默认为目标字符串 "abc". 返回值: bool: 如果两字符串相同则返回True;否则False. 示例: >>> is_string_equal_case_insensitive('ABC') True >>> is_string_equal_case_insensitive('AbC', 'aBc') True >>> is_string_equal_case_insensitive('', '') True """ if not isinstance(input_str, str) or not isinstance(target, str): raise ValueError("Both inputs must be strings.") return input_str.lower() == target.lower() ``` #### 时间复杂度分析 上述算法的时间复杂度主要取决于字符串长度 n 和 m (分别代表 `input_str` 和 `target` 的长度)。由于两次调用了 `.lower()` 函数来规范化大小写,并随后进行了逐字节对比,则整体时间复杂度应为 O(n+m)[^1]. #### 边界条件讨论 如果其中一个参数为空串 (`''`),那么只有另一个也是空串时才成立。因此该情况已经被自然覆盖于逻辑之中无需单独处理[^2]。 --- ### 测试案例展示 下面是一些简单的单元测试例子用于验证此方法的有效性: ```python print(is_string_equal_case_insensitive('ABC')) # 输出: True print(is_string_equal_case_insensitive('xyz', 'XYZ')) # 输出: False print(is_string_equal_case_insensitive('hello world!', '')) # 抛出异常提示错误类型 ```
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值