ブール型 (boolオブジェクト:True, False)
ブール型は真偽値(ブール値)とよばれる True (真) または False (偽) の 2 種類の値を返します。Type () 関数で True もしくは False のクラスを調べると boolクラスであることがわかります:
# PYTHON_BOOL
# In[1]
# TrueとFalse のクラスを調べる
x = type(True)
y = type(False)
print(x, y)
<class 'bool'> <class 'bool'>
比較文の真偽判定
ブール型は数値や文字列の比較文の真偽判定に使うことができます。
# PYTHON_BOOL_COMPARISON
# In[1]
# 等式100 == 100の真偽値
tf1 = (100 == 100)
# 不等式200 <100の真偽値
tf2 = (200 < 100)
print(tf1, tf2)
True False
# In[2]
# 等式"abc"=="abc"の真偽値
tf1 = ("abc" == "abc")
# 等式 "abc" == "ABC" の真偽値
tf2 = ("abc" == "ABC")
print(tf1, tf2)
True False
Python では大文字と小文字が区別されるので、"abc" == "ABC" は「偽」であると判定されます。
オブジェクトの真偽値
組み込み関数 bool() は受け取ったオブジェクトが True であれば True を、それ以外には False を返します。この関数を使うとオブジェクトに対して真偽値を判定できます。たとえば、文字列や数値、リストの要素などが空であれば False を、そうでなければ True と判定されます。
# PYTHON_BOOL_OBJECT
# In[1]
# 文字列Pythonの真偽値
x = bool("Python")
# 空の文字列の真偽値
y = bool("")
print(x, y)
True False
# In[2]
# 要素をもつリストの真偽値
x = bool(("Python","Anaconda"))
# 要素をもたないリストの真偽値
y = bool(())
print(x, y)
True False
数値としてのブール型
Python での真偽値は数値として扱うことも可能です。True は 1, False は 0 です。それぞれに 0 を足してみるとわかります。
# PYTHON_BOOL_NUMERICAL
# In[1]
# ブール型の数値を確認
a = True + 0
b = False + 0
print(a)
print(b)
1 0
論理演算子(and, or, not)
ブール型のデータ、すなわち真偽値同士で論理演算を行うことができます。
論理演算の結果の戻り値も真偽値となります。
and(論理積)
and は論理積とよばれ、「x and y」は「x かつ y」を意味します。この演算は x と y がともに True であるときだけ True が戻ります。他はすべて False となります。
and (論理積) の演算表
x | y | x and y |
---|---|---|
True | True | True |
True | False | False |
False | True | False |
False | False | False |
# PYTHON_AND
# In[1]
logical_1 = True and True
logical_2 = True and False
logical_3 = False and True
logical_4 = False and False
print(logical_1)
print(logical_2)
print(logical_3)
print(logical_4)
True False False False
and を使うと複数の条件式が同時に成り立っているかどうかを判定できます。
# In[2]
# 複数の条件式が同時に成り立っているかを判定
logical_1 = (10 == 10 and 20 == 20)
logical_2 = (10 == 10 and 20 == 30)
logical_3 = (10 < 20 and 20 < 40)
logical_4 = (10 == 10 and 20 == 20 and 30 == 30)
print(logical_1)
print(logical_2)
print(logical_3)
print(logical_4)
True False True True
or (論理和)
or は論理和です。「x or y」は「x または y」を意味します。x と y の少なくとも一方が True であるときは True を返します。x と y の両方が False であるときだけ False が返ります。すなわち「x or y」は「x and y」の逆の結果を返します。
or (論理和) の演算表
x | y | x or y |
---|---|---|
True | True | True |
True | False | True |
False | True | True |
False | False | False |
# PYTHON_OR
# In[1]
logical_1 = True or True
logical_2 = True or False
logical_3 = False or True
logical_4 = False or False
print(logical_1)
print(logical_2)
print(logical_3)
print(logical_4)
True True True False
or を使うと複数の条件式のうち、少なくとも1つが成り立っているかどうかを判定できます。
# In[2]
# 複数の条件式のうち、
# 少なくとも1つが成り立っているかどうかを判定
logical_1 = (10 == 10 or 20 == 30)
logical_2 = (10 > 20 and 20 > 30)
print(logical_1)
print(logical_2)
True False
not (否定)
not は論理否定演算子とよばれ、真偽値を反転させます。
# PYTHON_NOT
# In[1]
# 真偽値を反転
logical_1 = not True
logical_2 = not False
print(logical_1, logical_2)
False True
# In[2]
# 真偽値を反転
logical_1 = not (10 == 10)
logical_2 = not (10 == 20)
print(logical_1, logical_2)
False True
コメントを書く