質問: win10のpythonのIDLEを使用しています 1 and 0 が 0になり 1 and 2 など1と1以上の場合では大きい方の値が返ってきますが 論理値が返ってくるわけでもエラーにもならないのはどうしてでしょう? 論理演算子も論理値を扱う以外の演算子としての挙動はどのように決まっているのでしょうか?(数値や文字列など) こういう場合どこを調べたら早いとかもあればお教えください
回答: Pythonのand演算子は、第一引数(左側)が偽であれば第一引数を返し、そうでなければ第二引数(右側)を返します。 公式ドキュメント > > > > | 演算 | 結果 | 注釈 | > | --- | --- | --- | > | `x or y` | x が偽なら y, そうでなければ x | (1) | > | `x and y` | x が偽なら x, そうでなければ y | (2) | > | `not x` | x が偽なら`True`,そうでなければ`False` | (3) | > > > 注釈: > > > 1. この演算子は短絡評価されます。つまり第一引数が偽のときにのみ、第二引数が評価されます。 > 2. この演算子は短絡評価されます。つまり第一引数が真のときにのみ、第二引数が評価されます。 > 3. `not`は非ブール演算子よりも優先度が低いので、`not a == b`は`not (a == b)`と解釈され、`a == not b`は構文エラーです。 > > >