Python|三項演算子(条件式)でif文を1行で書く方法

1. はじめに

Pythonには、条件分岐を1行で書ける三項演算子(条件式)という便利な書き方があります。通常のif文よりもコンパクトに記述でき、シンプルな条件分岐に適しています。
この記事では、Python|三項演算子(条件式)でif文を1行で書く方法というテーマで、基本の使い方から応用例、注意点までを丁寧に解説します。

Python初心者〜中級者の方が、実務でも使えるスッキリしたコードを書くための第一歩として、ぜひ最後までご覧ください。

 

2. Pythonの三項演算子(条件式)の基本

2-1. 三項演算子とは?

三項演算子とは、if文による条件分岐を1行で書くための構文です。構文は以下の通りです:

値1 if 条件式 else 値2

これは、「もし条件式がTrueなら値1、そうでなければ値2を返す」という意味になります。

2-2. 基本的な使用例

例えば、ある数値が正の数かどうかを判定する例を見てみましょう。

x = 10
result = "正の数" if x > 0 else "負または0"
print(result)

実行結果:
正の数

このように、if文を使わずに、1行で値を条件によって切り替えることができます。

 

3. よくある使い方・応用例

3-1. 関数内での値の返却に使う

関数の戻り値を条件によって変える際にも、三項演算子は有効です。

def check_number(x):
    return "偶数" if x % 2 == 0 else "奇数"

print(check_number(4))  # 偶数
print(check_number(7))  # 奇数

読みやすく、冗長なコードを避けたいときに便利です。

3-2. リスト内包表記と組み合わせる

リスト内包表記と組み合わせることで、より高度な一括処理が可能になります。

nums = [1, 2, 3, 4, 5]
labels = ["偶数" if n % 2 == 0 else "奇数" for n in nums]
print(labels)

実行結果:
['奇数', '偶数', '奇数', '偶数', '奇数']

3-3. 変数の初期化処理

変数を条件に応じて初期化する際にも便利です。

user_input = ""
default_name = user_input if user_input else "ゲスト"
print(default_name)

空文字列やNoneなどのチェックに応用できます。

 

4. 注意点・エラー対策

4-1. 複雑な条件では読みづらくなる

三項演算子はあくまで「シンプルな条件分岐」に向いています。ネストされたり、複数条件を組み合わせたりすると、かえって読みづらくなります。

# 推奨されない書き方(ネストが深く読みづらい)
result = "A" if x > 0 else "B" if x == 0 else "C"

こうした場合は、if-elif-else文で明示的に書いたほうが保守性が高まります。

4-2. 実行結果と「代入の順序」に注意

次のようなコードでは、条件の結果が逆になることがあります。

x = 5
y = 10
max_value = x if x > y else y
print(max_value)

実行結果:
10
誤って x if y > x else y などと書くと、意図した結果にならないので注意しましょう。

 

5. まとめ

  • 三項演算子(条件式)は、「値1 if 条件式 else 値2」という形で記述でき、Pythonでif文を1行で書ける便利な構文です。
  • 短く簡潔に条件分岐を記述したい場合や、関数の戻り値、リスト内包表記と相性が良いです。
  • ただし、複雑な条件やネストには不向きで、可読性が低下するため注意が必要です。

実務においても、ログ出力の切り替えや簡単な初期化処理など、「一行で済ませたい処理」でよく活用されます。
シンプルに書くスキルを身につけたい方は、ぜひこの構文を使いこなしてみてください。

タイトルとURLをコピーしました