| 
 | 
 
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册  
 
x
 
str1 = '''  拷贝的字符串 ''' 
list1 = [] 
length = len(str1) 
for each in str1: 
    if str1.index(each) >= 2: 
        if each not in list1: 
 
            if each in 'zxcvbnmasdfghjklqwertyuiop': 
                if str1[(str1.index(each))+1] and str1[(str1.index(each))+2] and str1[(str1.index(each))+3] and str1[(str1.index(each))-1] and str1[(str1.index(each))-2] and str1[(str1.index(each))-3] in 'ZXCVBNMASDFGHJKLQWERTYUIOP': 
                    print(each, end=' ') 
            list1.append(each) 
 
 
为什么我这样写不能得出正确的答案,求解,大佬们 
 
 
l q s w t p g z r u v o i d 
这是我运行的结果,我觉得思路没有问题啊,先判断 小写字符串,再判断小写字符串的左右三个字符是否是大写字母
 
- for i in range(len(str1)-6):
 
 -     # 这里计算长度之所以会 -6 是因为我们后边的计算会 +7 ,不提前 -6 后边运算会越界报错
 
 -     
 
 -     if "\n" in str1[i:i+7]:
 
 -         continue
 
 -     # 我们要取得是 str[i+3] ,所以如果 str1[i:i+7] 中有换行符,我们选择跳过本轮
 
 -     
 
 -     if i == 0:
 
 -         if (str1[i:i+3].isupper() and
 
 -             str1[i+3].islower() and
 
 -             str1[i+4:i+7].isupper() and
 
 -             (not str1[i+7].isupper())):
 
 -             print(str1[i+3],end = " ")
 
 -     # 为什么要把 i == 0 单独出来,因为在 i == 0 时并没有 str1[i-1]
 
 -     
 
 -     else:
 
 -         if ((not str1[i-1].isupper()) and
 
 -             str1[i:i+3].isupper() and
 
 -             str1[i+3].islower() and
 
 -             str1[i+4:i+7].isupper() and
 
 -             (not str1[i+7].isupper())):
 
 -             print(str1[i+3],end = " ")
 
 -     # 因为我们要保证 每位密码的左右两边均  有且只有 三个大写字母
 
 -     # 所以我们在密码前的 左右两侧的 第四位 均要保证他们不是大写字母
 
 -     # 所以前后两头都加了两个 not 
 
 -     # .isupper() 判断大写,是大写则为 True 否则为 False
 
 -     # .islower() 判断小写,是小写则为 True 否则为 False
 
  
  复制代码 
 
 
 |   
 
 
 
 |