Pythonの条件分岐文で使える論理演算子

Pythonの条件分岐文で使える論理演算子

条件分岐処理においてよく使われるものとして、比較演算子とは別に論理演算子(ブール演算子)というものがあります。これは 2 つの条件式が両方とも True かどうかや、片方のみ True かどうか、条件式を満たさないかどうか、という判定に使われます。

目次

and(論理積)

条件式1 and 条件式2

andは両方の条件式がTrueの場合のみTrueを返すという演算子です。

例えば次のように書くと、入力された値が12以上かつ15以下だった時に条件がTrueとなり「あなたは中学生ですね」と表示されます。

age = int(input("あなたの年齢は?"))
if age >= 12 and age <= 15:
    print("あなたは中学生ですね")
else:
    print("あなたは中学生ではないですね")

プログラムを実行して標準入力から13と入力すると次のように表示されます。

あなたの年齢は?13
あなたは中学生ですね

or(論理和)

条件式1 or 条件式2

or を使うと条件式のどちらか一方Trueであれば式全体がTrueとなります。

例えば次のように書くと入力された値が12未満または15を超える時に条件がTrueとなり「あなたは中学生ではないですね」と表示されます。

age = int(input("あなたの年齢は?"))
if age < 12 or age > 15:
    print("あなたは中学生ではないですね")
else:
    print("あなたは中学生ですね")

実際にプログラムを実行して試してみてください。

not(否定)

not 条件式1

not は条件式がTrueの場合に式全体がFalseに、条件式がFalseの時に式全体がTrueになります。

例えば次のように書くと入力された値が20以上ではなかった時に条件がTrueとなり「あなたは未成年ですね」と表示されます。

age = int(input("あなたの年齢は?"))
if not age >= 20:
    print("あなたは未成年ですね")
else:
    print("あなたは成人ですね")

プログラムを実行して標準入力から19と入力すると次のように表示されます。

あなたの年齢は?19
あなたは未成年ですね

論理演算子を組み合わせて使う

and、or、notといった論理演算子は組み合わせて使うこともできます。

例えば次のように書くとageが15歳以上かつ34歳以下であり、さらにansがyesでない場合に条件がTrueとなり「NEET!!!」と表示されます。

age = int(input("あなたの年齢は?"))
print("""あなたは就学・就労・職業訓練のいずれかを行っていますか?
1.Yes   2.No""")

ans = input()

if age >= 15 and age <=34 and not ans == "1":
    print("NEET!!!")
else:
    print("あなたはNEETではありません")

プログラムを実行して色々な入力値を試してみてください。

このエントリーをはてなブックマークに追加

コメントを残す

頂いたコメントは一読した後表示させて頂いております。
反映まで数日かかる場合もございますがご了承下さい。