【Python】論理演算子の書き方と使い方の基本

作成日: 更新日:

開発環境

  • Python version: python 3.10.11

Pythonの論理演算子とは

Pythonの論理演算子とは、論理演算を指示するための演算子式です。 trueとfalseの2つの値を扱い、否定(not)、論理和(or)、論理積(and)の3つの論理演算子を使用し、複数の条件式が最終的に「true」なのか「false」なのかを返します。 公式リファレンス:https://docs.python.org/ja/3/reference/expressions.html#value-comparisons

Pythonの論理演算子の書き方

Pythonの論理演算子の書き方は下記になります。

1式1 論理演算子 式2

論理演算子の一覧

Pythonで定義されている論理演算子の一覧は下記となります。

1not x     # x が True なら False、x が False なら Trueを返します。
2x and y   # x と y 両方の条件がTrueの場合に True を返します。
3x or y    # x または y 少なくとも一方の条件が True の場合に True を返します。

これらの演算子は真偽値を受け取り、それに基づいて新しい真偽値を返します。 例えば、x and yは、xyがともにTrueであればTrueを返し、それ以外の場合はFalseを返します。

論理演算子の優先順位

Pythonには優先順位があります。以下は主な演算子の優先順位の一覧です。

演算子説明
(expressions...), [expressions...], {key: value...}, {expressions...}式結合またはタプル表示、リスト表示、辞書表示、集合表示
x[index], x[index:index], x(arguments...), x.attribute添字指定、スライス操作、呼び出し、属性参照
await xAwait 式
**べき乗
+x, -x, ~x正数、負数、ビット単位 NOT
*, @, /, //, %乗算、行列乗算、除算、切り捨て除算、剰余
+, -加算および減算
<<, >>シフト演算
&ビット単位 AND
^ビット単位 XOR
in, not in, is, is not, <, <=, >, >=, !=, ==所属や同一性のテストを含む比較
not xブール演算 NOT
andブール演算 AND
orブール演算 OR
if -- else条件式
lambdaラムダ式

Pythonの演算子は上から順に優先順位が高くなります。例えば、論理演算子は比較演算子や算術演算子よりも優先順位が高いです。 演算子の優先順位は、数式を評価するときにどの演算を先に行うかを決定します。そのため、適切な優先順位を理解していないと、意図しない結果が生じる可能性があるため、注意が必要です。

Pythonの論理演算子の使い方

Pythonの論理演算子の使い方について解説していきます。

1# (否定)
2print(not True)        # False
3print(not False)       # True
4
5# (論理積)
6print(True and True)   # True
7print(True and False)  # False
8print(False and False) # False
9
10# (論理和)
11print(True or True)   # True
12print(True or False)  # True
13print(False or False) # False

上記のコードでは、複数の条件を組み合わせて真偽を判定し、それぞれの論理演算子の計算結果を出力しています。 また、論理演算子を応用したサンプルコードは下記になります。

1# 国語・数学・理科・社会・英語の配列
2scores = [78,82,92,71,83]
3
4# 5教科の平均点を計算
5average_score = sum(scores) / len(scores)
6
7# 一番低い点数を求める
8lowest_score = min(scores)
9
10# 判定して結果を出力
11if average_score >= 80 and lowest_score >= 60:
12    print("合格")
13else:
14    print("不合格")

5教科の平均が80点以上、かつ、60点未満がない場合は「合格」、それ以外は「不合格」とするサンプルコードです。

おわりに

Pythonの論理演算子の使い方について解説しましたが、いかがでしたでしょうか? Pythonの論理演算子をマスターすることで、論理演算に基づいた真偽値を条件とした処理の分岐をより効果的に制御できるようになります。 論理演算子はプログラミングの基本であり、条件に応じて適切な結果を得るために重要な基本を身に着けていきましょう。

【Python】論理演算子の書き方と使い方の基本 | いっしー@Webエンジニア