本帖最后由 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)
|