Python:检查字符串中指定参数后是否紧跟特定字母
解决方案
你的代码核心问题是:找到目标字符串的起始索引后,只向后偏移了1位,但目标本身有长度,导致检查的位置还在目标字符串内部。正确的做法是偏移目标字符串的长度,跳到目标结束后的位置再检查。
修正后的代码:
def find_x(phrase, target): target_index = phrase.find(target) # 目标不存在时直接返回False if target_index == -1: return False # 取目标结束后的所有子串,检查是否包含'x' return 'x' in phrase[target_index + len(target):]
关键说明
phrase.find(target)返回目标的起始索引,若目标不存在则返回-1,需先做判断避免无效检查target_index + len(target)计算出目标字符串结束后的第一个字符位置,从该位置开始的子串才是目标之后的内容- 直接用
'x' in 子串判断,逻辑更简洁清晰
测试验证
- 输入
find_x('Texas', 'Te'):目标起始索引为0,0 + 2 = 2,子串为'xas',包含'x',返回True - 输入
find_x('Testabc', 'Te'):子串为'stabc',不包含'x',返回False - 输入
find_x('HelloWorld', 'Hi'):目标不存在,返回False
内容的提问来源于stack exchange,提问作者Avery Alvarez
相关产品推荐
相关产品推荐

