我正在构建一个程序,它以字符串形式获取密码,并通过几个因素检查其强度。我想检查输入的字符串是否包含特殊字符(如%,$,#等),但目前为止我无法弄清楚。最好的办法是什么?如何检查字符串是否包含特殊字母?
编辑:我没有搜索特定的字符。我需要搜索字符串以查找它是否具有某种非字母非数字字符。
编辑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