この遊園地の別の乗り物では、「10歳以下の方と、80歳以上の方はご遠慮ください」と書かれています。この条件は、
- 年齢が10以下である
- 年齢が80以上である
という条件の、どちらかが満たされていれば搭乗禁止、ということになります。
年齢を示すデータが変数 age
に代入されているとすると、下限となる年齢のチェックは <=
記号を使って次のように書けます。
age <= 10
この式は、age
が 10
以下の値なら True
となり、10
より大きければ False
となります。
上限のチェックは次のように書けます。
80 <= age
この式は、age
が 80
以上の値なら True
となり、80
より小さければ False
となります。
この2つの条件のどちらか一方でも真なら、搭乗禁止ということになります。これをプログラムで書いてみましょう。
or
演算子を使うと、この2つの条件のどちらか一方が真となるかどうかを調べられます。
age = 90 # 年齢を90歳とする
if (age <= 10) or (80 <= age):
print("ご遠慮ください")
else:
print("お乗りいただけます")
or
演算子は、左右に指定された値のどちらか一方、または両方が True
の場合、True
を返します。 両方が False
なら、or
演算子も False
となります。
上の例では、if
文の条件式として、
(age <= 10) or (80 <= age)
と指定しています。age
の値は 90
ですから、age <= 10
の結果は False
となります。一方、80 <= age
の結果は True
となります。一方の値が True
なので、or
演算子の最終的な値は True
となります。
ここで、age
に指定した年齢を 90
から 50
に変更したらどうなるでしょう?
age = 50 # 年齢を50歳とする
if (age <= 10) or (80 <= age):
print("ご遠慮ください")
else:
print("お乗りいただけます")
この場合、age <= 10
という比較の結果は False
、 80 <= age
という比較の結果もFalse
となります。両方の値が False
となったので、 or
演算子の最終的な値は False
となり、else
節の print("お乗りいただけます")
が実行されます。
論理和¶
次のように、変数 A
と 変数 B
の or
演算を行い、結果を変数 C
に代入すると、
C = A or B
変数 C
の値は、A
と B
の値によって次のようになります。
C | A | B |
---|---|---|
False | False | False |
True | False | True |
True | True | False |
True | True | True |
A
と B
の両方が False
のときのみ、結果 C
の値が False
となることを確認してください。
or
のように、すべての入力値が False
のときのみ結果が False
となる論理演算は、論理和 ともいいます。