수색…


두 인수가 모두 진실 인 경우에만 두 번째 인수를 평가합니다. 그렇지 않으면 첫 번째 잘못된 인수로 평가합니다.

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 은 임의의 거짓 값으로 변경할 수 있습니다.

또는

인수 중 하나가 진실이라면 첫 번째 truthy 인수로 평가합니다. 두 인수가 모두 거짓이면 두 번째 인수로 평가됩니다.

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

단락 회로 평가

파이썬은 최소한 부울 표현식을 평가 합니다.

>>> 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`는 boolean 값을 반환하지 않습니다.

or 을 사용하면 식의 첫 번째 값이 true이면 반환하거나 그렇지 않으면 맹목적으로 두 번째 값을 반환합니다. 즉 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

간단한 예

파이썬에서는 두 개의 이진 연산자를 사용하여 단일 요소를 비교할 수 있습니다.

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

대부분의 (대부분의) 프로그래밍 언어에서 이것은 일반 수학과 반대되는 방식으로 평가됩니다 (3.14 < x) < 3.142 ,하지만 파이썬에서는 대부분의 비 프로그래머 3.14 < x and x < 3.142 마찬가지로 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