1. 논리연산자의 단축평가
논리연산 시 결과가 확실한 경우 두번째 값은 확인하지 않고 첫번째 값을 반환한다.
- and 연산에서 첫번째 값이 False인 경우 무조건 False → 첫번째 값 반환
- or 연산에서 첫번째 값이 True인 경우 무조건 True → 첫번째 값 반환
and 연산의 경우
print(3 and 5) #5
print(3 and 0) #0
print(0 and 3) #0
print(0 and 0) #0
앞의 값이 True인 경우 뒤의 값을 확인한 후 그 값을 출력하게 된다. (첫번째, 두번째 예시)
앞의 값이 0(False)인 경우 뒤의 값을 확인할 필요 없이 0이 출력된다. (세번째, 네번째 예시)
or 연산의 경우
print(5 or 3) #5
print(3 or 0) #3
print(0 or 3) #3
print(0 or 0) #0
앞의 값이 True인 경우 뒤의 값을 확인할 필요 없이 첫번째 값을 출력한다. (첫번째, 두번째 예시)
앞의 값이 False인 경우 뒤의 값을 확인 한 후 그 값을 출력한다. (세번째, 네번째 예시)
2. Falsy값
False는 아니지만 False로 취급되는 값이 있다.
Falsy값 | 설명 |
0 | 정수 0 |
0.0 | 실수 0 |
() | 비어있는 튜플 |
[] | 비어있는 리스트 |
{} | 비어있는 딕셔너리 |
None | None값 |
"", '' | 빈 문자열 |
이외에는 모두 Truthy값이며,
정수 0을 제외한 모든 숫자/빈 문자열을 제외한 모든 문자열은 True로 취급된다.
댓글