こんにちわ 今日はこのチュートリアルで、Pythonのbool()メソッドについて学びます。
では、さっそく本題に入りましょう。
Python の bool() メソッド
bool()メソッドはPythonの組み込みメソッドで、渡されたオブジェクト/値に標準的な真偽判定手順を適用し、ブール値を返します。
さらに、boolクラスはサブクラス化することができません。
そのインスタンスは False
と True
だけです。
このメソッドを使うための構文は以下のとおりです。
bool ([x])
|
ここで、x
はオプションのパラメータであり、オブジェクト、値、または任意の式を指定することができる。
このメソッドは、True が渡されると True
を返し、False が渡されると同様に False
を返します。
bool()メソッドは、以下の条件下では
Falseを返す。
それ以外の場合はTrue` を返します。
- オブジェクトに定義された _bool() メソッドがある場合、boolean の結果はそのメソッドが返すもの に依存します。もし、そのオブジェクトに _bool_■() が定義されている場合は、その戻り値を考慮します。
- オブジェクトが空のコレクションである場合、その値は0とみなされます。
- オブジェクトがリスト、文字列、タプル、辞書などの空のコレクションまたはシーケンスである場合。
- 値が
False
またはNone
定数である場合。
注意: オブジェクト x
に対して、 __bool__()
または __len__()
メソッドが定義されていない場合、結果として True
が返されます。
Python bool() Working
N
1. 数字を使う場合
以下の例では、 bool()
メソッドが数値で動作することを説明しています。
from fractions import Fraction
from decimal import Decimal
# variable val = 55
val1 = 0
print ( "bool(val):" , bool (val))
print ( "bool(val1):" , bool (val1))
# expression print ( "bool(20 - 4):" , bool ( 20 - 4 ))
print ( "bool(20 - 20):" , bool ( 20 - 20 ))
# float print ( "bool(0.0001):" , bool ( 0.0001 ))
print ( "bool(0.00):" , bool ( 0.00 ))
# hex print ( "bool(0xF):" , bool ( 0xF ))
# Complex Numbers print ( "bool(12 - 34j):" , bool ( 12 - 34j ))
print ( "bool(0j):" , bool ( 0j ))
# decimal floating point and fractional numbers print ( "bool(Decimal(0)):" , bool (Decimal( 0 )))
print ( "bool(Fraction(0, 2)):" , bool (Fraction( 0 , 2 )))
|
結果は以下の通りです。
bool (val): True
bool (val1): False
bool ( 20 - 4 ): True
bool ( 20 - 20 ): False
bool ( 0.0001 ): True
bool ( 0.00 ): False
bool ( 0xF ): True
bool ( 12 - 34j ): True
bool ( 0j ): False
bool (Decimal( 0 )): False
bool (Fraction( 0 , 2 )): False
|
2. 文字列の場合
文字列の場合、bool()
メソッドは len()
がゼロ(0)にならない限り、真を返します。
# bool() with strings string1 = "Python" # len > 0
print ( bool (string1))
string1 = '' # len = 0
print ( bool (string1))
string1 = 'False' # len > 0
print ( bool (string1))
string1 = '0' # len > 0
print ( bool (string1))
|
出力されます。
結果は以下の通りです。
True False True True |
3. ビルトインオブジェクトの場合
シーケンスやコレクションでは、渡されたオブジェクトが空の場合のみ、このメソッドは False
を返します。
# list a = [ 1 , 2 , 3 , 4 ]
print ( bool (a))
# empty objects a = []
print ( bool (a))
a = ()
print ( bool (a))
a = {}
print ( bool (a))
|
結果は、以下の通りになります。
出力:
True False False False |
4. カスタムオブジェクトの使用
以下の例では、custom
クラスに __init__()
と __bool__()
の両方のメソッドを定義しています。
異なる値を持つ2つのオブジェクト x と y を作成します。
注: カスタムクラスで __len__()
を定義したとしても、すでに __bool__()
が定義されているので、 bool()
の結果には影響しません。
注意: 仮にカスタムクラスで __len__()
を定義していたとしても、すでに __bool__()
が定義されているので、 bool()
の結果には影響しません。
class custom():
val = 0
def __init__( self , num):
self .val = num
def __bool__( self ):
return bool ( self .val)
# custom objects x = custom( 0 )
y = custom( 52 )
print ( bool (x))
print ( bool (y))
|
結果は以下の通りです。
結果は以下の通りです。
False True |
ここで、カスタムオブジェクト x
と y
の bool()
の結果は、渡された引数に間接的に依存します(x は 0、y は 52)。
したがって、x (bool(0) = False) には False
が、y (bool(52) = True) には True
が得られます。
ラッピング
今日はここまでです。
Pythonのbool()メソッドというトピックを明確に理解していただけたでしょうか。
私たちは、このトピックに関するより多くの情報のために、参考文献のセクションで言及されたリンクに目を通すことをお勧めします。
さらに質問がある場合は、以下のコメントを使用して自由に感じなさい。
参考文献
- Python bool() – ドキュメント。
- Pythonのbool型 – ドキュメント,
- Pythonのbool()の実用的なアプリケーションは何ですか?- スタックオーバーフロー質問です。