Python で三項演算子を使用する方法 (条件式)

Python で条件式 (三項演算子) を記述する方法を学びます。インライン条件を標準の if-else ブロックと比較します。

エディターでこのソリューションを試してください

概要

条件付きロジックの作成はプログラミングの中核部分です。多くの場合、条件が true か false に基づいて変数に値を割り当てる必要があります。たとえば、ユーザーがオンラインの場合はステータス ラベルを「アクティブ」に設定し、ユーザー名が指定されていない場合は「ゲスト」を割り当てます。

標準の「if-else」ステートメントには 4 行のコードが必要ですが、Python には三項演算子、または条件式として知られる簡潔な省略表現が用意されています。これにより、単一の論理行内で条件を評価し、値を割り当てることができます。構文は、「value_if_true if 条件、else value_if_false」です。

三項演算子は、単純な評価に使用すると非常に読みやすく、リスト内包表記、return ステートメント、関数呼び出しの中に直接配置できます。ただし、複数の三項演算子を一緒にネストすると、すぐに判読できなくなるため、悪い習慣となります。条件ロジックが複雑な場合は、標準の `if-elif-else` ブロックを作成します。

コードと実行の出力

このスクリプトは、Python 三項演算子を使用したインライン条件文の作成を示し、それらを標準の if-else ブロックと比較します。

status = "active"

# 1. Traditional if-else assignment
if status == "active":
    label = "System Online"
else:
    label = "System Offline"
print("Traditional label:", label)

# 2. Pythonic ternary operator assignment (Equivalent)
label_ternary = "System Online" if status == "active" else "System Offline"
print("Ternary label:", label_ternary)

# 3. Using ternary operator inside a print statement
score = 85
print(f"Result: {'Pass' if score >= 50 else 'Fail'}")
端子出力
Traditional label: System Online
Ternary label: System Online
Result: Pass

段階的な実装

  • 三項式を true_value if 条件 else false_value として構造化します。
  • コードのフットプリントを削減するには、変数割り当て内でインライン 3 項ステートメントを使用します。
  • 読みやすさを維持するために、三項演算子の入れ子 (例: a if b else c if d else e) を避けてください。

よくある質問

Python の三項演算子は標準の if-else ブロックより遅いですか?

いいえ、同じバイトコード操作にコンパイルされるため、パフォーマンスは同じです。コンテキストに応じて最も読みやすい構文を選択してください。

三項演算子内で値を返す代わりにステートメントを実行できますか?

いいえ、三項演算子は式です。つまり、値に評価される必要があります。ブランチ内にステートメント (代入やキーワードの出力など) を記述することはできません。

関連トピック

推奨される Python リソース

関連するインタラクティブなチュートリアル、チートシート、コード比較で知識を深めてください。