ブール型

概要

ブール型は「True」と「False」の2値しか持たない型です。 ブール値は比較演算子を使った比較や、関数の返り値などから得ます。 与えるブール値に応じてif文などで条件分岐をさせたり、関数の挙動を変更させたりします。

単純な型なので、演算子の利用方法をきちんと理解すれば使いこなせます。 演算子にはTrue/Falseを反転させるnotや、2つのブール値を1つにまとめるandやorといった演算子があります。 他には比較をしてブール値を得る比較演算子も利用されます。 たとえば「A > B」の「>」などです。

関数やメソッドの引数としてブール値を受けとり、 それに応じて処理を変えるという実装もよく使われます。

ブール型の特徴

ブール型 」は条件判定などで使われる型で、「 True 」と「 False 」の2つの値のみを持ちます。 別名「真偽値」とも呼ばれており、Trueは「YES」や「正」及び「真」に対応していて、 Falseは「NO」や「否」及び「偽」に対応しています。 たとえば「10は5よりも大きい」はTrueで、「3は10よりも大きい」はFalseです。

高校の数学で学ぶ「かつ」や「または」といった考え方はブール型でも頻繁に使われます。 たとえば「AかつB」ではAもBもTrueの場合のみTrueとなります。

ブール型の基本操作

TrueとFalse

>>> bool(1)
True
>>> bool(0)
False

比較演算子

Boolは「比較演算子」と呼ばれる記号で2つの値を比較した際に返されます。 例として数字の大小を比較してみます。

>>> 10 > 5
True
>>> 10 < 5
False
>>> a = 10 > 5
>>> a
True

特に難しいことはありませんね。「10は5より大きい -> True(YES)」とされていますし、 「10は5より小さい -> False(NO)」とされています。Boolを変数に格納することも当然できます。

比較演算子の一覧を以下に記載します。

| 利用可能な演算子 | 説明 | | A == B | AとBが同一ならTrue | | A != B | AとBが異なればTrue | | A > B | A が B より大きければ True | | A >= B | A が B 以上なら True | | A < B | A が B より小さければ True | | A <= B | A が B 以下なら True |

以下に例を書いてみます。

>>> 'hello' == 'world'
False
>>> 'hello' != 'world'
True
>>> 5 > 4
True
>>> 5 > 5
False
>>> 5 >= 5
True

Bool型の演算子

それほど難しくありませんね。 以下のようなブール代数(True/False)も使えます。 これは中学や高校の数学あたりで学んだものかと思います。

| 利用可能な演算子 | 説明 | | not A | AがFalseならTrue | | A and B | AもBもTrueならTrue | | A or B | AかBがTrue |

>>> not True
False
>>> True and False
False
>>> True or False
True
>>> not (5>4)
False

これらのブール演算の演算子は優先度が高くないため、他の演算子とあわせて使う場合は注意が必要です。 たとえば、以下の演算では「==」より先に「not」が評価されています。

>>> a = True
>>> b = False
>>> not a == b
True

つまり、以下のような順で評価されています。

>>> not (a == b)
True

優先度を意識しないと、以下のようなエラーを発生させてしまうかもしれません。 これは「(a == not) b」という順序で評価されています。

>>> a == not b
  File "<stdin>", line 1
    a == not b
           ^
SyntaxError: invalid syntax

in 演算子

他には集合やオブジェクトのチェックの演算子もあります。 これらは追って説明します。

| A is B | A と B は同一オブジェクト | | A is not B | A と B は異なるオブジェクト | | A in B | A は B に含まれる | | A not in B | A は B に含まれない |

また、返り値がBool値である関数などもよく利用されます。

Bool型は後の章で扱う「ifやfor」といった制御文で利用されることが多いです。 条件分岐のif文では、たとえば変数aがTrueなら処理Aを実行し、Falseなら処理Bをするといった使い方をします。 具体的にBoolをどのように使うかは制御文を学ぶ際に理解できると思いますので、今回はここで解説を切り上げます。

ブール型を返す組み込み関数

bool

all

any