단락 평가(Short-circuit Evaluation)
파이썬은 and나 or를 포함하는 식을 평가할 때 왼쪽에서 오른쪽으로 평가한다.
이때 평가를 멈출만한 충분한 정보를 얻으면 아직 평가하지 않는 피연산자가 있어도 바로 멈춘다.
※ or표현식에서 첫 번째 피연산자가 True이면 다음 피연산자를 보지않아도 값이 True인 것을 알 수 있다. ※ and표현식에서 첫 번째 피연산자가 False이면 다음 피연산자를 보지않아도 값이 False인 것을 알 수 있다. |
예시
오류를 일으키는 식
print(1/0)
>>Traceback (most recent call last): #ZeroDivisionError 발생
File "....................................", line 1, in <module>
print(1/0);
ZeroDivisionError: division by zero
위의 식을 or의 두 번째 피연산자로 사용하면
print((2<3)or(1/0))
>>True #두 번째 피연산자에서 오류가 발생해야하지만 그렇지않고 True가 출력
첫 번째 피연산자가 True이기때문에 두 번째 피연산자를 확인하지않고 오류도 출력하지않는다.
※결과값이 잘 출력된다고해도 프로그램 내부에 오류가 존재할 수 있음을 기억하자.
출처:파이썬 프로그래밍 교과서 개정3판
'Python' 카테고리의 다른 글
Python - 에일리어스(alias) (0) | 2020.07.29 |
---|---|
Python - 모듈(module) (0) | 2020.07.27 |
Python - 사용자 입력(input()) (0) | 2020.07.26 |
Python - 부동소수점(Floating Point), 유한 정밀도 (0) | 2020.07.24 |
Python - 문자열 변경 (0) | 2020.07.23 |