Pythonで学ぶ論理演算子!完全ガイド7選

Pythonの論理演算子を図解で理解するPython
この記事は約9分で読めます。

 

【サイト内のコードはご自由に個人利用・商用利用いただけます】

この記事では、プログラムの基礎知識を前提に話を進めています。

説明のためのコードや、サンプルコードもありますので、もちろん初心者でも理解できるように表現してあります。

基本的な知識があればカスタムコードを使って機能追加、目的を達成できるように作ってあります。

※この記事は、一般的にプロフェッショナルの指標とされる『実務経験10,000時間以上』を凌駕する現役のプログラマチームによって監修されています。

サイト内のコードを共有する場合は、参照元として引用して下さいますと幸いです

※Japanシーモアは、常に解説内容のわかりやすさや記事の品質に注力しております。不具合、分かりにくい説明や不適切な表現、動かないコードなど気になることがございましたら、記事の品質向上の為にお問い合わせフォームにてご共有いただけますと幸いです。
(送信された情報は、プライバシーポリシーのもと、厳正に取扱い、処分させていただきます。)

はじめに

この記事では、Pythonで使用できる論理演算子について初心者でも理解できるように詳しく解説します。

具体的な使い方から注意点まで、Pythonコーディングの基礎をしっかりと身につけるためのガイドとなっています。

●Pythonとは

Pythonは、非常に直感的で読みやすい構文を特徴とする、汎用性の高いプログラミング言語です。

学習曲線が緩やかなため、初心者にとっては最適な言語の一つであり、Web開発、データ分析、AI、機械学習など、幅広い領域で活用されています。

●Pythonの論理演算子とは

論理演算子は、真偽値(TrueまたはFalse)を操作するための演算子です。

Pythonでは、「and」、「or」、「not」という3つの論理演算子が使用できます。

○論理演算子の一覧

「and」は、両方の条件が真である場合にのみTrueを返します。

「or」は、少なくとも一方の条件が真である場合にTrueを返します。

「not」は、真偽値を反転させます。

つまり、TrueはFalseに、FalseはTrueになります。

●論理演算子の使い方

それでは、実際に論理演算子の使用方法をサンプルコードとともに見ていきましょう。

○サンプルコード1:and演算子の使用例

このコードでは、’and’演算子を使って2つの条件が同時に真であるかどうかを確認する例を紹介します。

この例では、変数aとbが共に10以上であるかを評価しています。

a = 15
b = 20

if a >= 10 and b >= 10:
    print('Both numbers are equal to or greater than 10.')
else:
    print('At least one number is less than 10.')

上記コードを実行すると、「Both numbers are equal to or greater than 10.」と表示されます。

これは、aもbも10以上であるため、「a >= 10 and b >= 10」の評価結果がTrueとなり、if文の中身が実行されるからです。

○サンプルコード2:or演算子の使用例

このコードでは、’or’演算子を使って2つの条件のうち少なくとも1つが真であるかを確認する例を紹介します。

この例では、変数aまたはbが10以上であるかを評価しています。

a = 5
b = 20

if a >= 10 or b >= 10:
    print('At least one number is equal to or greater than 10.')
else:
    print('Both numbers are less than 10.')

このコードを実行すると、「At least one number is equal to or greater than 10.」と表示されます。

これは、bが10以上であるため、「a >= 10 or b >= 10」の評価結果がTrueとなり、if文の中身が実行されるからです。

○サンプルコード3:not演算子の使用例

このコードでは、’not’演算子を使って真偽値を反転させる例を紹介します。

この例では、変数aが10未満であるかを評価しています。

a = 5

if not a >= 10:
    print('The number is less than 10.')
else:
    print('The number is equal to or greater than 10.')

このコードを実行すると、「The number is less than 10.」と表示されます。

これは、aが10未満であるため、「not a >= 10」の評価結果がTrueとなり、if文の中身が実行されるからです。

●論理演算子の応用例

Pythonの論理演算子は、単独で使用するだけでなく、さまざまな方法でコードに組み込むことが可能です。

これらの演算子をうまく利用することで、より複雑な条件を効率的に処理することが可能になります。

○サンプルコード4:複数の論理演算子を組み合わせた例

下記のコードでは、and演算子とor演算子を組み合わせています。

この例では、”x”が0より大きく、10以下または20以上の時に”True”を返すようにしています。

x = 25
if (x > 0 and x <= 10) or x >= 20:
    print(True)
else:
    print(False)

上記のコードを実行すると、”x”が25であるため、”True”が出力されます。

これは、”x”が20以上の条件に合致するからです。

一方、もし”x”が例えば15であれば、どの条件にも合致しないため、”False”が出力されます。

○サンプルコード5:条件文と論理演算子の組み合わせ

次に、論理演算子を条件文と組み合わせた使用例を見てみましょう。

