我做了一个密码强度检查器。
代码:
import re
upper = re.compile(r'[A-Z]')
lower = re.compile(r'[a-z]')
digit = re.compile(r'[0-9]')
special_char = re.compile(r'[~!@#$%^&*()]')
# text = 'd3F#$%^&232sdsGDFD'
text = input("Enter a password to check it's strength\n")
digit_check = digit.search(text)
upper_check = upper.search(text)
lower_check = lower.search(text)
special_char_chk = special_char.search(text)
if digit_check and upper_check and lower_check and special_char_chk and len(text)>=8:
print("Valid password\nPassword is:" + text)
else:
print("Invalid")
字符串
我试着让它在我的水平短。
我可以在多大程度上减少代码行数?
2条答案
按热度按时间bkkx9g8r1#
更短!=更好。但是,是的,它可以变得更短更好,例如:
字符串
ctehm74n2#
你完全可以将这些表达式合并组合成一个正则表达式:
字符串
请注意,表达式中的布尔值是使用公式
a & b = !a | !b
组合的。所以基本上,这是在寻找:型