程序说明:通过获取用户输入,判断密码长度是否大于8,同时判断其中是否包含数字和字母,并返回相关信息。
【相关知识点】
Python字符串:
str.isnumeric() -----检测字符串是否只有数字 返回True or False(注意是只有数字)
str.isalpha() -----检测字符串中是否只有字母 返回True or False
str.islower() -----检测字符串中是否都为小写
str.isupper() ------检测字符串中是否都为大写
"""
作者: 王啸北
日期: 2019.05.19
功能: 判断输入密码的强弱
版本: v2.0
增加功能: 循环终止
"""
# 判断输入字符串中是否含有数字
def existNumber(password_str):
has_number = False
for c in password_str:
if c.isnumeric():
has_number = True
break
return has_number
# 程序中一般不连续用两个return
# return True # return 提前终止循环
# return False
# 判断输入字符串中是否含有字母
# def existAlpha(password_str):
# for c in password_str:
# if c.isalpha():
# return True
# return False
# v2.0 判断输入字符串中是否含有字母
def existAlpha(password_str):
has_Alpha = False
for c in password_str:
if c.isalpha():
has_Alpha = True
break
return has_Alpha
def main():
"""
主函数
:return:12
"""
Try_times = 5
while Try_times > 0:
password = input('请输入密码:')
# 密码强度
strength_level = 0
# 规则一: 密码长度大于8
if len(password) >= 8:
strength_level += 1
else:
print('请输入长度大于8的密码...')
# 规则二: 判断是否有数字
if existNumber(password):
strength_level += 1
else:
print('密码中需包含数字')
#规则三: 密码中包含字母
if existAlpha(password):
strength_level += 1
else:
print('密码中需包含字母')
if strength_level == 3:
print('密码输入正确!')
break
else:
Try_times -= 1
if Try_times == 0:
print('密码错误次数太多!')
else:
print('密码错误!剩余{}次'.format(Try_times))
print() #添加空行
if __name__ == '__main__':
main()