[Python] assert statement

숭글·2023년 2월 2일
0
post-custom-banner

assert

: 디버깅 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와 함께 발생시킨다.

Example

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

📖 docs <assert>

profile
Hi!😁 I'm Soongle. Welcome to my Velog!!!
post-custom-banner

0개의 댓글