Python プログラミング メモ

print と if の組み合わせ Python

条件分岐して出力する場合、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)

-Python, プログラミング, メモ

Copyright© donguri.pyのblog , 2024 All Rights Reserved.