Pythonの三項演算子(条件式)とは?一行で条件分岐を記述する方法
生徒
「Pythonで、もし〇〇なら〜、そうじゃなかったら〜って、短く書く方法ってあるんですか?」
先生
「ありますよ。Pythonでは『三項演算子』という便利な書き方を使えば、一行で条件分岐を表現できます。」
生徒
「えっ?一行で?どういうことか、もう少し詳しく教えてもらえますか?」
先生
「もちろんです。初心者でもわかるように、三項演算子の使い方を基本から丁寧に説明しますね。」
1. 三項演算子(条件式)とは?
Python(パイソン)には、三項演算子と呼ばれる特別な書き方があります。これは、「もし〜なら〇〇、そうでなければ△△」という条件分岐を、たった1行で書ける便利な構文です。
ふつうの条件分岐(if文)では、次のように複数行で書きます:
age = 18
if age >= 20:
message = "大人です"
else:
message = "未成年です"
このように、ifとelseを使って2つの条件に分けています。ですが、三項演算子を使うと、次のように1行で書けます:
message = "大人です" if age >= 20 else "未成年です"
とてもコンパクトですよね!これが、Pythonの三項演算子(条件式)です。
2. 三項演算子の基本構文を覚えよう
三項演算子の書き方は、次のような順番になります:
「真の場合の値」 if 「条件」 else 「偽の場合の値」
ポイントは、「もし条件が真(True)なら、〇〇を使う。そうじゃなければ△△を使う」という意味になります。
たとえば、Pythonでお店の割引を考えるとしましょう。
price = 1000
member = True
final_price = price * 0.9 if member else price
print(final_price)
900.0
member(会員)がTrueなら10%引き、そうでなければ定価、という処理になります。
3. 三項演算子はどんなときに使うの?
三項演算子は、次のような場面でよく使われます:
- ちょっとした条件によって値を決めたいとき
- 変数の値を条件付きで代入したいとき
- 複数行書くほどではない簡単な条件分岐のとき
逆に、複雑な処理や複数の条件がある場合は、普通のif文を使ったほうが読みやすいです。
4. 三項演算子の具体的な使用例を見てみよう
例1:試験の点数によって合格・不合格を判定する
score = 75
result = "合格" if score >= 60 else "不合格"
print(result)
合格
例2:偶数か奇数かを判定する
num = 7
kind = "偶数" if num % 2 == 0 else "奇数"
print(kind)
奇数
例3:ログインしているかどうかで表示メッセージを切り替える
logged_in = False
message = "ログイン済み" if logged_in else "ログインしてください"
print(message)
ログインしてください
5. 三項演算子の注意点
三項演算子は便利ですが、いくつか注意点もあります。
- 複雑な条件には向いていません。長くなりすぎると逆に読みづらくなります。
- Python以外の言語では文法が違う場合もあるので、Python独自の書き方だと理解して使いましょう。
たとえば、次のように条件をネスト(入れ子)して使うと、初心者にはかなり読みにくくなります:
result = "優" if score >= 80 else "良" if score >= 60 else "不可"
このような複雑な三項演算子は、あまりおすすめできません。なるべくシンプルに使いましょう。
6. 三項演算子を使わずに同じ処理をする場合
三項演算子を使わない場合、次のようにifとelseを使って複数行で書きます:
score = 75
if score >= 60:
result = "合格"
else:
result = "不合格"
print(result)
合格
このように、三項演算子は同じことをもっと簡潔に書ける手段ということがわかりますね。
7. よくある間違いと初心者のつまずきポイント
初心者が三項演算子を使うときに、よくある間違いをご紹介します:
- 「条件」 if 「真の場合」 else 「偽の場合」と、順番を間違える
ifやelseを省略してエラーになる- 条件の判定が
TrueとFalseでどう分かれるかを理解していない
三項演算子はあくまでも「値を返す」ものなので、「〇〇をする」ではなく「〇〇になる」と覚えると理解しやすくなります。
まとめ
Pythonの三項演算子(条件式)の考え方を振り返ろう
この記事では、Pythonにおける三項演算子(条件式)について、基本から具体例、注意点まで丁寧に学んできました。 三項演算子は、「もし条件が成り立つならこの値、そうでなければ別の値」という分岐を、 一行で簡潔に表現できるPythonらしい便利な書き方です。 通常のif文と比べるとコード量が減り、シンプルな条件分岐であればとても読みやすくなります。 Python初心者にとっては最初は少し独特な構文に感じるかもしれませんが、 書き方のルールと意味を正しく理解すれば、日常的に使える強力な道具になります。
三項演算子の最大の特徴は、「処理を書く」のではなく「値を返す」という点にあります。 if文は条件によって処理の流れを分ける構文ですが、 三項演算子は条件によってどの値を使うかを決めるための式です。 そのため、変数への代入や、計算結果の切り替え、表示用メッセージの分岐など、 比較的シンプルな場面で使われることが多いのが特徴です。
if文との使い分けが大切な理由
三項演算子は非常に便利ですが、すべての条件分岐を置き換えるものではありません。 条件が複雑になったり、処理内容が多くなったりすると、 一行で書かれた条件式はかえって読みにくくなります。 そのような場合は、無理に三項演算子を使わず、 通常のif文やelif、elseを使ったほうが可読性が高くなります。 「短く書けるから使う」のではなく、「読みやすいかどうか」を基準に使い分けることが重要です。
特に初心者のうちは、三項演算子をネスト(入れ子)して使う書き方は避けたほうがよいでしょう。 条件式が連続すると、どの条件でどの値が返るのかが直感的に分かりにくくなります。 Pythonは「読みやすさ」を重視する言語なので、 将来の自分や他人が見たときに理解しやすいコードを書く意識を持つことが大切です。
三項演算子を使ったサンプルプログラム
ここで、三項演算子の基本的な使い方を改めて確認できるサンプルプログラムを見てみましょう。 ユーザーの点数によって評価メッセージを切り替える、よくある例です。
score = int(input("点数を入力してください:"))
message = "合格です" if score >= 60 else "不合格です"
print(message)
このように、条件によって代入する値を切り替えたいだけの場合、 三項演算子を使うと非常にスッキリとしたコードになります。 if文で書いた場合と処理内容は同じでも、 コードの見た目や書き方が大きく変わる点がよく分かります。
三項演算子を理解することで広がるPythonの表現力
三項演算子を正しく使えるようになると、 Pythonで書けるコードの表現力が一段階レベルアップします。 条件分岐を「処理の流れ」としてだけでなく、 「値を決める仕組み」として捉えられるようになるためです。 これは、リスト内包表記や関数の戻り値、表示用の文字列生成など、 さまざまな場面で役立つ考え方です。
Pythonの三項演算子は、シンプルでありながら奥が深い構文です。 基本形をしっかり身につけ、適切な場面で使えるようになることで、 より読みやすく、洗練されたPythonコードが書けるようになります。
生徒「三項演算子って、最初は難しそうに見えましたけど、意味が分かると便利ですね。」
先生「そうだね。短い条件分岐にはとても向いている書き方なんだ。」
生徒「if文と違って、値を決めるための書き方だっていうのが印象的でした。」
先生「そこに気づけたのは大きいよ。使い分けができると、コードがぐっと読みやすくなる。」
生徒「無理に一行で書こうとしないことも大事なんですね。」
先生「その通り。Pythonでは、分かりやすさを大切にしながら三項演算子を活用していこう。」