|

楼主 |
发表于 2020-1-16 16:18:20
|
显示全部楼层
本帖最后由 WilsonWolf2333 于 2020-1-16 16:19 编辑
标准答案 和 我自己的思考过程(注释部分)如下。注释里?????是当前存在的疑问。
下方的函数文档是我自己加的,哈哈哈。
- def findStr(desStr, subStr):
- '逐位核对原始字符串来从严格意义上确认子字符串出现的次数,比count方法更严格2333'
- count = 0
- length = len(desStr)
- if subStr not in desStr:
- print('在目标字符串中未找到字符串!')
- else:
- for each1 in range(length-1): #例如有5个字符的字符串'aaaaa',那么检查第[0],[1],[2],[3]这四个字符
- if desStr[each1] == subStr[0]: #对于单层循环,例如当each1 = 0时,比较原字符串第[0]位和子字符串第[0]位
- if desStr[each1+1] == subStr[1]: #相当于and的关系,这层循环中,比较原字符串下一位和子字符串第[1]位
- count += 1 #同时符合上述两个if条件的话,计数器加1
-
- print('子字符串在目标字符串中共出现 %d 次' % count) #复习到%d的作用是格式化整数,我觉得这样写的目的是比('出现',count,'次')代码更简洁
- desStr = input('请输入目标字符串:') #????? 我觉得这行代码没有缩进,就不属于函数体了吧,为啥调用函数还是会打印这行代码
- subStr = input('请输入子字符串(两个字符):')
- findStr(desStr, subStr)
复制代码 |
|