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

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

遊園地のジェットコースターなどには、「10歳以上で身長は120cm以上の方のみお乗りいただけます」のように、決まった条件で利用者を制限している場合があります。この制限を、Pythonで書いてみましょう。

この条件を分解すると、

  1. 年齢が 10 またはそれより大きい
  2. 身長が 120 またはそれより大きい

の2つの条件を満たせば、乗っても良いということになります。

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

10 <= age

この式は、age10以上の値ならTrueとなり、10未満ならFalseとなります。

身長のチェックは次のように書けます。

120 <= height

この式は、height120以上の値ならTrueとなり、120未満ならFalseとなります。

この2つの条件が同時に真なら、搭乗可能ということになります。これをプログラムで書いてみましょう。

Pythonでは、and 演算子で2つの条件が同時に真かどうかを調べられます。

In [6]:
age = 11   # 例として、11歳 身長130cmとする
height = 130

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

and 演算子は、左右に指定された値の両方が True の場合、True を返します。 どちらか一方でも False なら、and 演算子の結果も False となります。

上の例では、if文の条件式として、

(10 <= age) and (120 <= height)

と指定しています。age の値は 11 ですから、10 <= age の結果は True となります。また、height の値は 130 ですから、120 <= height の結果も Trueとなります。どちらの値も True なので、and 演算子の最終的な値は True となります。

ここで、height に指定した身長を、130cmから 110cmに変更するとどうなるでしょう?

In [1]:
age = 11   # 例として、11歳 身長110cmとする
height = 110  # この行を 130 -> 110に変更

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

この場合、10 <= age という比較は True ですが、120 <= height という比較は False となります。片方の値が False となったので、 and 演算子の最終的な値は False となります。

論理積

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

C = A and B

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

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

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

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

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