Pythonの三項演算子とは?基本構文と使い方を徹底解説
Pythonの三項演算子(条件式)を使うと、条件が真か偽かを評価し、その結果に応じて値を返すことができます。三項演算子は1行のコードで記述できるため、通常のif…else文よりも短く簡潔に書けるのが大きな特徴です。
if文などの条件分岐は、プログラムの流れを制御するために使われます。条件分岐の中のコードは、特定の条件が満たされた場合にのみ実行されます。
Pythonで条件分岐を書く最も一般的な方法はif文ですが、Pythonには1行で条件を判定できる「三項演算子」という書き方も用意されています。
この記事では、具体的なコード例を交えながら、条件分岐の基礎とPythonの三項演算子の使い方について詳しく解説します。
Pythonにおける条件分岐の基本
プログラムを書いていると、「特定の条件が満たされた場合にだけ、あるコードを実行したい」という場面によく出会います。そんなときに役立つのが条件分岐です。
Pythonでは、if文を使って条件が満たされているかどうかを判定します。
例えば、映画館のアプリで「お客様が10%割引の対象かどうか」を判定する処理を作るとしましょう。65歳以上のお客様には割引を適用し、それ以外の場合は割引なしとします。このようなプログラムは、if…else文を使えば次のように実装できます。
age = 48
if age >= 65:
discount = True
else:
discount = False
しかし、if文は少なくとも数行のコードが必要になります。判定する条件が少数であれば、より簡潔に書ける方法があります。それがPythonの三項演算子です。
Pythonの三項演算子とは
三項演算子は、Pythonにおける条件式の一種で、ある式を評価し、その結果が真(True)か偽(False)かに応じて異なる値を返します。従来のif…else文よりも簡潔に記述できるのが特徴です。
Pythonの三項演算子の構文は以下の通りです。
[if_true] if [expression] else [if_false]
この構文は3つの要素で構成されていることから「三項(ternary)演算子」と呼ばれています。各要素の意味は次の通りです。
- expression:評価される条件式
- if_true:条件式がTrueの場合に返される値
- if_false:条件式がFalseの場合に返される値
三項演算子は、変数の値を決定するためによく使われます。条件式がTrueと評価されれば変数には「if_true」の値が代入され、Falseと評価されれば「if_false」の値が代入されます。
三項演算子のイメージとしては、リスト内包表記がリストのフィルタリングを簡潔に行えるのと同じように、lambda関数が関数定義を簡潔に行えるのと同じだと考えると分かりやすいでしょう。
リスト内包表記やlambda関数は、それぞれ従来の書き方よりも効率的に処理を行う手段です。三項演算子も同様に、if文をより効率的に書くための方法だと言えます。
ただし、リスト内包表記やlambda関数と同様に、三項演算子もコードの可読性を高めるために使うべきです。乱用すると逆にコードが読みにくくなるので注意しましょう。
三項演算子の基本的な使用例
ここでもう一度、映画館の例を見てみましょう。65歳以上のお客様には割引を提供し、65歳未満のお客様には割引を適用しないものとします。お客様が割引対象かどうかを判定するには、次のようなコードを使用できます。
age = 48 discount = True if age >= 65 else False print(discount)
このコードを実行すると、次の出力が得られます。
False
まず1行目で、変数ageを宣言し、値48を代入しています。次に、三項演算子を使って、お客様が割引対象かどうかを判定しています。
三項演算子はage >= 65という式を評価します。ageは48なので、この式はFalseと評価されます。そのため、elseの後に続く値(False)が返されます。
最後に、print()関数で三項演算子の結果をコンソールに出力しています。結果として「False」が表示されます。
先ほどのif…else文の例と比較すると、この例の方が大幅にコード行数が少ないことが分かります。if…else文では5行必要だったところ、三項演算子なら3行で済みます。
この例では、三項演算子はブール値(TrueまたはFalse)を返していますが、実際には任意の値を返すことも可能です。
数値を返す三項演算子の例
次に、割引の適用可否に応じて異なる割引率を設定する例を見てみましょう。映画館ではデフォルトで全てのお客様に5%の割引を提供しており、シニア(65歳以上)には10%の割引を適用するものとします。
以下のプログラムでは、お客様がシニア割引の対象かどうかを判定し、対象外の場合は5%の割引率を設定します。
age = 22 discount = 5 if age < 65 else 10 print(discount)
このコードを実行すると、次の出力が得られます。
5
まず、変数ageに22を代入しています。
次に、三項演算子を使って、変数ageの値が65未満かどうかを判定しています。お客様は22歳なので、age < 65という式はTrueと評価されます。その結果、5%の割引率が適用されます。もしお客様が65歳以上であれば、10%の割引率が適用されていたでしょう。
最後に、print()関数で変数discountの値をコンソールに出力しています。
まとめ
Pythonの三項演算子は、単純なif文をより効率的に記述するための方法です。三項演算子は条件を評価し、その結果がTrueかFalseかに応じて特定の値を返します。
これまでの例では、if文による処理を1行で実現できました。これは、通常複数行にわたって記述する必要があるif文よりもはるかに簡潔です。
ただし、三項演算子が常に使えるわけではありません。複数の条件式を判定したい場合は、通常のif文を書く方が適切です。そうすることで、コードの可読性と理解しやすさを保つことができます。
この記事では、具体例を交えながら、Pythonの三項演算子の基礎と仕組みについて解説しました。これで、プロのように三項演算子を使いこなすための知識が身についたはずです。
Pythonの学習をさらに進めたい方は、ぜひ「Pythonの学び方 完全ガイド」も参考にしてください。
-
PythonでHello Worldを表示する方法:初心者向けステップバイステップガイド
Pythonの「Hello World」プログラムは、多くのプログラマーが最初に書くプログラムです。print文を使って文字列をコンソールに表示するだけのシンプルなもので、コードは print(Hello World) の1行のみです。 Pythonが正しくインストールされているかを確認するには、まず「Hello World」を書いてみるのがおすすめです。作成方法は主に2つあります。ターミナル(コマンドライン)を使う方法と、Visual Studio CodeやVimなどのコードエディタを使う方法です。 始める前に、お使いのマシンにPython 3がインストールされていることを確認しておき
-
Pythonには三項条件演算子はある?使い方をわかりやすく解説
Pythonにも、他の多くのプログラミング言語でいう「三項条件演算子」に相当する機能があります。Pythonでは「条件式(conditional expression)」と呼ばれ、Python 2.5から導入されました。基本構文Pythonの条件式は、次のような形式で記述します。x if 条件式 else yこの式は、条件式が True の場合に x を返し、False の場合に y を返します。C言語などでよく見られる condition ? x : y という形式とは順序や書き方が異なるため、最初は少し戸惑うかもしれませんが、英語の文章のように自然に読めるのが特徴です。使用例以下の例では、