Pythonのbool関数の使い方|数字、文字列、クラスでの使い方を解説する

スポンサーリンク

こんにちわ 今日はこのチュートリアルで、Pythonのbool()メソッドについて学びます。

では、さっそく本題に入りましょう。

スポンサーリンク

Python の bool() メソッド

bool()メソッドはPythonの組み込みメソッドで、渡されたオブジェクト/値に標準的な真偽判定手順を適用し、ブール値を返します。

さらに、boolクラスはサブクラス化することができません。

そのインスタンスは FalseTrue だけです。

このメソッドを使うための構文は以下のとおりです。

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

ここで、カスタムオブジェクト xybool() の結果は、渡された引数に間接的に依存します(x は 0、y は 52)。

したがって、x (bool(0) = False) には False が、y (bool(52) = True) には True が得られます。

ラッピング

今日はここまでです。

Pythonのbool()メソッドというトピックを明確に理解していただけたでしょうか。

私たちは、このトピックに関するより多くの情報のために、参考文献のセクションで言及されたリンクに目を通すことをお勧めします。

さらに質問がある場合は、以下のコメントを使用して自由に感じなさい。

参考文献

  • Python bool() – ドキュメント。
  • Pythonのbool型 – ドキュメント,
  • Pythonのbool()の実用的なアプリケーションは何ですか?- スタックオーバーフロー質問です。
タイトルとURLをコピーしました