Python-단락 평가

강현구·2021년 11월 15일
0

Python

목록 보기
4/21

단락 평가(short-circuit evalution)는 논리 연산에서 중요한 부분 중 하나로,
첫 번째 값만으로 결과가 확실할 때 두 번째 값은 확인(평가)하지 않는 방법을 만한다.

# 첫 번째 값이 거짓이므로 두 번째 값은 확인하지 않고 거짓으로 결정
print(False and True)     # False
print(False and False)    # False
# 첫 번째 값이 참이므로 두 번째 값은 확인하지 않고 참으로 결정
print(True or True)     # True
print(True or False)    # True

파이썬에서 논리 연산자는 이 단락 평가에 따라 반환하는 값이 결정된다.

>>> True and 'Python'
'Python'

위와 같이 논리 연산이 '불' and '문자열'로 되어있는 경우를 보면,
and 앞의 '불'이 True이므로 and 뒤의 값에 따라 논리 연산이 결정된다.
and 뒤의 값에 상관없이 뒤의 값을 바로 반환한다.
즉, 논리 연산자는 무조건 불을 반환하는 것이 아니라 마지막 단락 평가를 실시한 값을 반환한다.

>>> 'Python' and True
True
>>> 'Python' and False
False

>>> False and 'Python'
False
>>> 0 and 'Python'    # 0은 False이므로 and 연산자는 두 번째 값을 평가하지 않음
0

or 연산자도 동일하게 마지막 단락 평가의 값을 반환한다.

>>> True or 'Python'
True
>>> 'Python' or True
'Python'

>>> False or 'Python'
'Python'
>>> 0 or False
False
profile
한걸음씩

0개의 댓글