本節課主要講解循環終止和限制密碼的驗證次數:
1、brack可以使循環終止;
2、使用while循環可以限制驗證次數。
"""
作者:lanxingbudui
版本:2.0
日期:2019-07-15
功能:判斷密碼強度
2.0新增功能:限制密碼驗證次數,循環終止
"""
def check_number_str(password_str):
"""
判斷字符串是否包含數字
"""
has_number = False
for c in password_str:
if c.isnumeric():
has_number = True
break
return has_number
def check_letter_str(password_str):
"""
判斷字符串是否包含字母
"""
has_letter = False
for c in password_str:
if c.isalpha():
has_letter = True
break
return has_letter
def main():
"""
主函數
"""
try_times = 5
while try_times >= 0:
password = input('請輸入密碼:')
# 密碼強度
strength_level = 0
# 規則1:密碼長度大於8位
if len(password) >= 8:
strength_level += 1
else:
print('密碼長度必須大於8位')
# 規則2:密碼包含數字
if check_number_str(password):
strength_level += 1
else:
print('密碼要求包含數字!')
# 規則3:密碼包含字母
if check_letter_str(password):
strength_level += 1
else:
print('密碼要求包含字母!')
if strength_level == 3:
print('密碼強度合格!')
break
else:
print('密碼強度不合格!')
try_times -= 1
print()
if try_times <= 0:
print('密碼嘗試次數過多,請重新設置!')
if __name__ == '__main__':
main()