鱼C论坛

 找回密码
 立即注册
查看: 2664|回复: 5

[已解决]20讲动动手01,从字符串里找密码

[复制链接]
发表于 2021-6-30 16:11:36 | 显示全部楼层 |阅读模式
3鱼币
# 请用已学过的知识编写程序,找出小甲鱼藏在下边这个长字符串中的密码,密码的埋藏点符合以下规律:
#    a) 每位密码为单个小写字母
#    b) 每位密码的左右两边均有且只有三个大写字母
代码目的如上,我写的这个跑不出来,不知道哪里有问题
str2 = r'''ABSaDKSbRIHcRHGcdDIF'''
countA = 0
countB = 0
countC = 0
length = len(str2)
for i in range(length):
    if str2[i] == '\n':
       continue
    if str2[i].isupper() == 1:
        if countB:
            countC += 1
        else:
            countA += 1
            countC = 0
    if str2[i].islower() == 1:
        if countA == 3 and countB == 0:
            countB = 1
            target = i
        else:
            countA = 0
            countB = 0
            countC = 0
    if countA == 3 and countC == 3:
        if i+1 != length and str2[i].isupper()== 1:
            countA = 0
            countB = 0
            countC = 0
        else:
            print(str2[target],end='')
            countA = 3
            countB = 0
            countC = 0
最佳答案
2021-6-30 16:11:37
本帖最后由 灰晨 于 2021-6-30 17:13 编辑

先回一下楼上,True或False等于1和0,所以这不是错误
错在
if countA == 3 and countC == 3:
        if i+1 != length and str2[i].isupper()== 1:
把i+1 != lengt改为i+1 == lengt
就OK了
感觉
if i+1 != length and str2[i].isupper()== 1:
            countA = 0
            countB = 0
            countC = 0
        else:
这一段完全可以不要

最佳答案

查看完整内容

先回一下楼上,True或False等于1和0,所以这不是错误 错在 if countA == 3 and countC == 3: if i+1 != length and str2.isupper()== 1: 把i+1 != lengt改为i+1 == lengt 就OK了 感觉 if i+1 != length and str2.isupper()== 1: countA = 0 countB = 0 countC = 0 else: 这一段完全可以不要
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-6-30 16:11:37 | 显示全部楼层    本楼为最佳答案   
本帖最后由 灰晨 于 2021-6-30 17:13 编辑

先回一下楼上,True或False等于1和0,所以这不是错误
错在
if countA == 3 and countC == 3:
        if i+1 != length and str2[i].isupper()== 1:
把i+1 != lengt改为i+1 == lengt
就OK了
感觉
if i+1 != length and str2[i].isupper()== 1:
            countA = 0
            countB = 0
            countC = 0
        else:
这一段完全可以不要
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-6-30 16:53:18 | 显示全部楼层
字符串的isupper()和islower()方法,返回的是True或False
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-6-30 17:22:48 | 显示全部楼层
笨鸟学飞 发表于 2021-6-30 16:53
字符串的isupper()和islower()方法,返回的是True或False



截屏2021-06-30 17.22.30.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-7-1 17:55:03 | 显示全部楼层
本帖最后由 非凡 于 2021-7-1 21:02 编辑
        if i+1 != length and str2[i+1].isupper()== 1:
第24行代码你改用下这个试试
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-7-1 23:38:18 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-14 19:27

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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