この遊園地の別の乗り物では、「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 となる論理演算は、論理和 ともいいます。