Python的學習筆記案例6--判斷密碼強度2.0

本節課主要講解循環終止和限制密碼的驗證次數:

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()

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章