開発環境
- 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で定義されている論理演算子の一覧は下記となります。
1 2 3 | not x # x が True なら False、x が False なら Trueを返します。 x and y # x と y 両方の条件がTrueの場合に True を返します。 x or y # x または y 少なくとも一方の条件が True の場合に True を返します。 |
これらの演算子は真偽値を受け取り、それに基づいて新しい真偽値を返します。
例えば、x and y
は、x
とy
がともにTrue
であればTrue
を返し、それ以外の場合はFalse
を返します。
論理演算子の優先順位
Pythonには優先順位があります。以下は主な演算子の優先順位の一覧です。
演算子 | 説明 |
---|---|
(expressions...), [expressions...], {key: value...}, {expressions...} | 式結合またはタプル表示、リスト表示、辞書表示、集合表示 |
x[index], x[index:index], x(arguments...), x.attribute | 添字指定、スライス操作、呼び出し、属性参照 |
await x | Await 式 |
** | べき乗 |
+x, -x, ~x | 正数、負数、ビット単位 NOT |
*, @, /, //, % | 乗算、行列乗算、除算、切り捨て除算、剰余 |
+, - | 加算および減算 |
<<, >> | シフト演算 |
& | ビット単位 AND |
^ | ビット単位 XOR |
| | ビット単位 OR |
in, not in, is, is not, <, <=, >, >=, !=, == | 所属や同一性のテストを含む比較 |
not x | ブール演算 NOT |
and | ブール演算 AND |
or | ブール演算 OR |
if -- else | 条件式 |
lambda | ラムダ式 |
Pythonの演算子は上から順に優先順位が高くなります。例えば、論理演算子は比較演算子や算術演算子よりも優先順位が高いです。
演算子の優先順位は、数式を評価するときにどの演算を先に行うかを決定します。そのため、適切な優先順位を理解していないと、意図しない結果が生じる可能性があるため、注意が必要です。
Pythonの論理演算子の使い方
Pythonの論理演算子の使い方について解説していきます。
1 2 3 4 5 6 7 8 9 10 11 12 13 | # (否定) print(not True) # False print(not False) # True # (論理積) print(True and True) # True print(True and False) # False print(False and False) # False # (論理和) print(True or True) # True print(True or False) # True print(False or False) # False |
上記のコードでは、複数の条件を組み合わせて真偽を判定し、それぞれの論理演算子の計算結果を出力しています。
また、論理演算子を応用したサンプルコードは下記になります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | # 国語・数学・理科・社会・英語の配列 scores = [78,82,92,71,83] # 5教科の平均点を計算 average_score = sum(scores) / len(scores) # 一番低い点数を求める lowest_score = min(scores) # 判定して結果を出力 if average_score >= 80 and lowest_score >= 60: print("合格") else: print("不合格") |
5教科の平均が80点以上、かつ、60点未満がない場合は「合格」、それ以外は「不合格」とするサンプルコードです。
おわりに
Pythonの論理演算子の使い方について解説しましたが、いかがでしたでしょうか?
Pythonの論理演算子をマスターすることで、論理演算に基づいた真偽値を条件とした処理の分岐をより効果的に制御できるようになります。
論理演算子はプログラミングの基本であり、条件に応じて適切な結果を得るために重要な基本を身に着けていきましょう。