条件分岐処理においてよく使われるものとして、比較演算子とは別に論理演算子(ブール演算子)というものがあります。これは 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ではありません")
プログラムを実行して色々な入力値を試してみてください。