如何编写Python程序输出指定字符开头的长度≥3的子串
错误代码原因排查
现有代码仅输出1个符合要求子串的问题根源如下:
- 输出第一个匹配子串后直接执行
break终止循环,没有继续查找后续其他匹配位置 - 循环内没有更新查找的起始位置,始终只匹配第一次找到的目标字符位置
- 第一行存在重复赋值的笔误:
word = word = input(...),多余的赋值语句可删除
正确实现方案
word = input("Please type in a word: ") character = input("Please type in a character: ") # 首次查找目标字符的位置 curr_index = word.find(character) while curr_index != -1: # 校验当前位置后存在足够长度的字符 if len(word) >= curr_index + 3: print(word[curr_index:curr_index+3]) # 从当前匹配位置的下一位开始,查找下一个目标字符 curr_index = word.find(character, curr_index + 1)
运行上述代码,输入mammoth和字符m时,会依次输出mam、mmo、mot,完全符合预期效果。
内容的提问来源于stack exchange,提问作者user17135153
相关产品推荐
相关产品推荐

