擅长:python、mysql、java
<p>这看起来基本正确;但是,您永远不会保存<code>chk_*</code>方法的返回值。在while循环的条件下,检查if<code>chk_minlength == True or ...</code>,这是检查方法定义的值是否为<code>True</code>,而不是检查返回值是否为<code>True</code>。要解决此问题,您可以简单地使用方法调用,而不是引用方法:</p>
<pre class="lang-py prettyprint-override"><code>while not (chk_minlength() or chk_maxlength() or chk_spaces() or chk_specchar() or chk_umgc()):
pass
</code></pre>
<p>由于您在while循环中重用了这些值,因此在这里提前存储这些值更有意义:</p>
<pre class="lang-py prettyprint-override"><code>valid_min_length = chk_minlength()
valid_max_length = chk_maxlength()
no_spaces = chk_spaces()
no_specchar = chk_specchar()
no_umgc = chk_umgc()
while not (valid_min_length or valid_max_length or no_spaces or no_specchar or nor_umgc):
pass
</code></pre>