零基础学Python课后题
第二十课的最后一题;找出隐藏的密码1.每位密码为单个小写字母
2.密码前后有且只有三位大写字母
为什么我这个程序看起来和答案一模一样,但输入这个字符串的时候,本来输出应该是dg,结果却什么都不显示?
str1='''SSSdFLL FKFgRRR'''
length = len(str1)
count1=0
count2=0
count3=0
target=0
for i in range(length):
if str1 == ' ':
continue
if str1.isupper():
if count2 == 1:
count3 +=1
count1=0
else:
count1 +=1
continue
if count1 == 3 and str1.islower():
target = i
count1 = 0
count2 = 1
continue
ifstr1.islower() and count3 == 3:
print('密码为%s'%str1)
count1=0
count2=0
count3=0
没看懂你的逻辑。 就是设三个值count123来统计
1.当没出现小写字母时,count2=0,此时检测出大写字母count1加1
2.每在三个大写字母后出现一个小写字母时,将count2置1
3.出现三个大写加一个小写字母后,每出现一个大写字母,count3加1
当count3 等于3时,就证明这个小写字母为密码中的一个字符串,记录位置为target
str1 = "ABSaDKSbRIHcRHGcdDIF"
arr = ''.join( for i in range(3, len(str1)-3) if all() in range(65, 91)) for j in range(i-3, i+4) if i != j])])
print(arr)abc
页:
[1]