与えた条件を満たす候補


Pythonでは演算子の優先順位が高い方から順に

not
x and y
x or y

のようになっているらしい。つまり、以下の式は

True or False and False

True or (False and False)と評価される。どう書く?orgの「与えられた条件を満たす候補」問題では、

not
x and y, x or y

のような優先順位で左結合になっている。文字列をeval()を使って答えが違ったので一瞬、頭がハテナになったが、Pythonでorの方がandより優先順位が低いというのは若干分かりづらいし、そうなっている理由が分からない。ifの代わりに使うand、orテクニックもandが先に来ているのはたまたまではないということが分かった。