ゼロからのPython入門講座ブール型と論理演算子 or 演算子

ブール型と論理演算子ブール型論理演算子and 演算子or 演算子not 演算子

この遊園地の別の乗り物では、「10歳以下の方と、80歳以上の方はご遠慮ください」と書かれています。この条件は、

  1. 年齢が10以下である
  2. 年齢が80以上である

という条件の、どちらかが満たされていれば搭乗禁止、ということになります。

年齢を示すデータが変数 age に代入されているとすると、下限となる年齢のチェックは <= 記号を使って次のように書けます。

age <= 10

この式は、age10 以下の値なら True となり、10 より大きければ False となります。

上限のチェックは次のように書けます。

80 <= age

この式は、age80 以下の値なら True となり、80 より大きければ False となります。

この2つの条件のどちらか一方でも真なら、搭乗禁止ということになります。これをプログラムで書いてみましょう。

or 演算子を使うと、この2つの条件のどちらか一方が真となるかどうかを調べられます。

In [7]:
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 に変更したらどうなるでしょう?

In [2]:
age = 50   # 年齢を50歳とする

if (age <= 10) or (80 <= age):
    print("ご遠慮ください")
else:
    print("お乗りいただけます")
    
お乗りいただけます

この場合、age <= 10 という比較の結果は False80 <= ageという比較の結果もFalse となります。両方の値が False となったので、 or 演算子の最終的な値は False となり、else 節の print("お乗りいただけます") が実行されます。

論理和

次のように、変数 A と 変数 Bor 演算を行い、結果を変数 C に代入すると、

C = A or B

変数 C の値は、AB の値によって次のようになります。

C A B
False False False
True False True
True True False
True True True

AB の両方が False のときのみ、結果 C の値が False となることを確認してください。

or のように、すべての入力値が False のときのみ結果が False となる論理演算は、論理和 ともいいます。

Copyright © 2001-2021 python.jp Privacy Policy python_japan
Amazon.co.jpアソシエイト
Amazonで他のPython書籍を検索