|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
请用已学过的知识编写程序,找出小甲鱼藏在下边这个长字符串中的密码,密码的埋藏点符合以下规律:
a) 每位密码为单个小写字母
b) 每位密码的左右两边均有且只有三个大写字母
能不能帮忙看看我写的代码有什么问题啊?可以在这个基础上改进嘛?
- str1='ABCaABCaabcABCaABCa'
- a=0
- b=0
- for i in range(0,len(str1)-7):
- for j in range(i,1+3):
- if str1[j].isupper():
- a+=1
- if a!=3:
- a=0
- if a==3 and str1[i+3].islower():
- for k in range(i+4,i+7):
- if str1[k].isupper():
- b+=1
- if b!=3:
- b=0
- if a==3 and b==3 and str1[i+7].islower():
- print(str1[i+3])
- a=0
- b=0
复制代码
本帖最后由 jackz007 于 2019-12-21 00:08 编辑
因为原题中的 str1 是一段被三引号括起来的跨多行的字符串,所以,需要去掉其中的换行符 '\n' 然后重新拼接;字符串首尾各添加一个 'a',就是解决字符串首尾缺少第 4 个字符的问题,使密码字符的判断条件自始至终一致起来。不然的话,在字符串内部是左、右各 4 个字符的判断条件,在字符串首尾,就得另写代码单独判断处理,使代码逻辑复杂化。
|
|