python字符串判斷密碼強弱
本文實例為大家分享了Python密碼強弱判斷的具體代碼,供大家參考,具體內(nèi)容如下
程序說明:通過獲取用戶輸入,判斷密碼長度是否大于8,同時判斷其中是否包含數(shù)字和字母,并返回相關(guān)信息。
【相關(guān)知識點】
Python字符串:
str.isnumeric() -----檢測字符串是否只有數(shù)字 返回True or False(注意是只有數(shù)字)
str.isalpha() -----檢測字符串中是否只有字母 返回True or False
str.islower() -----檢測字符串中是否都為小寫
str.isupper() ------檢測字符串中是否都為大寫
"""
作者: 王嘯北
日期: 2019.05.19
功能: 判斷輸入密碼的強弱
版本: v2.0
增加功能: 循環(huán)終止
"""
# 判斷輸入字符串中是否含有數(shù)字
def existNumber(password_str):
has_number = False
for c in password_str:
if c.isnumeric():
has_number = True
break
return has_number
# 程序中一般不連續(xù)用兩個return
# return True # return 提前終止循環(huán)
# 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():
"""
主函數(shù)
:return:12
"""
Try_times = 5
while Try_times > 0:
password = input('請輸入密碼:')
# 密碼強度
strength_level = 0
# 規(guī)則一: 密碼長度大于8
if len(password) >= 8:
strength_level += 1
else:
print('請輸入長度大于8的密碼...')
# 規(guī)則二: 判斷是否有數(shù)字
if existNumber(password):
strength_level += 1
else:
print('密碼中需包含數(shù)字')
#規(guī)則三: 密碼中包含字母
if existAlpha(password):
strength_level += 1
else:
print('密碼中需包含字母')
if strength_level == 3:
print('密碼輸入正確!')
break
else:
Try_times -= 1
if Try_times == 0:
print('密碼錯誤次數(shù)太多!')
else:
print('密碼錯誤!剩余{}次'.format(Try_times))
print() #添加空行
if __name__ == '__main__':
main()
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
PyQt5入門之基于QListWidget版本實現(xiàn)圖片縮略圖列表功能
這篇文章主要介紹了PyQt5入門之基于QListWidget版本實現(xiàn)圖片縮略圖列表功能,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-09-09
一文搞懂Python中Pandas數(shù)據(jù)合并
pandas是基于NumPy的一種工具,該工具是為了解決數(shù)據(jù)分析任務(wù)而創(chuàng)建的。Pandas納入了大量庫和一些標準的數(shù)據(jù)模型,提供了高效操作大型數(shù)據(jù)集的工具。pandas提供大量快速便捷地處理數(shù)據(jù)的函數(shù)和方法。你很快就會發(fā)現(xiàn),它是使Python強大而高效的數(shù)據(jù)分析環(huán)境的重要因素之一2021-11-11
python 時間戳與格式化時間的轉(zhuǎn)化實現(xiàn)代碼
這篇文章主要介紹了python 時間戳和格式化時間的轉(zhuǎn)化,需要的朋友可以參考下2016-03-03
Python結(jié)合多線程與協(xié)程實現(xiàn)高效異步請求處理
在現(xiàn)代Web開發(fā)和數(shù)據(jù)處理中,高效處理HTTP請求是關(guān)鍵挑戰(zhàn)之一,本文將結(jié)合Python異步IO(asyncio)和多線程技術(shù),探討如何優(yōu)化請求處理邏輯,解決常見的線程事件循環(huán)問題,有需要的小伙伴可以根據(jù)需求進行選擇2025-04-04
Python面向?qū)ο蠖鄳B(tài)實現(xiàn)原理及代碼實例
這篇文章主要介紹了Python面向?qū)ο蠖鄳B(tài)實現(xiàn)原理及代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-09-09

