
スポンサーリンク
Pythonの三項演算子を使うと、if文を1行で実装することができます。
本記事では、三項演算子を使ったif文の書き方を解説します。
三項演算子の使い方
Pythonで条件分岐を記述する際、一般的に使われるのがif文です。これは直感的で分かりやすく、よく使われる基本の文法です。
x = 10if x > 5: y = "big"else: y = "small"
上記のような記述でも、たった変数yに値を代入するけで、記述4行を要しています。簡単な条件なら、もっと簡潔に書ける方法があるのでは?と思うかもしれません。
そこで登場するのが「三項演算子」です。Pythonでは、たった1行で条件分岐を実現できます!
x = 10y = "big" if x > 5 else "small"
これだけで、if-elseの分岐を表現できました。コードがより簡潔になり、読みやすさも高まります。
三項演算子の構文
三項演算子の文法フォーマットは、比較的に簡単で視覚的にも分かりやすいです。
基本構文は以下の通りです。
条件がTrueのときの値 if 条件 else 条件がFalseのときの値
これによって、通常のif文より記述も簡略になります。三項演算子の実装例を以下に示します。
age = 18status = "adult" if age >= 18 else "minor"print(status) # 出力: adult
この例では、ageが18歳以上であるかどうかを判定し、Trueの場合はadult
、Falseの場合はminor
を割り当てています。
三項演算子の活用例
三項演算子で奇数・偶数を判定する
以下は通常の実装で奇数偶数を判定するプログラムです。
num = 5if num % 2 == 0: result = "偶数"else : result = "奇数"print(result)
上記プログラムの実行結果は以下の通りです。
$ python example1.py奇数
三項演算子に変換すると以下のようになり、1行で記載できます。
num = 6result = "偶数" if num % 2 == 0 else "奇数"print(result)
上記プログラムの実行結果は以下の通りです。
$ python example2.py偶数
三項演算子でNoneチェックを行う
以下のように変数の中身がNoneであるかのチェックにも活用できます。
name = Nonegreeting = name if name is not None else "ゲスト"print(greeting)
上記プログラムの実行結果は以下の通りです。
$ python example3.pyゲスト
リスト内包表記で三項演算子を使う
以下のように、三項演算子は内包表記と組み合わせて記述することもできます。
numbers = [1, 2, 3, 4, 5]result = ["偶数" if num % 2 == 0 else "奇数" for num in numbers]print(result)
上記プログラムの実行結果は以下の通りです。
$ python example4.py['奇数', '偶数', '奇数', '偶数', '奇数']
ネストされた三項演算子は可読性が低下
複雑な条件分岐も三項演算子を使って書くことができます。例えば、入れ子にして複数段階の条件を表することも可能です。 三項演算子は入れ子にすることもできますが、可読性が低下する可能性があり、ネストされた三項演算子の実装はお勧めしません。
以下の例では、xがyより大きければxが大きい
、yと同じならば同じ
、それ以外はyが大きい
と、入れ子の三項演算子を使って表現しています。
x = 10y = 20result = "xが大きい" if x > y else "同じ" if x == y else "yが大きい"print(result)
上記プログラムの実行結果は以下の通りです。
$ python example5.pyyが大きい
以下の例では、xが10より大きければbig
、5より大きければmedium
、それ以外はsmall
と、入れ子の三項演算子を使って表現しています。
x = 7result = "big" if x > 10 else ("medium" if x > 5 else "small")print(result)
上記プログラムの実行結果は以下の通りです。
$ python example6.pymedium
こうして入れ子を重ねると、読み手にとって分かりづらいコードになりがちです。そのため、複雑な分岐を必要とする場合は、普通のif-elif-else文を使った方がよい場合も多いでしょう。
三項演算子まとめ
三項演算子の特徴をまとめると以下の通りです。
シンプルな実装
: Pythonの三項演算子を使うと、if条件に基づく値設定を簡潔に実装することができます。可読性
: 短い条件やシンプルなロジックには適していますが、複雑なロジックでは可読性が低下します。この場合、通常のif-else文を使用した方が良いでしょう。複雑な条件
: 複雑な条件を入れると混乱しやすくなるため、コメントを追加するか、通常のif-elif-else文を使用することを検討してください。
簡単なif-elseをさらに簡潔に1行で書きたい場合は、Pythonの三項演算子を活用しましょう。 特にシンプルなロジックを書く場面では重宝します。 しかし、過度なネストや複雑な分岐になりそうな場合は、読者にとって解読性が落ちるため、適切なバランス感覚を持って使うことが大切です。
Pythonユーザにお勧めの本
![]() |
スッキリわかるPython入門 第2版
新品価格
|

![]() |
新品価格
|

![]() |
VTuberサプーが教える! Python
新品価格
|

![]() |
Python1年生 第2版
新品価格
|

以上で本記事の解説を終わります。
よいITライフを!