このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。

【Python入門】ブール演算子を使った比較

ブール演算子を使った比較

 Pythonでは、複数の条件を組み合わせるためにブール演算子(論理演算子)を活用します。ブール演算子は、複雑な比較を1つの式で記述する際に非常に有用で、その結果は常に真(True)か偽(False)の真偽値となります。ここでは、ブール演算子の基本的な使い方や、実際のプログラム例、さらに短絡評価(ショートサーキット)の挙動について解説します。数値の比較や年齢を用いた例を用いて具体的に解説していきます。

プログラムのダウンロード

 「ダウンロード」から、JupyterLab で実行できるサンプルプログラムがダウンロードできます。ファイルは、ESET Endpoint Securityでウイルスチェックをしておりますが、ダウンロードとプログラムの実行は自己責任でお願いいたします。

1.ブール演算子の基本

 Pythonで使われる代表的なブール演算子は以下の通りです。これらの演算子は、複数の比較や条件式を組み合わせる際に使用されます。

演算子使い方結果がTrueになる条件
andA and BAもBもTrueである場合のみTrue
orA or BAまたはBのいずれかがTrueの場合にTrue
notnot AAがFalseの場合にTrue

2.数値の比較を用いた例

 例えば、年齢を使って「投票権があるかどうか」を判定する場合、次のようなプログラムが考えられます。

age = 20

# and の利用例:年齢が18歳以上なら投票可能と表示する
print(age >= 18 and "投票可能です")  # 20 >= 18 は True なので "投票可能です" が表示される

# ショートサーキットの例:年齢が18歳未満の場合、右側の処理は実行されずFalseが返る
age = 16
result = age >= 18 and print("投票可能です")
print(result)  # 結果は False(printは実行されず)

解説

  • and 演算子は、最初の条件がFalseの場合、後ろの処理を評価しません(ショートサーキット)。
  • 例では、age >= 18 の結果がTrueであれば、"投票可能です"が出力され、Falseの場合はそのままFalseが出力されます。

3.or 演算子を使った例

 次は、or演算子を利用して条件を評価する例です。例えば、年齢が18歳未満なら「投票権がありません」と表示する例です。

age = 16

# or の利用例:年齢が18歳以上なら条件成立で右側の処理は実行されず、そうでなければメッセージが表示される
print(age >= 18 or "投票権がありません")  # 16 >= 18 は False なので "投票権がありません" が表示される

解説

  • or 演算子は、最初の条件がTrueの場合、後ろの処理を評価しないため、余計な処理を省くことができます。
  • 上記例では、年齢が16歳なので、or 演算子の右側のメッセージが表示されます。

4.not 演算子を使った例

 not 演算子は、条件の真偽を反転させます。以下の例は、ある条件がFalseであることを確認する例です。

age = 16

# not を利用して、年齢が18歳以上ではないことを確認する
print(not (age >= 18))  # 16 >= 18 は False なので not False は True となる

解説

  • not 演算子は、条件の結果を逆転させます。
  • この例では、age >= 18 がFalseであるため、not を適用するとTrueが返されます。

5.複数の比較演算子の連結

 Pythonでは、複数の比較演算子を連続して使うことができます。例えば、「ある数値が10より大きく、かつ20より小さいか」をチェックする場合、次のように記述できます。

num = 15
print(10 < num < 20)  # 10 < 15 and 15 < 20 と同じ意味になり、結果は True になる

解説

  • Pythonでは複数の比較演算子を並べて、「10 < num < 20」のような式を書くことができます。
  • 「10 < num and num < 20」と同じ意味となります。このように書けるということは、プログラムを短く簡潔にする効果と、同じ式(この場合はnum)を繰り返し書くことを回避する効果があります。これによって、冗長な記述を避け、コードを簡潔に保てます。

まとめ

 ここでは、ブール演算子を使った比較について学びました。以下の表に、主要なポイントをまとめます。

項目内容の概要
and 演算子両方の条件がTrueのときのみ、全体もTrueになる。ショートサーキットにより、最初の条件がFalseなら後は評価されない。
or 演算子どちらか一方がTrueであれば全体はTrueになる。最初の条件がTrueなら後は評価されない。
not 演算子条件の真偽を反転させる。
複数の比較演算子の連結連続した比較演算子を使うと、冗長な記述がなくなり、シンプルな条件式を作れる。
ショートサーキット条件演算子and, or は最初の評価結果によって後続の処理を省略する(不要な処理の回避に有効)。

 次のコンテンツでは、型を変換する方法について、解説をしていきます。実際にコードを書いてその動作を体験できるサンプルプログラムを作成していきます。ぜひ、実践しながら理解を深めていってください。