下記のコードでは、変数”x”と”y”の値によって、異なるメッセージを出力します。

x = 10
y = 20
if x > 0 and y > 0:
    print("xとyは共に正の数です")
elif x > 0 and y <= 0:
    print("xは正の数で、yは正の数ではありません")
elif x <= 0 and y > 0:
    print("xは正の数ではなく、yは正の数です")
else:
    print("xとyは共に正の数ではありません")

上記のコードでは、”x”と”y”が共に正の数であるため、”xとyは共に正の数です”と出力されます。

○サンプルコード6:リストと論理演算子の組み合わせ

論理演算子は、リストと組み合わせて使用することも可能です。

下記のコードでは、リスト内の要素が特定の条件を満たすかどうかを判定しています。

numbers = [10, 20, 30, 40, 50]
if numbers[0] < 15 and numbers[-1] > 45:
    print(True)
else:
    print(False)

上記のコードを実行すると、”True”が出力されます。

これは、リストの最初の要素が15より小さく、最後の要素が45より大きいという条件を満たしているからです。

○サンプルコード7:関数内での論理演算子の使用例

最後に、関数内で論理演算子を使用した例を見てみましょう。

下記のコードでは、関数内で複数の条件を判定して、結果を返しています。

def check_number(x):
    if x > 0 and x % 2 == 0:
        return "正の偶数です"
    elif x > 0 and x % 2 != 0:
        return "正の奇数です"
    else:
        return "正の数ではありません"

print(check_number(10))
print(check_number(15))
print(check_number(-10))

上記のコードを実行すると、それぞれの数値に対応した結果が出力されます。

具体的には、「10」は”正の偶数です”、「15」は”正の奇数です”、そして「-10」は”正の数ではありません”と表示されます。

●注意点と対処法

Pythonの論理演算子を使用する際には、いくつかの注意点とその対処法を頭に入れておくと、より効率的なコーディングが可能になります。

まず第一に、論理演算子の結果は必ず真偽値(True/False)を返すという点です。

しかし、Pythonの論理演算子は「短絡評価(short-circuit evaluation)」という特性を持っています。

これは、複数の条件がある場合に先に評価された条件だけで結果が確定すると、それ以降の条件は評価されないというものです。

x = 10
y = 0
if x > 0 and y != 0 and (x / y) > 1:
    print("条件を満たします")
else:
    print("条件を満たしません")

上記のコードでは、”y”が0であるため、”x / y”という演算はゼロ除算エラーを引き起こします。

しかし、「and」演算子の短絡評価により、”y != 0″の評価がFalseとなるところで評価が終了し、エラーを回避することができます。

したがって、このコードは”条件を満たしません”と出力します。

第二に、論理演算子の優先順位に注意が必要です。

Pythonでは、”not”、”and”、”or”の順に優先順位が高くなっています。

そのため、これらの演算子を一緒に使うときは、適切に括弧を使用して意図した通りの評価順序になるようにしましょう。

下記のコードでは、括弧を使用して評価順序を明示的に指定しています。

x = 10
y = 20
z = 30
if (x > y and x > z) or (y > x and y > z):
    print("xまたはyが最大値です")
else:
    print("zが最大値です")

上記のコードでは、”z”が最大値であるため、”zが最大値です”と出力されます。

括弧を使用していない場合、演算子の優先順位により期待しない結果を得る可能性があります。

まとめ

この記事では、「Pythonで学ぶ論理演算子!完全ガイド7選」と題して、Pythonの論理演算子について詳しく解説してきました。

Pythonの論理演算子は、「and」、「or」、「not」の3つで、これらを使うことで複数の条件を組み合わせた複雑な条件判断を行うことができます。

まずは論理演算子の基本的な使い方を学び、その後、これらを使った具体的なコードの例を通じて応用の仕方を理解していきました。

また、論理演算子を使う際に注意すべき点やその対処法についても説明しました。

具体的には、「短絡評価(short-circuit evaluation)」という論理演算子の特性により、複数の条件の評価を効率よく行うことができること、また論理演算子の優先順位に注意することで意図しない結果を避けることができることを学びました。

Pythonの論理演算子は、これらの特性を理解することでより効果的に使いこなすことができます。

この記事が、Pythonの論理演算子の理解と活用の一助となれば幸いです。

今後もPythonを学んでいく中で、この記事が参考になる場面が多々あることでしょう。

それは、論理演算子がPythonだけでなく、他の多くのプログラミング言語でも共通して使用される基本的な要素だからです。

Pythonコーディングの基礎をしっかりと身につけるためのガイドとして、是非活用してみてください。

最後に、Python学習は一歩一歩着実に進むことが大切です。

それぞれの要素を理解し、積み重ねていくことで、より大きなプログラムを書く力が身につきます。

論理演算子の理解と活用もその一部です。

これからもPythonの学習を頑張って進めていきましょう。