Joh*_*ohn 4 python string passwords
我是python的新手,我遇到了问题.我需要检查其上,下,数字和符号的密码.它需要每个类1个,整个密码需要超过6个字符.到目前为止我有大小写.raw_input输入为字符串,那么我如何检查该字符串中的数字和符号?
我的代码到目前为止:
p = raw_input(("plz enter a password to check it's strength"))
if len (p) <= 6:
if p.isupper() or p.islower() or int(p):
print"This is a weak password "
elif len(p) > 6 and len(p) <26:
if p.isupper() or p.islower() or isdigit():
print "wea2k"
else:
print "good"
Run Code Online (Sandbox Code Playgroud)
所以我需要知道的是如何检查数字和符号的输入.
尝试一次一个.
has_upper = False
for char in p:
if char.isupper():
has_upper = True
break
Run Code Online (Sandbox Code Playgroud)
对小写和数字重复此操作.对于特殊字符,请使用相同类型的循环,但将if更改为以下内容:
if not (char.isupper() or char.islower() or char.isdigit()):
Run Code Online (Sandbox Code Playgroud)
最后,如果所有四个标志都为真,那么你有一个强密码; 否则,它很弱.
你能从那里完成编码吗?
你知道,有很多方法可以编写更多的"Pythonic" - 更好地使用语言的风格.例如:
has_upper = reduce(lambda a, b: a or b.isupper(), [_ for _ in p], False)
Run Code Online (Sandbox Code Playgroud)
...替换了我给你的整个5行块.