发表帖子后显示没有找到帖子,20讲函数与闭包课后作业
本帖最后由 gamelife521 于 2019-12-16 02:21 编辑我有个作业问题提交帖子4次每次显示没有找到帖子是什么问题,内容太长的缘故么
那我就写在回复里面吧 零基础python第一版本,20讲函数:内嵌函数和闭包 | 课后测试题
链接:https://fishc.com.cn/forum.php?mod=viewthread&tid=42685&extra=page%3D1%26filter%3Dtypeid%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.islower(): #判断密码字符前三个和后三个是否均为大写
if str1.isupper() and str1.isupper() and\
str1.isupper() and str1.isupper() and\
str1.isupper() and str1.isupper():
print(str1,end='')
可能是内容太长而导致被防火墙拦截。
页:
[1]