Pythonの三項演算子(条件式)は、短い条件分岐を1行で書くための構文です。他の言語での「三項演算子」に相当し、if
とelse
を使った条件式を簡潔に記述できます。これを使うと、条件に基づいて異なる値を返したり、設定したりすることができます。
基本構造
Pythonの三項演算子の構文は次の通りです:
値1 if 条件 else 値2
- 条件: 評価される条件(
True
またはFalse
) - 値1: 条件が
True
の場合に返される値 - 値2: 条件が
False
の場合に返される値
サンプルコード
サンプル1: 数の大小を比較
a = 10
b = 20
# 三項演算子を使って大きい方の数を選ぶ
max_value = a if a > b else b
print("The larger number is:", max_value)
説明: このコードは、a
とb
のどちらが大きいかを比較し、大きい方の値をmax_value
に代入します。
サンプル2: 偶数か奇数かを判断
number = 7
# 三項演算子を使って偶数か奇数かを判定
result = "Even" if number % 2 == 0 else "Odd"
print("The number is:", result)
説明: number
が偶数なら"Even"
, 奇数なら"Odd"
をresult
に代入します。
サンプル3: 入力に基づいてメッセージを表示
user_input = input("Enter 'yes' or 'no': ")
# 三項演算子を使ってメッセージを決定
message = "You said yes!" if user_input.lower() == 'yes' else "You said no!"
print(message)
説明: ユーザーが"yes"
と入力した場合、"You said yes!"
を表示し、それ以外の場合は"You said no!"
を表示します。
サンプル4: 複数の条件で値を選択
score = 85
# 三項演算子をネストして複数の条件に対応
grade = "A" if score >= 90 else "B" if score >= 80 else "C" if score >= 70 else "D" if score >= 60 else "F"
print("Your grade is:", grade)
説明: score
の値に基づいて成績を判定し、grade
に代入します。この例では三項演算子をネストして使っています。
if-elseとの比較
通常のif-else文と比較すると、三項演算子は次のようにより簡潔に書けます。
# 通常のif-else文
if condition:
result = value1
else:
result = value2
# 三項演算子を使うと
result = value1 if condition else value2
まとめ
- 三項演算子: 短い条件式を1行で書くことができる。可読性を保ちながらコードを簡潔に書くのに便利。
- 使い方: 値1
if
条件else
値2 の形式で使う。