ブール型 (boolオブジェクト: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
【AIがPythonのブール型について解説します】
[ChatGPT] Pythonのboolオブジェクトは、真理値(真または偽)を表すために使用されるデータ型です。boolオブジェクトはPythonの組み込み型であり、True(真)またはFalse(偽)のいずれかの値を持ちます。boolオブジェクトは主に条件式や制御フローの評価結果として使用されます。例えば、if文やwhile文の条件式で使用することができます。条件が真の場合はTrueが返され、偽の場合はFalseが返されます。
以下はboolオブジェクトの基本的な特性です。
・TrueとFalse: boolオブジェクトは、TrueまたはFalseのいずれかの値を持ちます。Trueは真を表し、Falseは偽を表します。
・真理値の演算: boolオブジェクトは、論理演算子(and、or、not)や比較演算子(==、!=、>、<、>=、<=)を使用して演算を行うことができます。これにより、複数の条件を組み合わせたり、値を比較したりすることができます。
・真理値の評価: Pythonでは、さまざまなデータ型の値を真理値として評価することができます。Falseとみなされる値には、False自体、数値の0、空のコンテナ(空のリスト、空の辞書、空のタプル)、Noneなどがあります。それ以外の値はすべてTrueとみなされます。
以下はいくつかの例です:
- - - - -
x = True
y = False
print(x) # 出力: True
print(y) # 出力: False
# 真理値の演算
print(x and y) # 出力: False
print(x or y) # 出力: True
print(not x) # 出力: False
# 比較演算
a = 5
b = 10
print(a > b) # 出力: False
print(a == b) # 出力: False
print(a != b) # 出力: True
# 真理値の評価
empty_list = []
non_empty_list = [1, 2, 3]
print(bool(empty_list)) # 出力: False
print(bool(non_empty_list)) # 出力: True
print(bool(0)) # 出力: False
print(bool(10)) # 出力: True
print(bool(None)) # 出力: False
- - - - -
boolオブジェクトは、プログラムの制御フローの中で条件を表現するために重要な役割を果たします。条件式の評価結果に応じて、特定のブロックの実行を制御したり、処理の流れを変更したりすることができます。