|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
请用已学过的知识编写程序,找出藏在下边这个长字符串中的密码,密码的埋藏点符合以下规律:
a) 每位密码为单个小写字母
b) 每位密码的左右两边均有且只有三个大写字母
string='''KpjvGnFipjswgjetRtniMagakbCXAjpzWTtMlgZGCJwGyglpcLebrKWhgwJfWV
qGifWNEpCtjuejHoyVCdIxzMYGnfoslgTNAJdtVBWDVoGLzHSAVBTnhNIvAOExQNiJOIPPiHkdaRbfaP
ixDDoCDOOeAqvQJFxLWDICfGmuf'''
length=len(string)
for i in (4,length-5):
if string[i-4].islower() and string[i+4].islower() and string[i-3:i].isupper() and string[i+1:i+4].isupper() and string[i].islower():
print(string[i,sep='',end='')
哪有问题,程序没报错,就是运行之后完全没结果
小甲鱼的题意是:
本身是小写字母,
从上一个小写字母到本身有且仅有3个大写字母 和 从本身字母到下一个小写字母之间也有且只有3个大写字母
如果你想用切片的方法可以参考下下面代码:
- str1 = """小甲鱼准备的txt文件内容"""
- a = [] # 用于统计小写字母的索引值
- b = 0 # 初始化b的数值
- for i in str1: # 遍历出所有小写字母的下标,添加入 a 列表,用于为下面索引做准备条件
- if i.islower():
- a.append(str1.index(i,b,len(str1)))
- b += 1
- c = 1 # 初始化代表第第二个 小写字母的下标
- b = 0 # 初始化b 用于当作开始或上一个小写字母的下标
- count_left = 0 # 用于计算小写字母左边的大写字母数量
- count_right = 0 # 用于计算小写字母右边边的大写字母数量
- while c+1 < len(a): # 只需要c的索引大于 a 的列表长度即可退出循环
- d = str1[b:a[c]] # 记录小写字母左边的所有字母
- f = str1[(a[c]+1):a[c+1]] # 记录小写字母右边的所有字母
- for i in d: # 遍历左边的大写字母出现的次数
- if i.isupper():
- count_left += 1
- for i in f: # 遍历右边的大写字母出现的次数
- if i.isupper():
- count_right += 1
- if count_left == count_right == 3: # 如果等于 3 即是符合题意 打印字母
- print(str1[a[c]],end='')
- count_right,count_left = 0,0 # 重新初始化记数参数,为下一次循环计数做准备
- b = a[c] # b为赋值为下一个小写字母的索引值
- c += 1 # c为b的下一个小写字母的索引
复制代码
|
|