logo

Ключове слово Python assert

Твердження Python у будь-якій мові програмування є інструменти налагодження, які допомагають у плавному перебігу коду. Твердження — це в основному припущення, про які програміст знає або завжди бажає бути правдивими, і тому поміщає їх у код, щоб їхня помилка не дозволила коду виконуватися далі.

Затвердження ключового слова в Python

Простіше кажучи, ми можемо сказати, що твердження – це булевий вираз, який перевіряє, чи є твердження Істинним чи Хибним. Якщо оператор істинний, він нічого не робить і продовжує виконання, але якщо оператор має значення False, він зупиняє виконання програми та видає помилку.

Блок-схема оператора Python Assert

assert у Python

Блок-схема оператора Python Assert



Синтаксис ключового слова assert Python

У Python, стверджувати ключове слово допомагає виконати це завдання. Ця інструкція приймає як вхідні дані логічну умову, яка, коли повертає true, нічого не робить і продовжує звичайний потік виконання, але якщо вона обчислена як false, тоді вона викликає AssertionError разом із наданим необов’язковим повідомленням.

Синтаксис: умова підтвердження, повідомлення_про_помилку (необов'язково)

Параметри:

  • хвороба : Логічна умова, яка повертає істину або хибність.
  • повідомлення про помилку : Необов’язковий аргумент, який друкується в консолі у випадку AssertionError

Повернення: Повертає AssertionError, якщо умова оцінюється як false разом із повідомленням про помилку, яке надається.

Ключове слово Python assert без повідомлення про помилку

Цей код намагається продемонструвати використання assert у Python, перевіряючи, чи значення b дорівнює 0 перед виконанням операції ділення. a ініціалізується значенням 4, а b ініціалізується значенням 0. Програма друкує повідомлення. Значення a / b таке: . Оператор assert перевіряє, чи b не дорівнює 0. Оскільки b дорівнює 0, assert інструкція не виконується та викликає помилку AssertionError.
Оскільки невдалий оператор assert викликає виняток, програма завершує роботу та не продовжує виконувати оператор print у наступному рядку.

Python3


списки java



# 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 assert b != 0 11 print(a / b) AssertionError:>

Ключове слово Python assert із повідомленням про помилку

Цей код намагається продемонструвати використання assert у Python, перевіряючи, чи значення b дорівнює 0 перед виконанням операції ділення. a ініціалізується значенням 4, а b ініціалізується значенням 0. Програма друкує повідомлення. Значення a / b таке: . Оператор assert перевіряє, чи b не дорівнює 0. Оскільки b дорівнює 0, assert інструкція не виконується та викликає помилку AssertionError разом із повідомленням Помилка нульового ділення .
Оскільки ан виняток викликається невдалим оператором assert, програма завершує роботу та не продовжує виконувати оператор print у наступному рядку.

Python3




# 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 із повідомленням Length and width must be positive if it is false. Якщо твердження вірне, функція повертає площу прямокутника; якщо воно false, завершується з помилкою. Щоб показати, як використовувати assert у різних ситуаціях, функція викликається двічі, один раз із позитивними вхідними даними, а другий раз із негативними вхідними даними.

Python3




# 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

Python3




# 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.

Python3




# 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 перевіряють, чи значення, пов’язані з ключами apple, banana та cherry у словнику my_dict, дорівнюють 1, 2 і 3 відповідно. Якщо будь-яке з тверджень не виконується, це викликає AssertionError. Якщо всі твердження прийнятні, програма продовжує роботу та друкує вміст словника.

Python3




# 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)>

протокол udp
>

>

Вихід:

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

Практичне застосування

Це має набагато більшу користь для ролей тестування та забезпечення якості в будь-якому домені розробки. Залежно від програми використовуються різні типи тверджень. Нижче наведена простіша демонстрація програми, яка дозволяє відправляти лише партію з усією гарячою їжею, інакше відхиляє всю партію.

Python3




# 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'> )>

>

>

Вихід:

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-атаки.