在尝试减少嵌套 ifs(以及停止工作的脚本)遇到很多麻烦之后,我意识到我可能对布尔值在 python 中的工作方式和工作方式有错误的想法。
我有这个(工作正常但扭曲):
if (not gotside):
if (j > 1):
if (j < a.shape[1] - 1):
if a[i, j+unit]:
print "only now I do stuff!"
并尝试了这个(看起来没有按预期工作而变得简单):
if (not gotside) and (j > 1) and (j < a.shape[1] - 1) and a[i, j+unit]:
print "I'm well tested but not so indented..."
然后我尝试使用“或”而不是“和”,但没有奏效,因为(后来我发现)当你使用x and y
甚至x or y
你得到一个x, y
,而不是一个True, False
,根据文档。
因此,我不知道如何以一种在False
第一个测试结果为 False 时整个表达式立即返回的方式一个接一个地进行一些测试(最好在同一行中,使用布尔运算符)。
谢谢阅读!