こんな記法を見たんだが、どう言う文法からこんなのが出てくるの? 3項演算子みたいなものだが。
短絡評価if と言うらしいけど。

i = 8
print(i%2 and'odd!!!!'or'>EVEN<')
#>EVEN<

短絡評価というのは先に成立した(True)方だけを見て後ろは見ないと言う方式みたいだね。
また、if が無くても評価式だけで成立するんだね。
print(0 and 2 or 5)
#5
print(1 and 2 or 5)
#2

しかし
print(1 and 2 )
#2
はなんとなく違和感がある。

そう言えば、3項演算子があってなんで2項演算子みたいなものが無いんだろうと思ってた。
3項演算子なら
2 if 評価式 else 5 が有って
2 if 評価式 が無いのが不思議だった。
評価式 and 値(0以外) がそれに当たるのか。
しかし、 1 and 2 の時どうして後ろの値が有効になるのかな?