반응형
SCE
논리 연산자 and, or 표현식과의 관계이다.
참, 거짓 판정에 이어 논리 연산자의 결과는 expresstion 값이 되는데,
이를 short-circuit evaluation(SCE) 혹은 lazy evaluation이라고 한다.
or
왼쪽이 참인 경우 왼쪽 값 반환
왼쪽이 거짓인 경우 오른쪽 값 반환
and
왼쪽이 참인 경우 오른쪽 값 반환
왼쪽이 거짓인 경우 왼쪽 값 반환
bool 타입은 당연하게 Ture, False 값들이 나온다.
bool 타입이 아닌 다른 타입의 값들을 비교해본다.
파이썬에서 0은 False이므로 0 or 100 결과 값은 or의 오른쪽 값인 100이 반환된다.
'hello'와 'python'은 빈 문자열이 아니므로 True이다.
따라서 'hello' or 'python'에서 왼쪽 값이 참이니 hello를 출력했고,
'hello' and 'python'에서 왼쪽 값이 참이니 'python'을 출력하였다.
[] and 'python'에서 []는 빈 list이므로 False이다.
즉 and의 왼쪽 값이 False이므로 []를 출력한다.
마지막으로 {"name: "hong"}은 빈 dict이 아니므로 True이다.
or 왼쪽 값이 True이므로 {"name: "hong"}를 출력한다.
SCE를 이용해 위와 같은 구문을 만들 수 있다.
반응형