鱼C论坛

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

零基础python第一版本,20讲函数:内嵌函数和闭包 | 课后测试题

[复制链接]
发表于 2019-12-16 02:06:14 | 显示全部楼层 |阅读模式

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

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

x
零基础python第一版本,20讲函数:内嵌函数和闭包 | 课后测试题
链接:https://fishc.com.cn/forum.php?m ... peid%26typeid%3D398
这里的最后一题,
str1 = '''ABSaDKSbRIHcRHGcdDIF'''
找出小甲鱼藏在下边这个长字符串中的密码,密码的埋藏点符合以下规律:
1.每位密码为单个小写字母
1.每位密码的左右两边均有且只有三个大写字母
答案代码看了两个多小时无法理解,小甲鱼的设计思路用for循环对字符串中每个字符依次找出条件1(countB赋值),然后对找到的字符验证前后(countA和countB复制)使其符合统计条件2
三个countA B C的变量定义和引用还可以勉强跟上思路,初学者到代码后半段的变量清除条件就很难理解了
---------------------------------------------------------------
初学者我的思路是在不考虑字符串换行和空格情况下找出条件1的元素,再索引前后判断条件2
对比答案代码总感觉好像不够严谨,总感觉哪里差点意思。好像我这样写会更占内存,还想问一下在实际运行中哪个代码运行的效率高一点

str1='ABSaDKSbRIHcRHGcdDIF'
lenth = len(str1)
for i in range(0+3,lenth-3):   #密码左右两边都有3个大写字符那么密码肯定是不在字符前三个和后三个
     if str1[i].islower(): #判断密码字符前三个和后三个是否均为大写
          if str1[i-3].isupper() and str1[i-2].isupper() and\
             str1[i-1].isupper() and str1[i+1].isupper() and\
             str1[i+2].isupper() and str1[i+3].isupper():
               print(str1[i],end='')
     
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2019-12-17 12:42:28 | 显示全部楼层
你那样写的话,也应该是如下代码:
str1='ABSaDKSbRIHcRHGcdDIF'
lenth = len(str1)
for i in range(0+3,lenth-3):   #密码左右两边都有3个大写字符那么密码肯定是不在字符前三个和后三个
    if str1[i].islower(): #判断密码字符前三个和后三个是否均为大写
        if str1[i-3].isupper() and str1[i-2].isupper() and\
             str1[i-1].isupper() and str1[i+1].isupper() and\
             str1[i+2].isupper() and str1[i+3].isupper():
            print(str1[i-3:i+4])
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-1-14 20:33:27 | 显示全部楼层
gywjj 发表于 2019-12-17 12:42
你那样写的话,也应该是如下代码:
str1='ABSaDKSbRIHcRHGcdDIF'
lenth = len(str1)

str[i-3:i+4]     啥意思啊看半天没看懂
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-1-14 22:13:51 | 显示全部楼层
2658845500 发表于 2020-1-14 20:33
str     啥意思啊看半天没看懂

你运行一下就知道了,i是符合条件小写的位置,这个的意思就 是把i这个小写字母和前三个大写字母和后三个大写字母打印出来
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-11 08:01

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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