补充代码def check(pwd): #密码必须至少包含6个字符 if not isinstance(pwd, str) or len(pwd)<6: return 'not suitable for password' #密码强度等级与包含字符种类的对应关系 d = {1:'weak', 2:'below middle', 3:'above middle', 4:'strong'} #r列表中的四个False分别用来标记pwd是否含有数字、小写字母、大写字母和指定的标点符号。 #在没有判断前默认为False r = [False] * 4 #################begin########################## #请补充函数,完成密码强度测试功能 #################end########################## #统计包含的字符种类,返回密码强度 return d.get(r.count(True), 'error') #测试输入字符的密码强度 strTest = input() print(check(strTest))
时间: 2024-01-25 09:02:01 浏览: 70
admin_pwd_save.zip_28572323adminpwd_pwd.admin_pwd:admin_useradmi
好的,我来补充一下代码:
```
def check(pwd):
#密码必须至少包含6个字符
if not isinstance(pwd, str) or len(pwd)<6:
return 'not suitable for password'
#密码强度等级与包含字符种类的对应关系
d = {1:'weak', 2:'below middle', 3:'above middle', 4:'strong'}
#r列表中的四个False分别用来标记pwd是否含有数字、小写字母、大写字母和指定的标点符号。
#在没有判断前默认为False
r = [False] * 4
#################begin##########################
#请补充函数,完成密码强度测试功能
t = len(pwd)
for i in range(0, t):
if pwd[i] >= '0' and pwd[i] <= '9':
r[0] = True
elif pwd[i] >= 'a' and pwd[i] <= 'z':
r[1] = True
elif pwd[i] >= 'A' and pwd[i] <= 'Z':
r[2] = True
elif pwd[i] in ['!', '@', '#', '$', '%', '^', '&', '*', '(', ')', '_', '-', '+', '=', '[', ']', '{', '}', '|', ';', ':', "'", ',', '.', '/', '<', '>']:
r[3] = True
#################end##########################
#统计包含的字符种类,返回密码强度
return d.get(r.count(True), 'error')
#测试输入字符的密码强度
strTest = input()
print(check(strTest))
```
在补充代码的部分,我使用了 if 和 elif 语句来判断密码字符串中是否包含数字、小写字母、大写字母和指定的标点符号。如果包含了,就把 r 列表中相应的位置改为 True。
注意,这里判断数字的方式是将字符和字符 '0' ~ '9' 进行比较。这样可以判断一个字符是否是数字。其他的判断方式也类似。
最后,统计包含的字符种类,根据 r 中 True 的个数返回密码强度。
阅读全文