Python の組み込み関数 bool の使い方です。
bool 関数で、『真理値』を判定するコード例と、実行結果を載せました。
エラーについてです。
関数として使った限りでは、bool 関数がエラーを返すようなコード例は、見つかりませんでした。
一方で、bool クラスを継承して新しいクラスを作ろうとしたら、エラーになりました。
エラーになったコード例
bool クラスで、エラーになったコード例です。
(Python) class bool([x])
の説明にあった通り、bool を継承して派生クラスを作ることはできませんでした。
class JisakuClass(bool):
pass
TypeError: type 'bool' is not an acceptable base type
引数無しの結果
bool 関数を、引数無しで呼び出した結果です。
bool() # 引数無し
False
組み込み定数を渡した結果
bool 関数に、組み込み定数を渡した結果です。
bool(False) # False
False
bool(True) # True
True
bool(None) # None
False
int を渡した結果
bool 関数に、int(整数)を渡した結果です。
bool(0)
False
bool(1)
True
bool(-1)
True
float を渡した結果
bool 関数に、float(浮動小数点数)を渡した結果です。
bool(0.0) # 0.0
False
bool(-0.0) # -0.0
False
bool(0.1) # 0.1
True
bool(-0.1) # -0.1
True
bool(1.0) # 1.0
True
bool(-1.0) # -1.0
True
bool(float('nan')) # nan
True
bool(float('inf')) # inf
True
bool(float('-inf')) # -inf
True
complex を渡した結果
bool 関数に、complex(複素数)を渡した結果です。
(Python) class complex([real[, imag]])
bool(complex(+0.0, +0.0)) # 0j
False
bool(complex(-0.0, -0.0)) # (-0-0j)
False
bool(complex(3.0, 0)) # (3+0j)
True
bool(complex(0, 4.0)) # 4j
True
bool(complex(+3.0, +4.0)) # (3+4j)
True
bool(complex(-3.0, -4.0)) # (-3-4j)
True
bool(complex(0.0, float('inf'))) # infj
True
bool(complex(0.0, float('-inf'))) # -infj
True
bool(complex(0.0, float('nan'))) # nanj
True
bool(complex(float('inf'), 0.0)) # (inf+0j)
True
bool(complex(float('-inf'), 0.0)) # (-inf+0j)
True
bool(complex(float('nan'), 0.0)) # (nan+0j)
True
bool(complex(float('inf'), float('inf'))) # (inf+infj)
True
bool(complex(float('-inf'), float('-inf'))) # (-inf-infj)
True
bool(complex(float('nan'), float('nan'))) # (nan+nanj)
True
Decimal を渡した結果
bool 関数に、Decimal 型(十進数型)を渡した結果です。
(Python) class decimal.Decimal(value="0", context=None)
from decimal import Decimal
bool(Decimal(0.0)) # Decimal('0')
False
from decimal import Decimal
bool(Decimal(-0.0)) # Decimal('-0')
False
from decimal import Decimal
bool(Decimal(0.1)) # Decimal('0.1000000000000000055511151231257827021181583404541015625')
True
from decimal import Decimal
bool(Decimal(-0.1)) # Decimal('-0.1000000000000000055511151231257827021181583404541015625')
True
from decimal import Decimal
bool(Decimal(1)) # Decimal('1')
True
from decimal import Decimal
bool(Decimal(-1)) # Decimal('-1')
True
from decimal import Decimal
bool(Decimal('inf')) # Decimal('Infinity')
True
from decimal import Decimal
bool(Decimal('-inf')) # Decimal('-Infinity')
True
from decimal import Decimal
bool(Decimal('nan')) # Decimal('NaN')
True
datetime.datetime を渡した結果
bool 関数に、日時の datetime.datetime を渡した結果です。
import datetime
bool(datetime.datetime.min) # datetime.datetime(1, 1, 1, 0, 0)
True
datetime.date を渡した結果
bool 関数に、日付の datetime.date を渡した結果です。
(Python) class datetime.date(year, month, day)
import datetime
bool(datetime.date.min) # datetime.date(1, 1, 1)
True
datetime.time を渡した結果
bool 関数に、時刻の datetime.time を渡した結果です。
(Python) class datetime.time(hour=0, minute=0, second=0, microsecond=0, tzinfo=None, *, fold=0)
import datetime
bool(datetime.time.min) # datetime.time(0, 0)
True
datetime.timedelta を渡した結果
bool 関数に、時間差 の datetime.timedelta を渡した結果です。
import datetime
bool(datetime.timedelta(0, 0, 0, 0, 0, 0)) # datetime.timedelta(0)
False
import datetime
bool(datetime.timedelta(1, 0, 0, 0, 0, 0)) # datetime.timedelta(days=1)
True
import datetime
bool(datetime.timedelta(-1, 0, 0, 0, 0, 0)) # datetime.timedelta(days=-1)
True
import datetime
bool(datetime.timedelta(0, 1, 0, 0, 0, 0)) # datetime.timedelta(seconds=1)
True
import datetime
bool(datetime.timedelta(0, -1, 0, 0, 0, 0)) # datetime.timedelta(days=-1, seconds=86399)
True
import datetime
bool(datetime.timedelta(0, 0, 1, 0, 0, 0)) # datetime.timedelta(microseconds=1)
True
import datetime
bool(datetime.timedelta(0, 0, -1, 0, 0, 0)) # datetime.timedelta(days=-1, seconds=86399, microseconds=999999)
True
import datetime
bool(datetime.timedelta(0, 0, 0, 1, 0, 0)) # datetime.timedelta(microseconds=1000)
True
import datetime
bool(datetime.timedelta(0, 0, 0, -1, 0, 0)) # datetime.timedelta(days=-1, seconds=86399, microseconds=999000)
True
import datetime
bool(datetime.timedelta(0, 0, 0, 0, 1, 0)) # datetime.timedelta(seconds=60)
True
import datetime
bool(datetime.timedelta(0, 0, 0, 0, -1, 0)) # datetime.timedelta(days=-1, seconds=86340)
True
import datetime
bool(datetime.timedelta(0, 0, 0, 0, 0, 1)) # datetime.timedelta(seconds=3600)
True
import datetime
bool(datetime.timedelta(0, 0, 0, 0, 0, -1)) # datetime.timedelta(days=-1, seconds=82800)
True
import datetime
bool(datetime.timedelta.min) # datetime.timedelta(days=-999999999)
True
str を渡した結果
bool 関数に、str(文字列)を渡した結果です。
bool('') # '' 空文字列
False
bool('a') # 'a'
True
bool('0') # '0'
True
bool('あ') # 'あ'
True
bool('abc') # 'abc'
True
bytes を渡した結果
bool 関数に、bytesを渡した結果です。
(Python) class bytes([source[, encoding[, errors]]])
bool(b'') # b'' 空のバイト列
False
bool(b'\x00') # b'\x00'
True
bool(b'\x01') # b'\x01'
True
bool(b'\x00\x00') # b'\x00\x00'
True
bytearray を渡した結果
bool 関数に、bytearray を渡した結果です。
(Python) class bytearray([source[, encoding[, errors]]])
bool(bytearray()) # bytearray(b'')
False
bool(bytearray((0,))) # bytearray(b'\x00')
True
bool(bytearray((1,))) # bytearray(b'\x01')
True
bool(bytearray((0, 0))) # bytearray(b'\x00\x00')
True
range を渡した結果
bool 関数に、range を渡した結果です。
(Python) range(start, stop[, step])
bool(range(0)) # range(0, 0)
False
bool(range(1)) # range(0, 1)
True
bool(range(0, 2, 1)) # range(0, 2)
True
bool(range(-1)) # range(0, -1)
False
bool(range(0, -1, -1)) # range(0, -1, -1)
True
tuple を渡した結果
bool 関数に、tuple を渡した結果です。
bool(()) # () 空のタプル
False
bool((False, )) # (False,)
True
bool((True,)) # (True,)
True
bool((None,)) # (None,)
True
bool((0,)) # (0,)
True
bool((0.0,)) # (0.0,)
True
bool((complex(0, 0),)) # (0j,)
True
bool(('',)) # ('',)
True
bool((b'',)) # (b'',)
True
bool((bytearray(),)) # (bytearray(b''),)
True
bool(([],)) # ([],)
True
list を渡した結果
bool 関数に、list を渡した結果です。
(Python) class list([iterable])
bool([]) # [] 空のリスト
False
bool([False]) # [False]
True
bool([True]) # [True]
True
bool([None]) # [None]
True
bool([0]) # [0]
True
bool([0.0]) # [0.0]
True
bool([complex(0, 0)]) # [0j]
True
bool(['']) # ['']
True
bool([b'']) # [b'']
True
bool([bytearray()]) # [bytearray(b'')]
True
bool([[]]) # [[]]
True
set を渡した結果
bool 関数に、集合の set を渡した結果です。
(Python) class set([iterable])
bool(set()) # set() 空の集合
False
bool({False}) # {False}
True
bool({True}) # {True}
True
bool({None}) # {None}
True
bool({0}) # {0}
True
bool({0.0}) # {0.0}
True
bool({complex(0, 0)}) # {0j}
True
bool({''}) # {''}
True
bool({b''}) # {b''}
True
bool({()}) # {()}
True
dict を渡した結果
bool 関数に、辞書の dict を渡した結果です。
bool({}) # {} 空の辞書
False
bool({False: None}) # {False: None}
True
bool({True: None}) # {True: None}
True
bool({None: None}) # {None: None}
True
bool({}.keys()) # dict_keys([])
False
bool({True: None}.keys()) # dict_keys([True])
True
bool({}.values()) # dict_values([])
False
bool({True: None}.values()) # dict_values([None])
True
bool({}.items()) # dict_items([])
False
bool({True: None}.items()) # dict_items([(True, None)])
True
function を渡した結果
bool 関数に、function(関数)を渡した結果です。
bool(lambda x:x) # <function <lambda> at 0x0000000000000000>
True
以上です。