Programing Language/Python

[Python] Short-Circuit Evaluation (SCE)

밈아 2021. 10. 29. 15:27
반응형

SCE

논리 연산자 and, or 표현식과의 관계이다.

참, 거짓 판정에 이어 논리 연산자의 결과는 expresstion 값이 되는데,

이를 short-circuit evaluation(SCE) 혹은 lazy evaluation이라고 한다.

 

or

왼쪽이 참인 경우 왼쪽 값 반환

왼쪽이 거짓인 경우 오른쪽 값 반환

 

and

왼쪽이 참인 경우 오른쪽 값 반환

왼쪽이 거짓인 경우 왼쪽 값 반환

 

 

예제 1

bool 타입은 당연하게 Ture, False 값들이 나온다.

 

 

bool 타입이 아닌 다른 타입의 값들을 비교해본다.

 

예제 2

파이썬에서 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"}를 출력한다.

 

 

예제 3ㅑ

SCE를 이용해 위와 같은 구문을 만들 수 있다.

 

 

반응형