鱼C论坛

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

[已解决]关于20讲第二个动动手

[复制链接]
发表于 2019-7-26 18:04:14 | 显示全部楼层 |阅读模式
5鱼币
temp = """复制的字符串"""
list2 = list(temp)
list1 = []
alpha = 'zxcvbnmasdfghjklqwertyuiop'
ALPHA = 'ZXCVBNMASDFGHJKLQWERTYUIOP'
print(list2)
for each in list2:
    if each in alpha:
        may_key = each
        if (list2[list2.index(may_key)+1] in ALPHA) and (list2[list2.index(may_key) - 1]in ALPHA) and (list2[list2.index(may_key)+3]in ALPHA)\
                and (list2[list2.index(may_key)+2]in ALPHA )and (list2[list2.index(may_key)-2]in ALPHA )and (list2[list2.index(may_key)-3]in ALPHA):
            key = may_key
            list1.append(key)
print(list1)
这是我的答案,不知道出错在哪里,希望有大神能给我指点指点,自己写出来的但是又不知道错在哪里的感觉好烦
最佳答案
2019-7-26 18:04:15
本帖最后由 jermey1994 于 2019-7-26 23:06 编辑
  1. """
  2. a) 每位密码为单个小写字母
  3. b) 每位密码的左右两边均有且只有三个大写字母
  4. """

  5. str1 = '''ABSaDKSbRIHcRHGcdDIF'''
  6. key = str()
  7. lr_dict = dict()
  8. upper = False
  9. index = 0

  10. for s in str1 :             # 遍历str1每个字符
  11.     if s.islower() :        #判断这个字符是否为字母的小写,是就往下对比
  12.         lr_dict[str1[index-3:index]] = str1[index+1:index+4]         
  13.         for l,r in lr_dict.items() :
  14.             if l.isupper() and r.isupper() :
  15.                 upper = True
  16.             else :
  17.                 upper = False
  18.         if upper :
  19.             key += s
  20.     lr_dict.clear()
  21.     index += 1

  22. print('key : %s' % key)
  23. -->> key : abc
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2019-7-26 18:04:15 | 显示全部楼层    本楼为最佳答案   
本帖最后由 jermey1994 于 2019-7-26 23:06 编辑
  1. """
  2. a) 每位密码为单个小写字母
  3. b) 每位密码的左右两边均有且只有三个大写字母
  4. """

  5. str1 = '''ABSaDKSbRIHcRHGcdDIF'''
  6. key = str()
  7. lr_dict = dict()
  8. upper = False
  9. index = 0

  10. for s in str1 :             # 遍历str1每个字符
  11.     if s.islower() :        #判断这个字符是否为字母的小写,是就往下对比
  12.         lr_dict[str1[index-3:index]] = str1[index+1:index+4]         
  13.         for l,r in lr_dict.items() :
  14.             if l.isupper() and r.isupper() :
  15.                 upper = True
  16.             else :
  17.                 upper = False
  18.         if upper :
  19.             key += s
  20.     lr_dict.clear()
  21.     index += 1

  22. print('key : %s' % key)
  23. -->> key : abc
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2019-7-26 21:59:49 | 显示全部楼层
- -不明白你想问什么,能明确问题不,那代码看得眼花,把题目列出来
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2019-7-26 22:37:35 | 显示全部楼层
jermey1994 发表于 2019-7-26 21:59
- -不明白你想问什么,能明确问题不,那代码看得眼花,把题目列出来

1. 请用已学过的知识编写程序,找出小甲鱼藏在下边这个长字符串中的密码,密码的埋藏点符合以下规律:

    a) 每位密码为单个小写字母
    b) 每位密码的左右两边均有且只有三个大写字母
题目是这个,麻烦帮我看看为什么我的输出结果都 是1
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2019-7-26 23:00:31 | 显示全部楼层
本帖最后由 jermey1994 于 2019-7-26 23:03 编辑
鲈鱼得水 发表于 2019-7-26 22:37
1. 请用已学过的知识编写程序,找出小甲鱼藏在下边这个长字符串中的密码,密码的埋藏点符合以下规律:

...


区分大小写不用那么麻烦的,而且为什么要放到list里面? 字符串可以直接for遍历每个字符
看看这个字符串的方法 : https://fishc.com.cn/thread-38992-1-1.html
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2019-7-26 23:16:39 | 显示全部楼层
jermey1994 发表于 2019-7-26 23:00
区分大小写不用那么麻烦的,而且为什么要放到list里面? 字符串可以直接for遍历每个字符
看看这个字符串 ...

好的好的,我懂了,谢谢,有些地方还需要加深理解
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-8-2 14:09

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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