ネストされた if (および動作を停止したスクリプト) を削減しようとして多くの問題が発生した後、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
次に、「and」の代わりに「 or 」を使用しようとしましたが、うまくいきませx or y
んx, y
でしTrue, False
た.
False
したがって、最初のテストが False と評価されるとすぐに式全体が返されるように、一握りのテストを次々に (できればブール演算子を使用して同じ行に) 配置する方法がわかりません。
読んでくれてありがとう!