<p>在尝试减少嵌套的ifs(以及一个停止工作的脚本)时遇到了很多麻烦之后,我意识到也许我对python中布尔值的工作原理和工作原理有错误的认识。在</p>
<p>我有这个(工作正常,但扭曲):</p>
<pre><code>if (not gotside):
if (j > 1):
if (j < a.shape[1] - 1):
if a[i, j+unit]:
print "only now I do stuff!"
</code></pre>
<p>并尝试了这个方法(因为没有按预期工作而显得很拘束):</p>
^{pr2}$
<p>然后我试着用“or”代替“and”,但是没用,因为(后来我发现)当你使用<code>x and y</code>甚至<code>x or y</code>时,你得到的是{<cd3>},而不是{<cd4>}。在</p>
<p>所以,我不知道如何才能一个接一个地进行一些测试(最好是在同一行中,使用布尔运算符),这样当第一个测试的结果为False时,整个表达式就会返回<code>False</code>。在</p>
<p>谢谢你的阅读!在</p>
<p>我明白您的顾虑,但请记住,每当Python中的<code>if</code>语句中有某个内容,它将隐式转换为<code>bool</code>作为条件。因此,当<code>3 or 2</code>返回<code>3</code>和{<cd5>}在独立完成时返回{<cd6>},而说{<cd7>}实际上相当于说{<cd8>},因此无论布尔逻辑在其他上下文中返回什么,您都将获得条件中使用时逻辑返回的值的假或真值。在</p>