如何编写不区分大小写的Python子串检测函数(用islower/isupper)
修正不区分大小写的子串匹配函数
原代码存在的问题
- 判断逻辑颠倒:原代码检查
a2 in a1,实际需求是判断第一个字符串是否存在于第二个字符串中,逻辑完全相反 - 未处理大小写差异:没有统一字符串的大小写规则,导致大小写不同时匹配失败(比如
lol和HIlol因大小写问题无法匹配) - 未封装成函数:不符合需求中“编写一个函数”的要求
修正后的代码
根据需求,我们需要编写函数并利用islower()方法辅助统一大小写,实现不区分大小写的子串匹配:
def check_substring(str1, str2): # 统一将两个字符串转为小写,使用islower()判断是否需要转换 processed_str1 = str1.lower() if not str1.islower() else str1 processed_str2 = str2.lower() if not str2.islower() else str2 return processed_str1 in processed_str2 # 接收用户输入并调用函数 a1 = input("第一个字符串:") a2 = input("第二个字符串:") print(check_substring(a1, a2))
测试验证
示例1
第一个字符串:lol
第二个字符串:Hilol
True
示例2
第一个字符串:IDK
第二个字符串:whatidk
True
问题场景测试
输入第一个字符串lol、第二个字符串HIlol时,函数会将两者转为lol和hilol,判断lol存在于hilol中,返回True,符合预期。
内容的提问来源于stack exchange,提问作者Nemethste
相关产品推荐
相关产品推荐

