我正在構建一個程序,它以字符串形式獲取密碼,並通過幾個因素檢查其強度。我想檢查輸入的字符串是否包含特殊字符(如%,$,#等),但目前爲止我無法弄清楚。最好的辦法是什麼?如何檢查字符串是否包含特殊字母?
編輯:我沒有搜索特定的字符。我需要搜索字符串以查找它是否具有某種非字母非數字字符。
編輯2:我想不做循環。
我正在構建一個程序,它以字符串形式獲取密碼,並通過幾個因素檢查其強度。我想檢查輸入的字符串是否包含特殊字符(如%,$,#等),但目前爲止我無法弄清楚。最好的辦法是什麼?如何檢查字符串是否包含特殊字母?
編輯:我沒有搜索特定的字符。我需要搜索字符串以查找它是否具有某種非字母非數字字符。
編輯2:我想不做循環。
你將不得不把他放在一個for循環來檢查特殊字符,我認爲你需要把它們全部列出來,然後測試它,但這是你需要的基本代碼!用你需要做的任何事情替換打印位!
password = "VerySecurePassw0rd"
if "%" in password:
print("Your Password has a special character in it!")
if "%" not in password:
print ("Your Password does not have a special character in it!")
編輯:
或者你可以使用「其他」上述
,不使用循環我不知道,但是你可以使用「elif的」,但它不是非常有效
password = "VerySecurePassw0rd"
if "%" in password:
print ("Your Password has a special character in it!")
elif "$" in password:
print("Your Password has a special character in it!")
elif "#" in password:
print ("Your Password has a special character in it!")
你也試試這個:
if "%" and "$" in password:
print("Your Password has a 2 special characters in it!")
我認爲應該工作
您可以使用可能正則表達式!
>>> import re
>>> s='Hello123#'
>>> re.findall('[^A-Za-z0-9]',s)
['#']
>>> if re.findall('[^A-Za-z0-9]',s):print True
...
True
快樂編碼!
希望它有幫助!
正如你所說你不想使用循環,並且可能從來沒有使用過正則表達式,那麼列表理解又如何呢?
import string
all_normal_characters = string.ascii_letters + string.digits
def is_special(character):
return character not in all_normal_characters
special_characters = [character for character in password if is_special(character)]
讓我知道這是否工作,或者如果您需要更多的幫助!
感謝您的評論!我正在尋找一種沒有循環的方法。你有什麼想法嗎? – MichaelFel123