logo

Python 어설션 키워드

파이썬 어설션 모든 프로그래밍 언어에는 원활한 코드 흐름을 돕는 디버깅 도구가 있습니다. 어설션은 주로 프로그래머가 사실임을 알고 있거나 항상 사실이기를 원한다는 가정으로 이를 코드에 넣어서 이러한 가정이 실패해도 코드가 더 이상 실행되지 않도록 합니다.

Python에서 키워드 주장

더 간단하게 말하면, 주장은 진술이 참인지 거짓인지 확인하는 부울 표현식이라고 말할 수 있습니다. 명령문이 true이면 아무 작업도 수행하지 않고 실행을 계속하지만, 명령문이 False이면 프로그램 실행을 중지하고 오류가 발생합니다.

Python Assert 문의 흐름도

Python에서 주장

Python Assert 문의 흐름도



Python Assert 키워드 구문

파이썬에서는 주장하다 키워드는 이 작업을 수행하는 데 도움이 됩니다. 이 문은 부울 조건을 입력으로 사용합니다. true를 반환하면 아무 것도 하지 않고 정상적인 실행 흐름을 계속합니다. 그러나 false로 계산되면 제공된 선택적 메시지와 함께 AssertionError가 발생합니다.

구문: 조건 주장, error_message(선택)

매개변수:

  • 상태 : true 또는 false를 반환하는 부울 조건입니다.
  • 에러 메시지 : AssertionError가 발생한 경우 콘솔에 인쇄될 선택적 인수입니다.

보고: 조건이 false로 평가되는 경우 오류 메시지와 함께 AssertionError를 반환합니다.

오류 메시지가 없는 Python Assert 키워드

이 코드는 나누기 연산을 수행하기 전에 b 값이 0인지 확인하여 Python에서 Assert의 사용을 보여주려고 합니다. a는 값 4로 초기화되고 b는 값 0으로 초기화됩니다. 프로그램은 The value of a / b is:라는 메시지를 인쇄합니다. Assert 문은 b가 0과 같지 않은지 확인합니다. b가 0이므로 Assert는 문이 실패하고 AssertionError가 발생합니다.
실패한 Assert 문으로 인해 예외가 발생했기 때문에 프로그램이 종료되고 다음 줄에서 print 문을 계속 실행하지 않습니다.

파이썬3


그것은



# initializing number> a>=> 4> b>=> 0> # using assert to check for 0> print>(>'The value of a / b is : '>)> assert> b !>=> 0> print>(a>/> b)>

>

>

산출:

The value of a / b is : --------------------------------------------------------------------------- AssertionError Traceback (most recent call last) Input In [19], in () 8 # using assert to check for 0 9 print('The value of a / b is : ') --->10 주장 b != 0 11 print(a / b) AssertionError:>

오류 메시지가 있는 Python Assert 키워드

이 코드는 나누기 연산을 수행하기 전에 b 값이 0인지 확인하여 Python에서 Assert의 사용을 보여주려고 합니다. a는 값 4로 초기화되고 b는 값 0으로 초기화됩니다. 프로그램은 The value of a / b is:라는 메시지를 인쇄합니다. Assert 문은 b가 0과 같지 않은지 확인합니다. b가 0이므로 Assert는 문이 실패하고 메시지와 함께 AssertionError가 발생합니다. 영분할 오류 .
이후 예외 실패한 Assert 문으로 인해 발생하면 프로그램이 종료되고 다음 줄에서 print 문을 계속 실행하지 않습니다.

파이썬3




# Python 3 code to demonstrate> # working of assert> # initializing number> a>=> 4> b>=> 0> # using assert to check for 0> print>(>'The value of a / b is : '>)> assert> b !>=> 0>,>'Zero Division Error'> print>(a>/> b)>

>

>

산출:

AssertionError: Zero Division Error>

함수 내부에서 주장

이 예제에서는 함수 내에서 Assert 문을 사용하여 면적을 계산하기 전에 직사각형의 길이와 너비가 양수인지 확인합니다. 주장은 메시지 길이와 너비가 거짓인 경우 양수여야 함과 함께 AssertionError를 발생시킵니다. 주장이 참이면 함수는 직사각형의 면적을 반환합니다. false인 경우 오류와 함께 종료됩니다. 다양한 상황에서 Assert를 활용하는 방법을 보여주기 위해 함수는 두 번 호출됩니다. 한 번은 양수 입력으로, 한 번은 음수 입력으로 호출됩니다.

파이썬3




# Function to calculate the area of a rectangle> def> calculate_rectangle_area(length, width):> ># Assertion to check that the length and width are positive> >assert> length>>0> and> width>>0>,>'Length and width'>+> > >'must be positive'> ># Calculation of the area> >area>=> length>*> width> ># Return statement> >return> area> # Calling the function with positive inputs> area1>=> calculate_rectangle_area(>5>,>6>)> print>(>'Area of rectangle with length 5 and width 6 is'>, area1)> # Calling the function with negative inputs> area2>=> calculate_rectangle_area(>->5>,>6>)> print>(>'Area of rectangle with length -5 and width 6 is'>, area2)>

