我们需要这样一组密码,必须含有数字,大小写字母,并且长度不小于8位。如何用我们现有的字符串方法,做出这道题呢?
while True:
num=input('请输入密码:')
if len(num)>=10 and num.isidentifier() and ('_' not in num):
#isidentifier是检查字符串是不是合法的变量名,python的变量名是大小写字母加_都可以,所以最后要排除下划线。
if num.isdigit():#如果字符串里都是数字
print('缺少字母')
else:#字符串有两种情况都是字母或者字母和数字混合
if num.isalpha():#如果字符串里都是字母
print('密码缺少数字')
else:#这里只有一种情况就是字符串是字母和数字混合
#现在只需要证明字符串里字母有大小写就可以了
if num.islower():#如果字符串里都是小写字母
print('密码缺少大写字母')
else:#密码里是不是都是大写字母
if num.isupper():
print('缺少小写字母')
else:
print('密码验证成功')
break
else:
print('密码小于10位')
真是用了好多的逻辑判断,在以后的学习比如re模块的正则表达式,会有更简单的做法,但是以上代码有一个漏洞,对于有些密码是测不出来的,你能找出来嘛,可以留言给我嘿嘿!!!