鱼C论坛

 找回密码
 立即注册
查看: 1296|回复: 10

FishC 第二十一课课后作业

[复制链接]
发表于 2018-10-7 18:07:56 | 显示全部楼层 |阅读模式

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

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

x
题目:请在字符串中找出密码,密码符合以下规律:
        1.每位密码为单个小写字母;
        2.每位密码字母的左右两边均有且只有3个大写字母
问题:好不容易读懂了大部分代码,但最终运行时没显示结果,究竟是为什么呢?请赐教,感谢!

str1 = '''AAAaAAAbAAAcAAAdAAAAeAA'''
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:       #countB为1时统计countC的数量
            countC += 1
            countA = 0
        else:
            countA += 1      #否则重新统计countA的数量
        continue
    if str1[i].islower() and countA == 3:    #字符为小写,且countA为3时执行
        countB = 1
        countA = 0
        target = i
        continue
    if str1[i].islower() and countC == 3:   #字符为小写,且countC为3时执行
        print(str1[target],end='')
    countA = 0  #不符合上述条件时countA,B,C置0
    countB = 0
    countC = 0

附上了注释,但打印出的结果为:ac  。而不是abc            
希望帮忙看看!谢谢大家
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-10-7 18:38:28 | 显示全部楼层
不明白为什么要转来转去呢?
  1. for i in range(3,len(str1)-3):
  2.     if str1[i].islower() and str1[i-3:i].isupper() and str1[i+1:i+4].isupper():
  3.         print(str1[i])
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-10-7 18:44:12 | 显示全部楼层
claws0n 发表于 2018-10-7 18:38
不明白为什么要转来转去呢?

因为这就是智商200的小甲鱼想出来的代码啊,当时看的我都懵逼了,后面想想好像他的也有点道理
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-10-7 18:57:12 | 显示全部楼层
RIXO 发表于 2018-10-7 18:44
因为这就是智商200的小甲鱼想出来的代码啊,当时看的我都懵逼了,后面想想好像他的也有点道理

没有钱做课后作业,后来就没有做了,所以没有看过
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-10-7 19:00:41 | 显示全部楼层
claws0n 发表于 2018-10-7 18:57
没有钱做课后作业,后来就没有做了,所以没有看过

我当初也没有钱看课后作业,脑子一抽就买了个会员,买了之后发现鱼币没用了。。。。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-10-7 19:04:33 | 显示全部楼层
代码没有错,但缺点就是这样。因为必须读取 AAAaAAA 才能判断 a 是合理的目标,下一个就读到 b 了,所以 b 失去了 AAAb 的判断
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-10-7 19:11:24 | 显示全部楼层
RIXO 发表于 2018-10-7 19:00
我当初也没有钱看课后作业,脑子一抽就买了个会员,买了之后发现鱼币没用了。。。。

这个账户很新,另外开的?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-10-7 19:26:54 | 显示全部楼层
claws0n 发表于 2018-10-7 19:11
这个账户很新,另外开的?

我就是一个月学的啊。。。。。。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-10-7 19:31:52 | 显示全部楼层
RIXO 发表于 2018-10-7 19:26
我就是一个月学的啊。。。。。。

学得好快,求大大带飞
python 只看前面而已
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-10-7 21:59:52 | 显示全部楼层
claws0n 发表于 2018-10-7 18:38
不明白为什么要转来转去呢?

老哥我这辈子怕是当不了甲鱼口中的天才程序员了,这个bug太大了吧
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-10-7 22:08:26 | 显示全部楼层
lawiilet 发表于 2018-10-7 21:59
老哥我这辈子怕是当不了甲鱼口中的天才程序员了,这个bug太大了吧

额……不是天才不天才的问题。教学的代码有时候会写一些另类的方法,让我们多思考。如果是最求效率,还可以把我给的再优化。而且老师的题目应该是很长的字符串,要找的解设计得疏散,所以不算 bug,而是不适用于一般情况。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-1-2 16:30

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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