: 디버깅 assertion을 프로그램에 넣을 수 있다.
특정 지점에서 참이어야하는 조건을 지정한 후, 참이 아니라면 어설션이 실패하여 프로그램 실행이 중단되도록 한다.
assert_stmt ::= "assert" expression ["," expression]
assert 뒤 ','를 기준으로 한 개 또는 두 개의 표현식을 받는다.
optimization모드일 때는 (옵션 -O 사용.) assert문을 컴파일 시에 내보내지 않는다. (읽지 않는다.)
assert expression
if __debug__:
if not expression: raise AssertionError
표현식을 하나만 지정하여 사용할 수 있다.
표현식이 참이 아닌 경우 AssertionError를 발생시킨다.
assert expression1, expression2
if __debug__:
if not expression1: raise AssertionError(expression2)
표현식을 두 개인 경우이다.
expression1이 참이 아닌 경우 AssertionError를 expression2와 함께 발생시킨다.
num1 = [-1, -2, -3, -4]
num2 = [i for i in num1 if i > 0]
num2.sort()
minValue = num2[0]
IndexError: list index out of range 가 발생한다.
num2에 인덱스로 접근하기 전에 num2의 length가 1 이상 일때만 이후 진행을 보장해야한다.
num1 = [-1, -2, -3, -4]
num2 = [i for i in num1 if i > 0]
num2.sort()
assert len(num2) > 0
minValue = num2[0]
AssertionError가 발생한다.
num1 = [-1, -2, -3, -4]
num2 = [i for i in num1 if i > 0]
num2.sort()
assert len(num2) > 0, "there is no element in num2"
minValue = num2[0]
AssertionError: there is no element in num2 가 발생한다.
num1 = [1, 2, 3, 4]
num2 = [i for i in num1 if i > 0]
num2.sort()
assert len(num2) > 0, "there is no element in num2"
minValue = num2[0]
print(minValue)
output >
1