鱼C论坛

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

python 第18讲

[复制链接]
发表于 2017-1-14 20:57:22 | 显示全部楼层 |阅读模式
5鱼币
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)

程序第7行,为什么是length - 1 ?

假设字符串为Finshc,length就等于5,range(5)为0, 1, 2, 3, 4   每个元素都有了标号,为什么要lenth-1?  那不就少了一个元素的标号了?
YP$ASZ]U$JX7WG3QBQQ3WFC.png

最佳答案

查看完整内容

因为题目里说了是长度为2的字符,所以最后一个字符就不用判断了,因为他后面不跟字符了,无论如何也不会匹配呀,看下图
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2017-1-14 20:57:23 | 显示全部楼层
因为题目里说了是长度为2的字符,所以最后一个字符就不用判断了,因为他后面不跟字符了,无论如何也不会匹配呀,看下图
搜狗截图20170115091708.jpg
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2017-1-15 10:30:41 | 显示全部楼层
这个图太形象了,谢谢你i
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2017-1-19 13:09:35 | 显示全部楼层
当字符串的长度是len的时候,最大下标就是len-1,而range(len-1)中最大值是len-2,对应倒数第二个字符,因为检测的字符串长度为2,所以正好对应上,如果检测字符串长度为3的话,就得写range(len-2)了
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-2-25 00:54

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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