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
|