鱼C论坛

 找回密码
 立即注册
查看: 2780|回复: 2

发表帖子后显示没有找到帖子,20讲函数与闭包课后作业

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

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

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

x
本帖最后由 gamelife521 于 2019-12-16 02:21 编辑

我有个作业问题提交帖子4次每次显示没有找到帖子是什么问题,内容太长的缘故么
那我就写在回复里面吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2019-12-16 02:20:11 | 显示全部楼层
零基础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
对比答案代码总感觉好像不够严谨,总感觉哪里差点意思。好像我这样写会更占内存会更频繁调用cpu,还想问一下在实际运行中哪个代码运行的效率高一点

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='')
     
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-12-20 21:11:00 | 显示全部楼层
可能是内容太长而导致被防火墙拦截。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-12 15:47

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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