改完的代码如下,结果应该和小甲鱼的一样了。# 定义特殊字符串
spestr = "~!@#$%^&*()_=-/,.?<>;:[]{}|\"
# 定义数字字符串
numstr = '1234567890'
# 定义字母字符串
alpstr = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
passwd = input('输入密码:')
# 获取psswd的第一个字符
passcap = passwd[0]
# 密码是否包含特殊字符
for i in range(len(spestr)): # 从特殊字符串顺序取值,从0至特殊字符串长度
if passwd.find(spestr[i]) != -1: # 如果passwd里能找到特殊字符串里的字符则为true并退出for循环,否则为false并继续for循环
spe = 'True'
break
else:
spe = 'False'
# 密码是否包含数字
for i in range(len(numstr)): # 从数字字符串顺序取值,从0至数字符串长度
if passwd.find(numstr[i]) != -1: # 如果passwd里能获取数字字符串里的字符则为true并退出for循环,否则为false并继续for循环
num = 'True'
break
else:
num = 'False'
# 密码是否包含字母
for i in range(len(alpstr)): # 从字母字符串顺序取值,从0至字母符串长度
if passwd.find(alpstr[i]) != -1: # 如果passwd里能获取字母字符串里的字符则为true并退出for循环,否则为false并继续for循环
alp = 'True'
break
else:
alp = 'False'
# 密码是否为字母开头
if passcap.isalpha() == True:
cap = 'True'
else:
cap = 'False'
a = '密码安全级别评定为:'
while True:
#低级密码
if len(passwd) <= 8 or passwd.isdigit() == True or passwd.isalpha() == True:
print(a, '低')
#高级密码
elif len(passwd) >= 16 and spe == 'True' and num == 'True' and alp == 'True' and cap == 'True':
print(a, '高')
print('请继续保持')
break
#中级密码
else:
print(a, '中')
print('请按一下方式提升您的密码安全级别: \n 1.密码必须由数字、字母及特殊字符三种组合 \n 2.密码只能由字母开头 \n 3.密码长度不能低于16位')
break
|