|
|
发表于 2016-10-31 16:25:46
|
显示全部楼层
你还是没理解,我举个例子好了。只修改了没加括号的地方,举例过程在注释里。
- string2 = '''ahbdguj......'''
- list2 = []
- count = 3 #这里用你的初始值3
- for each in string2: #第一个取出的each是"a"
- if each == '\n': #这里不是换行,跳过
- continue
- if each.islower(): #这里是小写,执行
- stra = string2[count-3:count] #这里是关键,当你的count为3里,这里的stra是[0-3]
- strb = string2[count+1:count+4] #这里的strb是[4-7],如果是这样的话,实际上就是在判断第4个字符的两边位置。而你想在这个位置判断的是第1个字符。这也就是我上面说的不匹配,所以出现的结果会很奇怪。
- if stra.isupper() and strb.isupper():
- if string2[count-4].islower() and string2[count+4].islower():
- list2.append(each)
- count += 1
- print(list2)
复制代码
这个count在你的这个程序思路中,是作为一个位置的标志。那么count的作为初始值应该与过程同步,所以要赋值为0。
|
|