それが日常のコーディングで使用されているときは?私は学んでいますPython using this tutorial 。私が何を参照しているかが説明されています here (ページの中央)、しかし私はできます '理解します。TrueとFalseの使用の原則は理解していますが、実際にコードを記述しているときに実際にbool()
関数を使用する(または使用する)タイミングはわかりません。コードでbool()
の日常的な実用的な例を示します。
Python=値をブール値に変換できます。
別のPythonオブジェクトに応じて、True
またはFalse
のいずれかを保存したい場合があります。代わりに:
_if python_object:
result = True
else:
result = False
_
あなたは単に行います:
_result = bool(python_object)
_
方法Pythonオブジェクトはブール値に変換され、すべてが 真の値)に依存します 。一般的に言えば、None
、数値0、空のコンテナ(空のリスト、辞書、セット、タプル、文字列など)はすべてFalse
で、残りはTrue
です。
明示的なブール値が必要な場合はいつでも使用します。オブジェクトツリーを構築していて、ツリーに子がある場合にTrue
を返すメソッドを含めるとします。
_class Tree(object):
def __init__(self, children):
self.children
def has_children(self):
return bool(self.children)
_
_self.children
_が空でない場合はTree().has_children()
がTrue
を返し、そうでない場合はFalse
を返します。
bool()
が何を行うかを理解するには、最初にブール値の概念を理解する必要があります。
ほとんどのプログラミング言語では、ブール変数は2進数で0または1のいずれかで表されます。 1は「True」を表し、0は「False」を表します
数値1は、いくつかの点でブール値Trueとは異なります。たとえば、次のコードを見てください。
_>>> 1 is True
False
_
Pythonによると、1はTrueとは異なります。しかしながら:
_>>> bool(1) is True
True
_
ここでbool()
関数を使用する場合、1をブール値に変換します。この変換は「キャスティング」と呼ばれます。 1をブール値にキャストすると、「True」の値が返されます。
ほとんどのオブジェクトはブール値にキャストできます。私の経験では、すべての標準オブジェクトは、0、なし、False、または空の反復可能オブジェクト(例: ""、[]、または{})でない限り、Trueと評価されるはずです。例として:
_>>> bool({})
False
>>> bool({"":False})
True
>>> bool(None)
False
>>> bool("")
False
>>> bool("hello")
True
>>> bool(500)
True
>>> bool(0)
False
>>> bool(False)
False
>>> bool(-1)
True
_
最後に、ブール値は「True」または「False」として出力されます
_>>> print bool(1)
True
_
bool
は、Pythonにより、通常TrueまたはFalseとは見なされないものへのブール変換が可能になるという事実を公開します。
この例はリストです。 len(my_list)
が0より大きい場合、これもTrue
として扱います。長さがなければ-len()
が0を返す場合-はFalse
です。これにより、次のようなコードを記述できます。
def check_list_for_values(my_list, value):
return [x for x in my_list if x == value]
your_list = [5, 6, 7, 8, 9, 5, 3, 4, 8]
if check_list_for_values(3, your_list):
print "got a match"
check_list_for_values
は、長さが0より大きいリストを返し、True
と評価されるため、「got a match」と出力します。返されるリストに長さがなければ...
your_list = [5, 6, 7, 8, 9, 5, 3, 4, 8]
if check_list_for_values('elephant', your_list):
print "got a match"
次に、False
と評価されるため、何も出力されません。
値をブール値に変換します。