鱼C论坛

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

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

[复制链接]
发表于 2021-6-30 16:11:36 | 显示全部楼层 |阅读模式
3鱼币
# 请用已学过的知识编写程序,找出小甲鱼藏在下边这个长字符串中的密码,密码的埋藏点符合以下规律:
#    a) 每位密码为单个小写字母
#    b) 每位密码的左右两边均有且只有三个大写字母
代码目的如上,我写的这个跑不出来,不知道哪里有问题
  1. str2 = r'''ABSaDKSbRIHcRHGcdDIF'''
  2. countA = 0
  3. countB = 0
  4. countC = 0
  5. length = len(str2)
  6. for i in range(length):
  7.     if str2[i] == '\n':
  8.        continue
  9.     if str2[i].isupper() == 1:
  10.         if countB:
  11.             countC += 1
  12.         else:
  13.             countA += 1
  14.             countC = 0
  15.     if str2[i].islower() == 1:
  16.         if countA == 3 and countB == 0:
  17.             countB = 1
  18.             target = i
  19.         else:
  20.             countA = 0
  21.             countB = 0
  22.             countC = 0
  23.     if countA == 3 and countC == 3:
  24.         if i+1 != length and str2[i].isupper()== 1:
  25.             countA = 0
  26.             countB = 0
  27.             countC = 0
  28.         else:
  29.             print(str2[target],end='')
  30.             countA = 3
  31.             countB = 0
  32.             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: 这一段完全可以不要
小甲鱼最新课程 -> https://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:
这一段完全可以不要
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2021-6-30 16:53:18 | 显示全部楼层
字符串的isupper()和islower()方法,返回的是True或False
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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



截屏2021-06-30 17.22.30.png
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2021-7-1 17:55:03 | 显示全部楼层
本帖最后由 非凡 于 2021-7-1 21:02 编辑
  1.         if i+1 != length and str2[i+1].isupper()== 1:
复制代码

第24行代码你改用下这个试试
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2021-7-1 23:38:18 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-22 02:55

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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