擅长:python、mysql、java
<p>此支票:</p>
<pre><code>elif not ("[a-z]"):
</code></pre>
<p>什么都不做;它只是检查静态字符串的真值。因为<code>"[a-z]"</code>是一个非空字符串,所以它总是被认为是true(或“truthy”),这意味着无论<code>password</code>中有什么内容<code>not "[a-z]"</code>总是False。您可能想使用<code>re</code>模块,您可以在这里阅读:<a href="https://docs.python.org/3/library/re.html" rel="nofollow noreferrer">https://docs.python.org/3/library/re.html</a></p>
<p>下面是一种不使用正则表达式实现此检查的方法,使用Python的<code>all</code>和<code>any</code>函数、其<code>in</code>关键字和<code>string</code>模块,该模块包含方便的字符串,如<code>ascii_lowercase</code>(所有小写字母,对应于正则表达式字符类<code>[a-z]</code>):</p>
<pre><code>import string
password = input("Input your password: ")
if all([
len(password) >= 8,
any(c in password for c in string.ascii_lowercase),
any(c in password for c in string.ascii_uppercase),
any(c in password for c in string.digits),
]):
print("Password is strong enough")
else:
print("Password is not strong enough")
</code></pre>