Python驗證用戶密碼是否規(guī)范腳本示例
代碼如下:
import re def check_password(password): # 檢查長度是否在6-20之間 if not 6 <= len(password) <= 20: return False # 檢查是否包含小寫字母 if not re.search(r'[a-z]',password): return False # 檢查是否包含大寫字母 if not re.search(r'[A-Z]',password): return False # 檢查是否包含數(shù)字 if not re.search(r'[0-9]',password): return False # 檢查是否包含特殊字符 if not re.search(r'[!@#$%^&*()_+-=,.<>?]',password): return False return True # 測試 password = "Abc123!@" print(check_password(password)) # True password = "abc" print(check_password(password)) # False
描述信息:
- 代碼中我們定義了一個 check_password 函數(shù),該函數(shù)接受一個參數(shù) password,表示要驗證的密碼
- 首先判斷密碼長度是否在6-20之間,如果不是,直接返回False
- 使用正則表達式 re.search("[a-z]", password) 判斷密碼中是否包含小寫字母,如果不包含,返回False
- 同理使用 re.search("[A-Z]", password) 判斷是否包含大寫字母,使用 re.search("[0-9]", password) 判斷是否包含數(shù)字, 如果不是,直接返回False
當(dāng)然, 你也可以使用 re.compile() 函數(shù)編譯了一個正則表達式,代碼如下:
import re password_pattern = re.compile(r'^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[!@#$%^&*()_+-=,.<>?])[A-Za-z\d!@#$%^&*()_+-=,.<>?]{6,20}$') # 測試 password = "Abc123!@" print(bool(password_pattern.match(password))) # True password = "abc" print(bool(password_pattern.match(password))) # False
描述信息:
- 正則表達式中我們使用了 (?=.[a-z]) 匹配至少一個小寫字母, (?=.[A-Z]) 匹配至少一個大寫字母, (?=.\d) 匹配至少一個數(shù)字,(?=.[!@#$%^&()_+-=,.<>?]) 匹配至少一個特殊字符, [A-Za-z\d!@#$%^&()_+-=,.<>?]{6,20}$ 匹配6-20位的字符串
- 使用 .match()方法來匹配字符串,如果匹配成功返回一個match object,否則返回None
附要求:6位密碼,含有數(shù)字、大小寫字母,及~!@中的特殊符號
import re while True: pwd = input('請輸入您的密碼:') r = '^(?=.*?\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[~!@])[0-9a-zA-Z~!@]{6}$' result = re.match(r, pwd) if result is None: print('請輸入正確的密碼格式!') print('要求6位密碼,含有數(shù)字、大小寫字母,及~!@中的特殊符號!') else: break print('成功設(shè)置密碼!') print(f'您的密碼是:{pwd}')
(?=.*?\d) 檢查數(shù)字;(?=.*[a-z]) 檢查小寫英文字母;(?=.*[A-Z]) 檢查大寫英文字母;
測試:
# 若不限制長度 r = '^(?=.*?\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[~!@]).*$'
總結(jié)
到此這篇關(guān)于Python驗證用戶密碼是否規(guī)范腳本的文章就介紹到這了,更多相關(guān)Python驗證用戶密碼規(guī)范內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
淺談Keras的Sequential與PyTorch的Sequential的區(qū)別
這篇文章主要介紹了淺談Keras的Sequential與PyTorch的Sequential的區(qū)別,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-06-06python中matplotlib條件背景顏色的實現(xiàn)
這篇文章主要給大家介紹了關(guān)于python中matplotlib條件背景顏色的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家學(xué)習(xí)或者使用python具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09Pytorch 數(shù)據(jù)加載與數(shù)據(jù)預(yù)處理方式
今天小編就為大家分享一篇Pytorch 數(shù)據(jù)加載與數(shù)據(jù)預(yù)處理方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-12-12Google開源的Python格式化工具YAPF的安裝和使用教程
Google的開發(fā)者文檔中有一套Python的代碼書寫規(guī)范,而在GitHub上同樣開源了一款名為YAPF的命令行程序用作Python的格式化,下面我們就來看下這款Google開源的Python格式化工具YAPF的安裝和使用教程2016-05-05python中Pycharm 輸出中文或打印中文亂碼現(xiàn)象的解決辦法
本篇文章主要介紹了python中Pycharm 輸出中文或打印中文亂碼現(xiàn)象的解決辦法 ,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-06-06