MENU

【Python】andとorの使い方を解説

プログラミング言語Pythonでは、論理演算子としてandとorが利用できます。

これらの演算子は、条件分岐やデータフィルタリングなど、様々な場面で活躍します。

本記事では、Pythonのand演算子とor演算子の基本的な使い方から注意点まで詳しく解説し、その違いや実践的な使い方を紹介します。

目次から探す

Pythonの論理演算子

Pythonには、論理演算子と呼ばれるものがあります。

論理演算子は、主に条件分岐やループなどの制御構造で使用されます。

この記事では、Pythonの論理演算子のうち、andorについて詳しく解説します。

and演算子

and演算子の基本概念

and演算子は、複数の条件がすべて真(True)である場合に真(True)を返す論理演算子です。

逆に、条件のうち1つでも偽(False)であれば、偽(False)を返します。

and演算子の使用例

以下に、and演算子を使用したサンプルコードを示します。


age = 25
is_student = True
if age >= 20 and is_student:
    print("20歳以上で学生です")
else:
    print("条件に合致しません")

このコードでは、ageが20以上かつis_studentがTrueである場合に、”20歳以上で学生です”と表示されます。

どちらか一方でも条件に合致しない場合は、”条件に合致しません”と表示されます。

and演算子の注意点

and演算子は、すべての条件が真である場合に真を返すため、条件が多くなるほど真になる確率が低くなります。

そのため、条件が多い場合は、適切に条件を分割して考えることが重要です。

or演算子

or演算子の基本概念

or演算子は、複数の条件のうち1つでも真(True)であれば真(True)を返す論理演算子です。

逆に、すべての条件が偽(False)である場合に、偽(False)を返します。

or演算子の使用例

以下に、or演算子を使用したサンプルコードを示します。


weather = "rainy"
umbrella = False
if weather == "rainy" or umbrella:
    print("雨が降っているか、傘を持っています")
else:
    print("条件に合致しません")

このコードでは、weatherが”rainy”であるか、umbrellaがTrueである場合に、”雨が降っているか、傘を持っています”と表示されます。

どちらも条件に合致しない場合は、”条件に合致しません”と表示されます。

or演算子の注意点

or演算子は、条件のうち1つでも真であれば真を返すため、条件が多くなるほど真になる確率が高くなります。

そのため、条件が多い場合でも、適切に条件を分割して考えることが重要です。

また、or演算子を使用する際は、条件の優先順位を考慮して適切な括弧を使用することが重要です。

andとorの違い

and演算子とor演算子は、どちらもPythonの論理演算子ですが、それぞれ異なる挙動を示します。

この章では、andとorの違いについて、真理値表を用いた比較、条件分岐における挙動の違い、複数条件の組み合わせについて解説します。

真理値表による比較

and演算子とor演算子の違いを理解するために、まずは真理値表を見てみましょう。

ABA and BA or B
TrueTrueTrueTrue
TrueFalseFalseTrue
FalseTrueFalseTrue
FalseFalseFalseFalse

and演算子は、両方の条件がTrueの場合にのみTrueを返します。

それ以外の場合はFalseを返します。

一方、or演算子は、どちらか一方の条件がTrueの場合にTrueを返します。

両方の条件がFalseの場合にのみFalseを返します。

条件分岐における挙動の違い

次に、条件分岐におけるand演算子とor演算子の挙動の違いを見てみましょう。


age = 20
is_student = True
if age >= 18 and is_student:
    print("学生で18歳以上です。")
else:
    print("条件に合致しません。")

上記の例では、ageが18以上であり、かつis_studentがTrueである場合に、学生で18歳以上です。と表示されます。

どちらか一方でも条件に合致しない場合は、条件に合致しません。と表示されます。


age = 20
is_student = False
if age >= 18 or is_student:
    print("18歳以上または学生です。")
else:
    print("条件に合致しません。")

上記の例では、ageが18以上であるか、is_studentがTrueである場合に、18歳以上または学生です。と表示されます。

どちらの条件も合致しない場合は、条件に合致しません。と表示されます。

複数条件の組み合わせ

and演算子とor演算子は、複数の条件を組み合わせて使用することができます。

以下に例を示します。


age = 20
is_student = True
has_job = False
if age >= 18 and is_student and not has_job:
    print("学生で18歳以上で、仕事を持っていません。")
else:
    print("条件に合致しません。")

上記の例では、ageが18以上であり、is_studentがTrueであり、かつhas_jobがFalseである場合に、学生で18歳以上で、仕事を持っていません。と表示されます。

どれか一つでも条件に合致しない場合は、条件に合致しません。と表示されます。

このように、and演算子とor演算子を組み合わせて、複雑な条件分岐を実現することができます。

ただし、複数の条件を組み合わせる際は、適切にカッコを使用して、演算子の優先順位を明確にすることが重要です。

1 2
目次から探す