|
发表于 2022-9-2 13:45:23
|
显示全部楼层
str1 = 'ABSaDKSbRIHcRHGFFcdDIF'
str2 =list(str1) #将字符串变成列表
lenght = len(str1) #计算列表长度
secrt = [] #建立存放密码的空列表
def function1(i): #是否满足小写的前后3位都是大写
if str2[i].islower() and str2[i-1].isupper() and str2[i+1].isupper(): #判断小写字母两边是否均为大写
if str2[i-2].isupper() and str2[i-3].isupper() and str2[i+2].isupper() and str2[i+3].isupper(): #判断小写字母的前后二、三位是否大写
bool = True
for i in range(3,lenght-4): #密码肯定在(3,lenght-4)之间
if i ==3: #第3位较特殊,不用比较前第4位是否在写(因为没有了)
function1(i)
if not str2[i+4].isupper(): #判断第7位是否非大写
secrt.append(str2[i]) # 如果均满足,把它扩展到列表中
elif i == lenght-4: #第lenght-4较特殊,不用比较后第4位是否大写(因为没有了)
function1(i)
if not str2[i-8].isupper(): #判断第i-8位是否非大写
secrt.append(str2[i])
else: #对3<i<lenght-4 ,中间的列表元素进行判断
function1(i)
if not(str2[i-4].isupper()) and not(str2[i+4].isupper()): #判断元素的前后4位是否非大写
secrt.append(str2[i])
print(''.join(secrt))
|
|