Pythonの論理演算子とプール型、これから始めようとする初心者向けに分かりやすく解説|Python入門(6)

Python
この記事は約5分で読めます。

はじめに

 前回のPython入門(5)では、Pythonの条件式と分岐について学びました。

 Python入門の第六弾として、Pythonのプール型と論理演算子について紹介します。

 この記事を読むと次の疑問について知ることができます。

 それでは、Pythonのプール型と論理演算子をこれから始めようとする初心者向けに分かりやすく解説していきます。

プール型

 if 文の条件式の値(Ture、False)により、条件分岐して実行することを前回のPython(5)では学びましたが、この際の条件式の値であるTrue、Falseはプール型(真偽型)と呼ばれるデータ型です。

 このプール型は、True(真)、False(偽)のいずれかの値を取ります。

 それでは、どのようなものがTrueとなり、どのようなものがFalseとみなされるのでしょうか?

  Falseとみなされるものには、次のものがあります。

  • 「None」と 「False」のように偽と定義されているもの
  • 00.0、(0)のようなデータ
  • ''()[]{}のような空文字列、空リスト、空タブル、空辞書型データ

 上述の偽(False)でないものは、すべたが真(True)として扱われます。

 真偽を調べる関数として、bool()関数がありますので、調べてみましょう。

論理演算子

 前回の比較演算子では、条件式が真(True)か偽(False)で条件分岐をしましたが、条件式が複雑になり幾つもの条件判断をしたい場合があります。

 そのような場合に論理演算子を使います。

 論理演算子には、論理積演算子(and)、論理和演算子(or)、論理否定演算子(not)の3つがあります。

 これらの演算子を組み合わせることにより、複雑な条件判断をすることも可能となります。

論理積演算子(and)

 論理積演算子(and)は、xとyが「and」で結合された条件式(z = x and y)があったとした際に、xとyがどちらも「True」以外は、z の条件式が「True」とならない演算子を言います。

 次の表を参照ください。

x z (x and y)
True True True
Treu False False
False True False
False False False

 ここで、x や y には、式(例えば、a > bなどの比較演算子を使った条件式)なども含まれます。

  下記のGoogle Colabでの結果は、xやyにそれぞれ「True」や「False」を当てはめた場合と、xやyの条件式に「True」となる条件式を当てはめた場合を示します。

 さらに、「and」でいくつもの式が結合された条件式があった場合も、上記の表を拡張すればよいことになります。

 つまり、x 、y、w、…とあった場合、x 、y、w、…の全てが「True」以外は「z = x and y and w and …」の条件式zは「False」となります。

 下記のGoogle Colabの例は、「and」でx とy とwを繋いだ場合で、xとyは「True」、wは「False」の場合はその結合式 z は「False」となることを示しています。

論理和演算子(or)

 論理和演算子(or)は、xとyが「or」で結合された条件式(z = x or y)があったとした際に、xとyのどちらかが「True」であれば、z の条件式が「True」となる演算子を言います。

 次の表を参照ください。

X Z( x or y)
True True True
Treu False True
False True True
False False False

 ここで、x や y には、式(例えば、a > bなどの比較演算子を使った条件式)なども含まれます。

  下記のGoogle Colabでの結果は、xやyにそれぞれ「True」や「False」を当てはめた場合を示します。

 さらに、「or」でいくつもの式が結合された条件式があった場合も、上記の表を拡張すればよいことになります。

 つまり、x 、y、w、…とあった場合、x 、y、w、…の全てが「False」以外は「z = x or y or w or …」の条件式zは「True」となります。

 下記のGoogle Colabの例は、「or」でx とy とwを繋いだ場合で、xとyは「True」、wは「False」の場合はその結合式 z は「True」となることを示しています。

論理否定演算子(not)

 論理否定演算子(not)は、xが「not」で結合された条件式(z = not x)があったとした際に、xの真偽値の反対の真偽値を取ります。

 次の表を参照ください。

X Z(not x)
True False
False True

 ここで、x には、式(例えば、a > bなどの比較演算子を使った条件式)なども含まれます。

 下記のGoogle Colabでの結果は、xにそれぞれ「True」や「False」を当てはめた場合を示します。

 また、x に条件式 100 > 1 (True)や 100 < 1 (False)とした場合の z = not x の真偽値を出力しています。

論理演算子を使った例

 カレーは、子供用(年により分類)、大人用(男性用、女性用)に少しカレーの内容や味を変えてあるとします。

 その分類は以下の通り。

  • お子様用カレー : 6才以上12才以下男女
  • 大人の男性用カレー : 18才以上の男性
  • 大人の女性用カレー : 18才以上の女性
  • 適したカレーはありません : 上述に当てはまらない場合

 下記のGoogle Colabでは、x=30 才、y = '女性'とした場合の条件分岐式です。

おわりに

 如何だったでしょうか?

 2つ以上の比較演算子を組み合わせ、複雑な条件を記述する 論理演算子 について解説してきました。

 この記事を読みながらPythonを学んでもらえればと思います。

 次をお楽しみに?

以上です。

 

コメント

タイトル