- def findStr(desStr, subStr):
- count = 0
- length = len(desStr)
- if subStr not in desStr:
- print('在目标字符串中未找到字符串!')
- else:
- for each1 in range(length-1): #遍历字符串desStr的索引值each1,一直到倒数第二位(length-1)
- if desStr[each1] == subStr[0]: #判断desStr中第each1个字符与subStr的0个字符相同
- if desStr[each1+1] == subStr[1]: #如果上面的判断成立,再判断desStr中第each1+1个字符与subStr的1个字符相同
- count += 1 #统计次数+1次
-
- print('子字符串在目标字符串中共出现 %d 次' % count)
- desStr = input('请输入目标字符串:')
- subStr = input('请输入子字符串(两个字符):')
- findStr(desStr, subStr)
复制代码
else中的整体逻辑是
遍历在字符串desStr的索引值-1
判断字符串desStr索引位置对应的元素是否与subStr的第0个元素相同
再判断desStr索引位置+1对应的元素是否与subStr的第1个元素相同
如果以上两个条件都成立,证明目标字符串出现过,统计次数count就+1次
一直遍历到最后,目标字符串出现了几次,统计次数count就加几次
为什么要遍历在字符串desStr的索引值-1而非索引值本身呢
是因为如果desStr最后一个字符等于subStr[0]时,避免desStr的索引超出索引范围