鱼C论坛

 找回密码
 立即注册
查看: 1811|回复: 5

[已解决]Python第020讲的密码题i+1!=length这个语句有什么用呀!?

[复制链接]
发表于 2021-7-30 10:47:14 | 显示全部楼层 |阅读模式

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

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

x
countA=0
countB=0
countC=0
length=len(str1)
for i in range(length):
    if str1[i] == '/n':
        continue
    #判断大写字母
    if str1[i].isupper():
        if countB:
            countC+=1
        else:
            countC=0
            countA+=1
    #判断小写字母
    if str1[i].islower():
        if countA!=3:
            countA=0
            countB=0
            countC=0
        else:
            if countB:
                countA=0
                countB=0
                countC=0
            else:
                countB=1
                countC=0
                tangle=i
    #打印
    if countA==3 and countC==3:
        if i+1!=length and str1[i+1].isupper():#i+1!=length不理解
            countB=0
            countC=0
        else:
            print(str1[tangle],end='')
            countB=0
            countC=0
最佳答案
2021-9-18 12:47:57

先判断是否即将超出索引,然后判断下一个字符是否为大写字符
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-7-30 10:58:44 | 显示全部楼层
避免后面str1[i+1]超出列表索引而报错
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-7-30 10:59:31 | 显示全部楼层
这里是将字符串遍历,因为字符串索引是从0开始的,所以最后一个字符的索引比字符串长度少1,所以如果i+1等于字符串的长度,说明这个字符串遍历完了,就可以开始打印了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2021-7-30 11:00:12 | 显示全部楼层
这个判断短句就是来判断是不是把字符便利完了,因为这个程序是将字符串挨个处理的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-9-18 12:47:57 | 显示全部楼层    本楼为最佳答案   

先判断是否即将超出索引,然后判断下一个字符是否为大写字符
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-9-18 13:06:15 | 显示全部楼层
这做法是为了避免越界报错。其实有多种做法:
其一,就如你的代码一样,预设边界判断条件。
其二,可以在一开始 第 6 行 for i in range(3, length-3) 预先设边界也行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-13 07:30

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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