Python | Помилка твердження
Помилка твердження
Твердження — це концепція програмування, яка використовується під час написання коду, де користувач оголошує умову істинною стверджувати перед запуском модуля. Якщо умова є правда , елемент керування просто переходить до наступного рядка коду. У випадку, якщо так помилковий програма припиняє роботу і повертається AssertionError Виняток.
Функція стверджувати Оператор є однаковим незалежно від мови, якою він реалізований, це незалежне від мови поняття, лише синтаксис змінюється залежно від мови програмування.
Синтаксис твердження:
стверджувати умова, повідомлення про помилку (необов'язково)
Приклад 1: помилка твердження з error_message.
Python3
# AssertionError with error_message.> x> => 1> y> => 0> assert> y !> => 0> ,> 'Invalid Operation'> # denominator can't be 0> print> (x> /> y)> |
Вихід:
Traceback (most recent call last): File '/home/bafc2f900d9791144fbf59f477cd4059.py', line 4, in assert y!=0, 'Invalid Operation' # denominator can't be 0 AssertionError: Invalid Operation
Обробник винятків за замовчуванням у Python виведе error_message, написане програмістом, або просто обробить помилку без жодного повідомлення.
Обидва способи дійсні.
Обробка винятку AssertionError:
AssertionError успадковується від класу Exception, коли цей виняток виникає та викликає AssertionError, є два способи обробки: або користувач, або обробник винятку за замовчуванням.
У прикладі 1 ми побачили, як виконує роботу стандартний обробник винятків.
Тепер давайте розберемося з цим вручну.
Приклад 2
Python3
# Handling it manually> try> :> > x> => 1> > y> => 0> > assert> y !> => 0> ,> 'Invalid Operation'> > print> (x> /> y)> # the errror_message provided by the user gets printed> except> AssertionError as msg:> > print> (msg)> |
Вихід:
Invalid Operation
Практичні застосування.
Приклад 3: Тестування програми.
Python3
# Roots of a quadratic equation> import> math> def> ShridharAcharya(a, b, c):> > try> :> > assert> a !> => 0> ,> 'Not a quadratic equation as coefficient of x ^ 2 can't be 0'> > D> => (b> *> b> -> 4> *> a> *> c)> > assert> D>> => 0> ,> 'Roots are imaginary'> > r1> => (> -> b> +> math.sqrt(D))> /> (> 2> *> a)> > r2> => (> -> b> -> math.sqrt(D))> /> (> 2> *> a)> > print> (> 'Roots of the quadratic equation are :'> , r1, '', r2)> > except> AssertionError as msg:> > print> (msg)> ShridharAcharya(> -> 1> ,> 5> ,> -> 6> )> ShridharAcharya(> 1> ,> 1> ,> 6> )> ShridharAcharya(> 2> ,> 12> ,> 18> )> |
Вихід:
Roots of the quadratic equation are : 2.0 3.0 Roots are imaginary Roots of the quadratic equation are : -3.0 -3.0
Це приклад, щоб показати, як цей виняток зупиняє виконання програми, щойно умова assert стає False.
Інші корисні програми:
- Перевірка значень параметрів.
- Перевірка правильного введення/типу.
- Виявлення зловживання інтерфейсом іншим програмістом.
- Перевірка виводу функції.