鱼C论坛

 找回密码
 立即注册
查看: 2612|回复: 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:
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

  15.                                 elif not str1[x-4].isupper() and not str1[x+4].isupper():#中间
  16.                                         print(str1[x],end='')
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-3-20 17:18

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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