>

>

산출:

AssertionError: Length and widthmust be positive>

부울 조건으로 어설션

이 예에서 Assert 문은 부울 조건 x가 다음과 같은지 확인합니다.

파이썬3




# Initializing variables> x>=> 10> y>=> 20> # Asserting a boolean condition> assert> x # Printing the values of x and y print('x =', x) print('y =', y)>

>

>

산출:

x = 10 y = 20>

Python에서 변수 유형 확인

이 예에서 Assert 문은 변수 a와 b의 유형이 각각 str과 int인지 확인합니다. 어설션 중 하나라도 실패하면 AssertionError가 발생합니다. 두 주장이 모두 통과되면 프로그램은 계속해서 a와 b의 값을 인쇄합니다.

파이썬3




# Initializing variables> a>=> 'hello'> b>=> 42> # Asserting the type of a variable> assert> type>(a)>=>=> str> assert> type>(b)>=>=> int> # Printing the values of a and b> print>(>'a ='>, a)> print>(>'b ='>, b)>

>

>

산출:

a = hello b = 42>

사전 값 주장

이 예에서 Assert 문은 my_dict 사전의 apple, 바나나, 체리 키와 연결된 값이 각각 1, 2, 3인지 확인합니다. 어설션 중 하나라도 실패하면 AssertionError가 발생합니다. 모든 어설션이 통과되면 프로그램은 계속해서 사전의 내용을 인쇄합니다.

파이썬3




# Initializing a dictionary> my_dict>=> {>'apple'>:>1>,>'banana'>:>2>,>'cherry'>:>3>}> # Asserting the contents of the dictionary> assert> my_dict[>'apple'>]>=>=> 1> assert> my_dict[>'banana'>]>=>=> 2> assert> my_dict[>'cherry'>]>=>=> 3> # Printing the dictionary> print>(>'My dictionary contains the following key-value pairs:'>, my_dict)>

>

>

산출:

My dictionary contains the following key-value pairs: {'apple': 1, 'banana': 2, 'cherry': 3}>

실용적인 응용 프로그램

이는 모든 개발 도메인의 테스트 및 품질 보증 역할에서 훨씬 더 큰 유용성을 갖습니다. 애플리케이션에 따라 다양한 유형의 어설션이 사용됩니다. 다음은 뜨거운 음식이 모두 포함된 배치만 발송하도록 허용하고 그렇지 않으면 전체 배치를 거부하는 프로그램에 대한 간단한 데모입니다.

파이썬3




# Python 3 code to demonstrate> # working of assert> # Application> # initializing list of foods temperatures> batch>=> [>40>,>26>,>39>,>30>,>25>,>21>]> # initializing cut temperature> cut>=> 26> # using assert to check for temperature greater than cut> for> i>in> batch:> >assert> i>>=> 26>,>'Batch is Rejected'> >print> (>str>(i)>+> ' is O.K'> )>

>

>

산출:

자바의 string.format
40 is O.K 26 is O.K 39 is O.K 30 is O.K>

런타임 예외:

AssertionError: Batch is Rejected>

Python Assert 문을 사용하는 이유는 무엇입니까?

Python에서 Assert 문은 실수를 식별하고 코드가 의도한 대로 작동하는지 확인하는 데 도움을 줄 수 있는 강력한 디버깅 도구입니다. 다음은 Assert 사용에 대한 몇 가지 근거입니다.

  1. 디버깅: 코드에서 가정한 내용은 Assert 문을 통해 확인할 수 있습니다. 코드 전반에 걸쳐 Assert 문을 배치하면 실수를 신속하게 찾고 프로그램을 디버그할 수 있습니다.
  2. 선적 서류 비치: 코드에서 Assert 문을 사용하면 문서 역할을 할 수 있습니다. Assert 문은 코드에서 설정한 가정을 명시적으로 설명하므로 다른 사람이 코드를 더 쉽게 이해하고 작업할 수 있도록 해줍니다.
  3. 테스트: 특정 요구 사항이 충족되었는지 확인하기 위해 단위 테스트에서는 Assert 문이 자주 사용됩니다. 테스트에 Assert 문을 통합하여 코드가 제대로 작동하는지, 변경 사항으로 인해 현재 기능이 손상되지 않는지 확인할 수 있습니다.
  4. 보안: Assert를 사용하여 프로그램 입력이 요구 사항을 준수하는지 확인하고 유효성을 검사할 수 있습니다. 이렇게 하면 버퍼 오버플로 및 SQL 주입 공격과 같은 보안 결함을 피할 수 있습니다.