단락 평가(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

+ Recent posts