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)文章
Pandas 處理DataFrame中的inf值實現(xiàn)
Inf 表示正無窮大或負無窮大,通常是在數(shù)學(xué)計算中產(chǎn)生的結(jié)果,本文主要介紹了Pandas 處理DataFrame中的inf值實現(xiàn),具有一定的參考價值,感興趣的可以了解一下2024-04-04
Pytorch中求模型準(zhǔn)確率的兩種方法小結(jié)
這篇文章主要介紹了Pytorch中求模型準(zhǔn)確率的兩種方法小結(jié),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-05-05

