杨东明 发表于 2021-6-1 10:18:27

请问为啥识别小写字母的时候会3和9之间有的识别不出。。还有最后为啥结果是个空列...

def temp(str1):
    list1 = []
    zimu ='qwertyuiopasdfghjklzxcvbnm'
    zimu1 ='QWERTYUIOPASDFGHJKLZXCVBNM'
    a = 0
    b = 0
    time1 = 0
    for each in str1:
      if each in zimu:
            b = str1.index(each,a)
            a = b+1
            print (each,end=',')
            print (b)
            for each1 in str1[(b-3):(b+4)]:
                if each1 in zimu1:
                  time1 +=1
            if time1 == 3:
                list1.append(each)
    print (list1)

杨东明 发表于 2021-6-1 10:43:52

1

wp231957 发表于 2021-6-1 10:44:19

这代码是准备干啥的

杨东明 发表于 2021-6-1 10:57:50

wp231957 发表于 2021-6-1 10:44
这代码是准备干啥的

用来在字符串里面找密码的题。。a) 每位密码为单个小写字母Powered by bbs.fishc.com
    b) 每位密码的左右两边均有且只有三个大写字母j~

淡淡凉 发表于 2021-6-1 17:26:50

本帖最后由 淡淡凉 于 2021-6-2 11:53 编辑

for each1 in str1[(b-3):(b+4)]:
                if each1 in zimu1:
                  time1 +=1
            if time1 == 3:
                list1.append(each)
你的条件为只有time1==3才往列表列表里添加元素,因为不符合条件所以就没有添加到列表,列表为空,所以打印的列表为空;你可以试试把条件改为time<=3,符合条件成功添加后还要重置time1=0
def temp(str1):
    list1 = []
    zimu ='qwertyuiopasdfghjklzxcvbnm'
    zimu1 ='QWERTYUIOPASDFGHJKLZXCVBNM'
    a = 0
    b = 0
   
    for each in str1:
      time1 = 0
      if each in zimu:
            b = str1.index(each,a)
            a = b+1
            print (each,end=',')
            print (b,end='\t')
            #print(str1[(b-3 if b-3>0 else 0):(len(str1) if b+4>len(str1) else b+4)])
            list2 = []
            str2 = str1[(b-3 if b-3>0 else 0):(len(str1) if b+4>len(str1) else b+4)]
            for each1 in str2:
                if each1 in zimu1:
                  list2.append(each1)
                  time1 +=1
            print(str2+'共出现大写字母的次数:',time1,list2)
            if time1 <= 3:
                list1.append(each)
               
    print (list1)

temp('PoWErEDbybbs.FishC.com')
页: [1]
查看完整版本: 请问为啥识别小写字母的时候会3和9之间有的识别不出。。还有最后为啥结果是个空列...