鱼C论坛

 找回密码
 立即注册
查看: 567|回复: 2

[已解决]第18课 最后一题

[复制链接]
发表于 2020-4-4 00:14:58 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
def findStr(desStr, subStr):
    count = 0
    length = len(desStr)
    if subStr not in desStr:
        print('在目标字符串中未找到字符串!')
    else:
        for each1 in range(length-1):      
            if desStr[each1] == subStr[0]:
                if desStr[each1+1] == subStr[1]:
                    count += 1
                    
        print('子字符串在目标字符串中共出现 %d 次' % count)

desStr = input('请输入目标字符串:')
subStr = input('请输入子字符串(两个字符):')
findStr(desStr, subStr)
看不懂 else 后面写了什么  求求大佬们解释解释
最佳答案
2020-4-4 01:08:32
就是遍历desStr,统计有多少个subStr

假如desStr='it is you sister'   subStr='is'
第一次执行for循环,each1=0,desStr[each1]是'i',符合第一个if条件,然后判断第二个if条件,desStr[each1+1]是‘t’,不符合条件,执行下一次循环
第二次执行for循环,each1=1,desStr[each1]是't',不符合第一个if条件,执行下一次循环
第三次执行for循环,each1=2,desStr[each1]是' '(空格),不符合第一个if条件,执行下一次循环
第四次执行for循环,each1=3,desStr[each1]是'i',符合第一个if条件,然后判断第二个if条件,desStr[each1+1]是‘s’,符合条件,计数count+1,执行下一次循环
……
遍历结束后count就是subStr出现的次数
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-4-4 01:08:32 | 显示全部楼层    本楼为最佳答案   
就是遍历desStr,统计有多少个subStr

假如desStr='it is you sister'   subStr='is'
第一次执行for循环,each1=0,desStr[each1]是'i',符合第一个if条件,然后判断第二个if条件,desStr[each1+1]是‘t’,不符合条件,执行下一次循环
第二次执行for循环,each1=1,desStr[each1]是't',不符合第一个if条件,执行下一次循环
第三次执行for循环,each1=2,desStr[each1]是' '(空格),不符合第一个if条件,执行下一次循环
第四次执行for循环,each1=3,desStr[each1]是'i',符合第一个if条件,然后判断第二个if条件,desStr[each1+1]是‘s’,符合条件,计数count+1,执行下一次循环
……
遍历结束后count就是subStr出现的次数
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-4 10:32:49 | 显示全部楼层
for each1 in range(length-1):     #子字符串为两个字符,因此循环length - 1次
if desStr[each1] == subStr[0]:  #目标字符串中出现子字符串的第一个字符
if desStr[each1+1] == subStr[1]:#目标字符串中出现子字符串的第一个字符 后的下一个字符与子字符串的第二个字符相同—>找到子字符串,count+=1,之后不断循环前进
count += 1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-25 23:24

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表