鱼C论坛

 找回密码
 立即注册
查看: 2126|回复: 1

已经理解小甲鱼在20课 动动手 第1题的代码那个 countA,countB,countC

[复制链接]
发表于 2017-8-16 13:00:14 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 Ryo 于 2017-8-16 13:05 编辑

问题是 找字符串的密码。密码要求如下:
1.密码为1个小写字母
2.密码左右2边有且只有3个大写字母

题目要求找到密码,然后str1的内容是另外的文本里面提供的,很长的一段,下文中的只是举个例子。

请看下面我标红处, 这里面 就是定义了 3个变量,然后直接就 if countB == 1 了,这个countB 变量好像没有变成1的机会啊

定义的是0 后面也没有改变它值的语句,怎么就会变成1了呢?

原来这个地方 是提前做好铺垫的,一开始如果是大写英文字母 肯定是执行  else 里的语句,这样就吧大写字母数量计数了

tr1 = """ABCaABCbABC1"""


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 == 1:
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-8-16 15:08:01 | 显示全部楼层
参考:
str1 = 'ASDdDDDafasdfAASbASDsASDaA'
l = len(str1)
for x in range(0,l):
        if str1[x].islower():
                if x<3 or x>l-4: #边缘判断
                        continue
                else:
                        if str1[x-3:x].isupper() and str1[x+1:x+4].isupper():
                                if x == 3: #头
                                        if not str1[x+4].isupper():        
                                                print(str1[x],end='')
                                elif x == l-4:#尾
                                        if not str1[x-4].isupper():
                                                print(str1[x],end='')

                                elif not str1[x-4].isupper() and not str1[x+4].isupper():#中间
                                        print(str1[x],end='')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-2-24 14:07

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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