做網站的客戶資料交換qq群北京sem
目錄:
- 利用 string 模塊判斷
- 使用正則表達式判斷
密碼強度判斷,輸入一個密碼,判斷密碼是否符合要求。
要求密碼長度8-12位,密碼中必須包含大寫字母、小寫字母和數(shù)字,不能含有其他符號。
如果符合要求輸出"密碼符合要求",否則輸出"密碼不符合要求"
利用 string 模塊判斷
import string
# 定義一個函數(shù)來檢查密碼是否符合要求
def check_password(password):# 檢查密碼長度if len(password) < 8 or len(password) > 12:return False# 檢查密碼是否包含大寫字母、小寫字母和數(shù)字if not any(char.isupper() for char in password) or not any(char.islower() for char in password) or not any(char.isdigit() for char in password):return False# 檢查密碼是否包含特殊字符chars = string.ascii_letters + string.digitsif not all(char in chars for char in password):return Falsereturn Truepassword = input("請輸入密碼:")
if check_password(password):print("密碼符合要求")
else:print("密碼不符合要求")
代碼分析:
- 使用 len() 函數(shù)計算密碼長度進行判斷。
- any() 函數(shù)用于判斷給定的可迭代參數(shù) iterable 是否全部為 False,則返回 False,如果有一個為 True,則返回 True。
- 使用 isupper() 檢測是否包含大寫字母;islower() 檢測是否包含小寫字母;isdigit() 檢測是否包含數(shù)字。
- 使用 string 模塊中的大小寫字母常量 string.ascii_letters、數(shù)字常量 string.digits,檢測密碼是否由大寫字母、小寫字母和數(shù)字組成,排除其他字符。
使用正則表達式判斷
import re
def check_password(password):if len(password) < 8 or len(password) > 12:return Falseif not re.search("[a-z]", password):return Falseif not re.search("[A-Z]", password):return Falseif not re.search("[0-9]", password):return Falseif re.search("[^a-zA-Z0-9]", password):return Falsereturn True
password = input("請輸入密碼:")
if check_password(password):print("密碼符合要求")
else:print("密碼不符合要求")
代碼分析:
- 使用 len() 函數(shù)計算密碼長度進行判斷。
- 使用 re.search()方法掃描整個字符串進行匹配,分別檢測密碼是否包含大寫字母、小寫字母和數(shù)字。同樣,檢測密碼是否只由大寫字母、小寫字母和數(shù)字組成。