鱼C论坛

 找回密码
 立即注册
查看: 1273|回复: 8

关于python第020讲课后动动手

[复制链接]
发表于 2018-4-12 18:55:31 | 显示全部楼层 |阅读模式

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

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

x
0.        请用已学过的知识编写程序,找出小甲鱼藏在下边这个长字符串中的密码,密码的埋藏点符合一下规律:
(1)        每位密码为单个小写字母
(2)        每位密码的左右两边均有且只有三个大写字母


答案:
str1 = '''ABSaDKSbRIHcRHGcdDIF'''

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:
            countC += 1
        else:
            countC = 0
            countA += 1

    if str1[i].islower():
        if countA != 3:
            countA = 0
            countB = 0
            countC = 0
        else:
            if countB:
                countA = 0
                countB = 0
                countC = 0
            else:
                countB = 1
                countC = 0
                target = i

    if countA == 3 and countC == 3:
        if i+1 != length and str1[i+1].isupper():
            countB = 0
            countC = 0
        else:
            print(str1[target], end=' ')
            countA = 3
            countB = 0
            countC = 0

问题:

str1 = '''ABSaDKSbRIHcRHGcdDIF''' 这个字符串中隐藏的密码应该是a b c,如果我没理解错的话,但是小甲鱼给出的代码只打印出了b c,请问是什么问题呢?是答案不对还是我某个环节出问题了?
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-4-12 22:47:12 | 显示全部楼层
这不是abc吗?

2018-04-12_224625.png
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-4-14 03:04:40 | 显示全部楼层

谢谢回答,不过我得出的结果的确是bc..难道是我的版本问题?

另外我自己也想了一下a打不出来的原因,
是不是因为target = i, 最后打印target的时候,
第一个密码a,也就是a在第i个字符串根本没有同时满足counA = 3 和 countC = 3
第一个密码a的时候只满足了countA = 3所以不会打印结果。
不知道这样理解对不对
12121212.png
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-4-14 11:03:58 | 显示全部楼层
sleepyme1123 发表于 2018-4-14 03:04
谢谢回答,不过我得出的结果的确是bc..难道是我的版本问题?

另外我自己也想了一下a打不出来的原因,
...

这么一整段代码,你用.py文件不行?非得要用IDLE?
未必有强迫症

我在想这么一整段代码你是打上去的,还是复制过去的,复制过去还真没有出错????我不相信
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-4-14 11:04:54 | 显示全部楼层
sleepyme1123 发表于 2018-4-14 03:04
谢谢回答,不过我得出的结果的确是bc..难道是我的版本问题?

另外我自己也想了一下a打不出来的原因,
...

还有,你
countA = 0  # 统计前边的大写字母
countB = 0  # 统计小写字母
countC = 0  # 统计后边的大写字母
length = len(str1)

跑哪里去了?????
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-4-14 16:34:16 | 显示全部楼层
ba21 发表于 2018-4-14 11:04
还有,你
countA = 0  # 统计前边的大写字母
countB = 0  # 统计小写字母

你好,这些是屏幕整个截不下来,因为我初学 所以IDLE和.py的分别不是很清楚,况且小甲鱼视频讲课的时候也是用的IDLE所以我只是照做,我的问题是target = i的时候, 第一个a打印不出来我感觉是因为不满足C = 3, 麻烦您能解答一下我的这个疑问吗,我也是在认真考虑我这边打印不出a的原因
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-4-14 19:10:14 | 显示全部楼层
sleepyme1123 发表于 2018-4-14 16:34
你好,这些是屏幕整个截不下来,因为我初学 所以IDLE和.py的分别不是很清楚,况且小甲鱼视频讲课的时候也 ...

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-4-14 20:35:48 From FishC Mobile | 显示全部楼层
楼上的大佬能给我简单讲下这个题的思路吗,点一下就可以了,自己看没怎么看懂。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-4-15 14:06:14 | 显示全部楼层
青青河边草 发表于 2018-4-14 20:35
楼上的大佬能给我简单讲下这个题的思路吗,点一下就可以了,自己看没怎么看懂。

楼上那个就一直在吐槽我 = = 问他具体问题也具体回答不上来
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-3-25 00:00

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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