鱼C论坛

 找回密码
 立即注册
查看: 2532|回复: 3

[已解决]看代码

[复制链接]
发表于 2018-11-7 13:47:54 | 显示全部楼层 |阅读模式

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

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

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)      求大神解释下这段代码
最佳答案
2018-11-7 20:33:57
a2421480 发表于 2018-11-7 16:56
length-1  是什么 意思 。 为什么要把这当成each1的范围呢

length是desStr字符串的长度
range(length-1)是从  0,1,2,3....length-2
最后一次判断的位置是 each1=legnth-2  这样each1+1就是length-1,就能判断完最后的两个字符的情况
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-11-7 14:35:25 | 显示全部楼层
def findStr(desStr, subStr):
    count = 0                #用来记subStr在desStr中出现的次数
    length = len(desStr)
    if subStr not in desStr: #如果desStr中找不到subStr,输出下面的内容               
        print('在目标字符串中未找到字符串!')
    else:  #执行到else,代表在desStr中找到了subStr,那么需要计数
        for each1 in range(length-1): #从desStr的首位置,进行整个字符串的下标遍历      
            if desStr[each1] == subStr[0]:  #因为substr的长度为2,所以desStr中当前字符和下一个字符都与subStr相同的情况下,代表在这个位置subStr出现了一次,计数+1
                if desStr[each1+1] == subStr[1]:
                    count += 1
                    
        print('子字符串在目标字符串中共出现 %d 次' % count)

desStr = input('请输入目标字符串:')
subStr = input('请输入子字符串(两个字符):')
findStr(desStr, subStr)   
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-11-7 16:56:36 | 显示全部楼层
beijudezixuan 发表于 2018-11-7 14:35
def findStr(desStr, subStr):
    count = 0                #用来记subStr在desStr中出现的次数
    le ...

length-1  是什么 意思 。 为什么要把这当成each1的范围呢
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-11-7 20:33:57 | 显示全部楼层    本楼为最佳答案   
a2421480 发表于 2018-11-7 16:56
length-1  是什么 意思 。 为什么要把这当成each1的范围呢

length是desStr字符串的长度
range(length-1)是从  0,1,2,3....length-2
最后一次判断的位置是 each1=legnth-2  这样each1+1就是length-1,就能判断完最后的两个字符的情况
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-22 22:23

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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