[Python] short-circuit evaluation
short-circuit Evaluation
and나or로 boolean 값을 다룰 때 연산을 최소화하기 위한 방법andand는 두 값이 모두 참일때만True를 반환하고 나머지 경우에는False를 반환- (A
andB)에서 A가False$\to$ A가 거짓이면 B 연산 안함 - A가
True면 B의 참, 거짓이 (AandB)의 참거짓을 결정 $\to$ B를 반환
- (A
or
or은 두 값 모두 거짓일때만False를 반환하고 나머지 경우에는True를 반환- (A
orB)는 둘 중 하나만 참이면True$\to$ A가 참이면 B 연산 안함 - 마찬가지로 A가
False이면 B의 참, 거짓이 (AorB)의 참거짓을 결정 $\to$ B를 반환
- (A
Bitwise Operators
- boolean 연산의 두 operand가 function의 결과로 얻어지는 등의 경우와 같이 반드시 연산이 필요한 경우에는 bitwise operator를 사용
- bitwise operator는 양쪽의 operand의 연산을 먼저 수행하고 비교함
-
: bitwise or, & : bitwiseand
Example
and vs &
- line 2에서
and의 앞의 operand가True이기 때문에15부분은 연산하지 않고 값을 반환 - 반면 line 3에서
&는 두 operand의 boolean을 연산한 후에 비교해True를 반환- numeric에 대해서는 0을 제외한 모든 수는 True
or vs |
- line 10에서
or의 앞의 operand가False이기 때문에15부분은 연산하지 않고 값을 반환