Python Language
부울 연산자
수색…
과
두 인수가 모두 진실 인 경우에만 두 번째 인수를 평가합니다. 그렇지 않으면 첫 번째 잘못된 인수로 평가합니다.
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