サーチ…


そして

両方の引数が真実である場合に限り、第2引数を評価します。そうでなければ、最初の偽の引数を評価します。

x = True
y = True
z = x and y # z = True

x = True
y = False
z = x and y # z = False

x = False
y = True
z = x and y # z = False

x = False
y = False
z = x and y # z = False

x = 1
y = 1
z = x and y # z = y, so z = 1, see `and` and `or` are not guaranteed to be a boolean

x = 0
y = 1
z = x and y # z = x, so z = 0 (see above)

x = 1
y = 0
z = x and y # z = y, so z = 0 (see above)

x = 0
y = 0
z = x and y # z = x, so z = 0 (see above)

上記の例の1真理値に変更することができ、 0は任意の偽の値に変更することができます。

または

いずれかの引数が真実である場合、最初の真理値引数に評価されます。両方の引数が偽である場合、2番目の引数に評価されます。

x = True
y = True
z = x or y # z = True

x = True
y = False
z = x or y # z = True

x = False
y = True
z = x or y # z = True

x = False
y = False
z = x or y # z = False

x = 1
y = 1
z = x or y # z = x, so z = 1, see `and` and `or` are not guaranteed to be a boolean

x = 1
y = 0
z = x or y # z = x, so z = 1 (see above)

x = 0
y = 1
z = x or y # z = y, so z = 1 (see above)

x = 0
y = 0
z = x or y # z = y, so z = 0 (see above)

上記の例の1真理値に変更することができ、 0は任意の偽の値に変更することができます。

ない

これは、次の文の反対を返します。

x = True
y = not x # y = False

x = False
y = not x # y = True

短絡評価

Python ブール式を最小限に評価します。

>>> def true_func():
...     print("true_func()")
...     return True
... 
>>> def false_func():
...     print("false_func()")
...     return False
... 
>>> true_func() or false_func()
true_func()
True
>>> false_func() or true_func()
false_func()
true_func()
True
>>> true_func() and false_func()
true_func()
false_func()
False
>>> false_func() and false_func()
false_func()
False

`and`と` or`はブール値を返すことは保証されていません

orを使用すると、式の最初の値を返します。そうでない場合は、2番目の値を盲目的に返します。 orと同等です:

def or_(a, b):
    if a:
        return a
    else:
        return b

for and falseの場合は最初の値を返し、それ以外の場合は最後の値を返します。

def and_(a, b):
    if not a:
        return a
    else:
        return b

簡単な例

Pythonでは、2つのバイナリ演算子を使用して1つの要素を比較することができます。

if 3.14 < x < 3.142:
    print("x is near pi")

多くのプログラミング言語では(3.14 < x) < 3.142であるが、Pythonでは3.14 < x and x < 3.142ように扱われます。期待するだろう。



Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow