ブール型(True, False)
ブール型は真偽値(ブール値)とよばれる True(真)または False(偽)の 2 種類の値を返します。Type() 関数で True もしくは False のクラスを調べると bool クラスに属していることがわかります:
# PYTHON_BOOL # In[1] # Trueのクラスを調べる class_true = type(True) print(class_true) # <class 'bool'> # In[2] # Falseのクラスを調べる class_false = type(False) print(class_false) # <class 'bool'>
比較文の真偽判定
ブール型は数値や文字列の比較文の真偽判定に使うことができます。
# PYTHON_BOOL_COMPARISON
# In[1]
# 等式100 == 100の真偽値
bool_1 = (100 == 100)
print(bool_1)
# True
# In[2]
# 不等式200<100の真偽値
bool_2 = (200 < 100)
print(bool_2)
# False
# In[3]
# 等式"abc"=="abc"の真偽値
bool_3 = ("abc" == "abc")
print(bool_3)
# True
# In[4]
# "abc" == "ABC" の真偽値
bool_4 = ("abc" == "ABC")
print(bool_4)
# False
Python では大文字と小文字が区別されるので、”abc” == “ABC” は「偽」であると判定されます。
オブジェクトの真偽値
組み込み関数 bool() は受け取ったオブジェクトが True であれば True を、それ以外には False を返します。この関数を使うとオブジェクトに対して真偽値を判定できます。たとえば、文字列や数値、リストの要素などが空であれば False を、そうでなければ True と判定されます。
# PYTHON_BOOL_OBJECT
# In[1]
# 空の文字列の真偽値
bool_1 = bool("")
print(bool_1)
# False
# In[2]
# 文字列Pythonの真偽値
bool_2 = bool("Python")
# True
# In[3]
# 空リストの真偽値
bool_3 = bool(())
print(bool_3)
# False
# In[4]
# 要素をもつリストの真偽値
bool_4 = bool(("Python","Anaconda"))
print(bool_4)
# True
数値としてのブール型
Python での真偽値は数値として扱うことも可能です。True は 1, False は 0 です。それぞれに 0 を足してみるとわかります。
# PYTHON_BOOL_NUMERICAL # In[1] # ブール型の数値を確認 a = True + 0 print(a) # 1 # In[2] b = False + 0 print(b) # 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 print(logical_1) # True # In[2] logical_2 = True and False print(logical_2) # False # In[3] logical_3 = False and True print(logical_3) # False # In[4] logical_4 = False and False print(logical_4) # False
and を使うと複数の条件式が同時に成り立っているかどうかを判定できます。
# In[5] logical_1 = (10 == 10 and 20 == 20) print(logical_1) # True # In[6] logical_2 = (10 == 10 and 20 == 30) print(logical_2) # False # In[7] logical_3 = (10 < 20 and 20 < 40) print(logical_3) #True # In[8] logical_4 = (10 == 10 and 20 == 20 and 30 == 30) print(logical_4) # 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 print(logical_1) # True # In[2] logical_2 = True or False print(logical_2) # True # In[3] logical_3 = False or True print(logical_3) # True # In[4] logical_4 = False or False print(logical_4) # False
or を使うと、複数の条件式のうち少なくとも1つが成り立っているかどうかを判定できます。
# In[5] my_bool = (10 == 10 or 20 == 30) print(my_bool) # True
not(否定)
not は論理否定演算子とよばれ、真偽値を反転させます。
# PYTHON_NOT # In[1] my_bool = not True print(my_bool) # False # In[2] my_bool = not (10 == 20) print(my_bool) # True
コメント