and と or の動作がイメージと違う
- andの場合
- 値は左から右にブール値として評価されます。
- すべての値がブール値としてtrueである場合、 and は最後の値を返します。
- いづれかの値がfalseである場合、 and は最初のfalseとなる値を返します。
>>> 1 and 2 and 3 and 4 4 >>> [] and {} and 0 and 1 and 2 []
- orの場合
- 値は左から右にブール値として評価されます。
- いづれかの値がtrueである場合、 or はすぐにその値を返します。
- すべての値がfalseの場合、 or は最後の値を返します。
- or はブール値としてtrueである値が見つかるまで値を評価します。残りは無視します。
>>> 1 or 2 or 3 or 4 1 >>> 0 or {} or [] or () or 1 1