擅长:python、mysql、java
<p>您需要将<code>return False</code>移动到循环之外,无论第一次迭代后返回,您也可以简化您的函数,您也不需要也不应该调用list on range来对其进行迭代:</p>
<pre><code>def np(w, i, k):
return k == i + 1 and w[i] == "Hans"
def v(w, i, k):
return k == i + 1 and w[i] == "isst"
def rd_parse(w, i, k):
for r in range(k):
j = i + 1 + i + r + k - 1
if v(w, i, j) or v(w,j,k):
return True
elif np(w, i, j):
return True
return False # outside loop
</code></pre>
<p>如果<code>np(w,i,j)</code>为假,那么<code>np(w,i,j) and v(w,j,k)</code>就不可能为真,相反,如果<code>np(w,i,j)</code>为真,那么就永远不会到达任何其他行</p>