Pythonの三項演算子とは?一行で条件分岐を記述する方法
生徒
「Pythonのプログラムって、もし〜なら…って書くとき、もっと短く書ける方法はありますか?」
先生
「はい、Pythonでは『三項演算子』という記述方法を使うと、一行で条件分岐を書くことができますよ。」
生徒
「三項演算子?なんだか難しそうな名前ですね…。簡単に教えてもらえますか?」
先生
「もちろん!まずは三項演算子の基本的な書き方から説明しましょう。」
1. 三項演算子とは?初心者向けにやさしく解説
Pythonの三項演算子とは、「もし条件が成り立てばこの結果、そうでなければ別の結果」という条件分岐を、一行で分かりやすく書ける文法です。通常は複数行になるif文を、短くまとめられるため、シンプルな判定処理によく使われます。
正式には「条件式付きの代入」とも呼ばれ、英語では「conditional expression(条件式)」と表現されます。プログラム初心者の方は、「短く書けるif文の形」と考えるとイメージしやすいでしょう。
たとえば、次のようなとても身近な条件を考えてみます。
- 年齢が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を返す
ここで大事なのは、三項演算子は「文章を短くするため」ではなく、条件によって選ぶ値を決めるための書き方だという点です。つまり、結果として何か一つの値が決まり、その値を表示したり、変数に入れたりするのに向いています。
たとえば、天気が晴れなら「外へ行く」、そうでなければ「家にいる」と決めたい場合は、次のように書けます。プログラミング未経験の方でも、言葉の並びをそのまま読めば意味がつかめる形です。
is_sunny = False
plan = "外へ行く" if is_sunny else "家にいる"
print(plan)
家にいる
この例では、is_sunnyがTrueなら前の言葉が選ばれ、Falseならelseの後ろが選ばれます。このように三項演算子は、あくまで「値を選ぶ」ための表現であり、「何かの処理をする」目的だけで使うのは避けたほうが分かりやすくなります。
3. 具体的な使用例:買い物の割引判定
たとえば、買い物をしたときの合計金額によって、画面に出すメッセージを切り替えたい場面を考えてみましょう。 「合計が5000円以上なら割引の対象」「5000円未満なら割引なし」といった判定は、ネット通販やレジの計算などでもよく出てくる分かりやすい例です。
まず、合計金額をtotalという変数に入れておき、その金額が条件を満たしているかどうかで表示を変えます。三項演算子を使うと、次のように一行で書けます。
total = 4800
print("割引対象" if total >= 5000 else "割引なし")
割引なし
この例では、totalが5000以上なのであれば「割引対象」が選ばれ、そうでなければ「割引なし」が選ばれます。
つまり、三項演算子は「条件に合うほうの言葉を選んで表示する」というイメージで理解すると、プログラミング未経験の方でも扱いやすくなります。
試しにtotalを5200のように変えて実行すると、表示が「割引対象」に変わるはずです。数字を変えるだけで結果が切り替わるので、動きを確認しながら覚えるのにぴったりです。
4. 変数に代入するパターン
三項演算子は、条件によって変数に入れる値を切り替えたい場合に特に便利です。 if文を使うと数行になる処理でも、三項演算子なら一行で完結するため、コードの流れが追いやすくなります。
たとえば、テストの点数によって「合格」か「不合格」を判定し、その結果を変数に入れたい場合を考えてみましょう。 点数が七十点以上なら合格、それ未満なら不合格という、とても基本的な条件です。
score = 85
result = "合格" if score >= 70 else "不合格"
print(result)
合格
このコードでは、scoreの値を条件として判定し、その結果に応じた文字列が
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 ××」の形が基本だと覚えておきましょう。言葉にすると「もし△△なら〇〇、そうでなければ××」です。
最初はノートに書いたり、音読したりして覚えるのも効果的です。書けば書くほど、すぐに慣れてきますよ。
まとめ
Pythonの三項演算子を使った条件分岐の考え方を整理しよう
ここまで、Pythonの三項演算子について、基本的な仕組みから具体的な使い方、注意点までを順番に学んできました。三項演算子は、「もし条件が成り立つならこの値、そうでなければ別の値」という条件分岐を、一行で簡潔に表現できるPythonならではの書き方です。通常のif文と比べてコード量が少なくなり、シンプルな条件分岐であれば読みやすさも向上します。
Pythonの三項演算子は、「値1 if 条件式 else 値2」という形が基本です。この書き方を理解することで、条件によって結果となる値を切り替える処理を、直感的に記述できるようになります。特に、変数への代入や、画面への簡単な表示処理などでは、三項演算子が非常に活躍します。条件がTrueかFalseかによって結果を分けたいだけの場合、if文を何行も書く必要がなくなります。
また、三項演算子は計算処理とも相性が良く、条件に応じて計算結果を変えたい場面でも自然に使えます。会員かどうかで価格を変える、点数によって評価を変えるなど、現実的な処理を短いコードで表現できる点は、大きなメリットです。こうした使い方を覚えることで、Pythonのコード全体がすっきりと整理され、読み手にも意図が伝わりやすくなります。
一方で、三項演算子は万能ではありません。条件が増えたり、分岐が複雑になったりすると、かえって読みにくくなってしまいます。そのような場合は、無理に三項演算子を使わず、通常のif文やelifを使った方が安全です。コードは短さだけでなく、理解しやすさや保守のしやすさも重要です。三項演算子は「シンプルな条件分岐」に限定して使うことが、上手な活用のポイントといえるでしょう。
Python初心者のうちは、まず「もし条件なら〇〇、そうでなければ××」という日本語の感覚と、三項演算子の構文を結びつけて覚えることが大切です。何度も書いて、実際に動かしながら確認することで、自然と使いどころが分かってくるようになります。三項演算子を理解することは、Pythonの条件分岐をより柔軟に扱えるようになる第一歩です。
三項演算子を使ったシンプルなサンプル
ここで、三項演算子の考え方を整理できる簡単なサンプルを見てみましょう。条件によって表示内容を切り替えるだけの処理であれば、三項演算子はとても読みやすく書けます。
temperature = 30
message = "暑い" if temperature >= 25 else "涼しい"
print(message)
このように、条件と結果の対応関係がはっきりしている場合は、三項演算子を使うことでコードの意図が一目で分かります。日常的な判定処理や、簡単な条件チェックには、積極的に取り入れていくと良いでしょう。
生徒
「三項演算子は難しそうだと思っていましたが、日本語にすると分かりやすいですね。短い条件分岐なら、とても便利だと感じました。」
先生
「その通りです。三項演算子は、条件と結果がシンプルなときに使うと、コードがすっきりします。」
生徒
「でも、条件が多くなると逆に読みにくくなりそうなので、if文との使い分けが大事なんですね。」
先生
「とても良い気づきです。短く書くことよりも、後から見て理解しやすいことを意識しましょう。」
生徒
「これからは、簡単な条件判定には三項演算子、複雑な場合はif文を使うように意識してみます。」
先生
「その判断ができるようになれば、Pythonの条件分岐はもう安心ですね。ぜひ実践で使ってみてください。」