|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
甄别一段字符串中的密码
1每位密码为单个小写字母
2每位密码的左右两边均有三个大写字母
我打的代码是:
def myfunt(char):
shuchu = []
for i in char:
x = char.rfind(i)
if i.islower() == True and char[x-3:x].isupper() == char[x+1:x+4].isupper() == True:
shuchu.append(i)
print(shuchu)
char = input("请输入需要甄别的字符串:")
myfunt(char)
打代码的时候我就发现一个问题
rfind()是返回最高索引值,如果密码中有两个相同的小写字母的话这段代码应该不行
但是当我F5运行后却发现完全没问题
比如输入ASDmLOK51454131MVFyKILkjhk65465jjYASxMKIdfa 得到密码 m y x
输入 ASDmLOK51454131MVFyKILkjhk65465jjYASxMKIdfaKKKyLLLs6546 得到密码 m y x y
请问这是怎么回事?
紧接着我又发现一个问题
isupper() 不是应该是全部是大写字母才返回True 么?
怎么如果有个数字在其中也返回True?
比如 y = '6PP'
y.isupper()
返回True
这样如果输入ASDmLOK51454131MVFyKILkjhk65465jjYASxMKIdfaKKKyLLLs6LLLxPPP
密码就会是['m', 'y', 'x', 'y', 's', 'x']
请问该使用哪个函数能解决? 还是我思路有问题?
|
|