条件分岐して出力する場合、Pythonだと以下のように書けるので便利でよく使っています。
x = 10
y = 5
print(x if x > y else y)
…が、しかし!
いつもの調子で書いていたら以下のような事象に遭遇。
x = 1
y = 2
print(x, y if x > y else y, x)
print(x, y if x < y else y, x)
#出力結果
1 2 1
1 2 1
x が y より大きければ x, y の順で出力する。(下はその逆)
なぜか?どちらのパターンでも x, y, x で出力されてしまいますね。
原因を探ってみたのですが、結局解決できず…。
とりあえず、今は大人しく観念しまして以下のように書いて逃げました。
こういった書き方には対応してないようですね。
x = 1
y = 2
if x > y:
print(x, y)
else:
print(y, x)