Pythonの三項演算子とは?一行で条件分岐を記述する方法
生徒
「Pythonのプログラムって、もし〜なら…って書くとき、もっと短く書ける方法はありますか?」
先生
「はい、Pythonでは『三項演算子』という記述方法を使うと、一行で条件分岐を書くことができますよ。」
生徒
「三項演算子?なんだか難しそうな名前ですね…。簡単に教えてもらえますか?」
先生
「もちろん!まずは三項演算子の基本的な書き方から説明しましょう。」
1. 三項演算子とは?初心者向けにやさしく解説
Pythonの三項演算子とは、「もし〜なら…、そうでなければ…」という条件分岐を一行で書ける特別な文法です。
正式には「条件式付きの代入」と呼ばれることもあります。英語では「conditional expression(条件式)」といいます。
たとえば、次のような条件があるとします。
- 年齢が18歳以上なら「大人」と表示する
- 18歳未満なら「子ども」と表示する
通常のif
文を使うと次のように書きます。
age = 17
if age >= 18:
print("大人")
else:
print("子ども")
これを三項演算子を使うと、一行で次のように書くことができます。
print("大人" if age >= 18 else "子ども")
2. 三項演算子の基本の書き方
Pythonの三項演算子の基本形は、次のようになります。
値1 if 条件式 else 値2
意味:
条件式
がTrue(真)なら値1
、そうでなければ値2
を返す
この書き方は、あくまで「値を選ぶ」ための表現であり、「何かの処理をする」目的では使いません。
3. 具体的な使用例:買い物の割引判定
たとえば、買い物をしたときの合計金額が5000円以上なら「割引対象」、そうでなければ「割引なし」と表示したい場合は、次のように書けます。
total = 4800
print("割引対象" if total >= 5000 else "割引なし")
割引なし
このように、三項演算子を使えば、とてもシンプルに条件によって結果を切り替えることができます。
4. 変数に代入するパターン
三項演算子は、変数に値を代入する場合にもよく使われます。たとえば、次のように書くことができます。
score = 85
result = "合格" if score >= 70 else "不合格"
print(result)
合格
if文で何行も書くよりも、読みやすくてスッキリしたコードになりますね。
5. 三項演算子の注意点:複雑すぎる条件には使わない
三項演算子は便利ですが、条件が複雑なときには向いていません。読みづらくなってしまうからです。
たとえば、「値が100以上なら『大きい』、50〜99なら『中くらい』、それ以外は『小さい』」というような複雑な条件分岐には、if
文を使った方が読みやすいです。
num = 70
if num >= 100:
print("大きい")
elif num >= 50:
print("中くらい")
else:
print("小さい")
このような場合は、三項演算子を使わずに普通のif文で書くのがベストです。
6. 三項演算子を使うメリットと活用場面
三項演算子の主なメリットは、コードが短く・見やすく・書きやすくなる点です。
- 1行で条件を分けたいとき
- 変数に値を簡単に入れたいとき
- ちょっとした条件チェックの表示をしたいとき
特に、Webアプリやデータ分析などで「Trueなら◯、Falseなら×」のように使うことが多いです。
7. 三項演算子の中で計算もできる!
三項演算子の中で計算もできます。たとえば、次のように「税込価格」を条件によって変えることも可能です。
price = 1000
is_member = True
final_price = price * 0.9 if is_member else price
print(final_price)
900.0
is_member
がTrue
(会員)なら、10%割引した価格に。そうでなければ通常価格です。
8. Python初心者が三項演算子を覚えるコツ
三項演算子は最初は難しく見えるかもしれませんが、実は書き方のルールはとてもシンプルです。
「〇〇 if △△ else ××」の形が基本だと覚えておきましょう。言葉にすると「もし△△なら〇〇、そうでなければ××」です。
最初はノートに書いたり、音読したりして覚えるのも効果的です。書けば書くほど、すぐに慣れてきますよ。