Assert

Python assert keyword is defined as a debugging tool that tests a condition. The Assertions are mainly the assumption that asserts or state a fact confidently in the program. For example, while writing a division function, the divisor should not be zero, and you assert that divisor is not equal to zero.

It is simply a boolean expression that has a condition or expression checks if the condition returns true or false. If it is true, the program does not do anything, and it moves to the next line of code. But if it is false, it raises an AssertionError exception with an optional error message.

he main task of assertions is to inform the developers about unrecoverable errors in the program like "file not found", and it is right to say that assertions are internal self-checks for the program. They work by declaring some conditions as impossible in your code. If one of the conditions does not hold, that means there is a bug in the program.

Why Assertion is used

It is a debugging tool, and its primary task is to check the condition. If it finds that condition is true, it moves to the next line of code, and If not then stops all its operations and throws an error. It points out the error in the code.

Where Assertion in Python used

  • Checking the outputs of the functions.
  • Used for testing the code.
  • In checking the values of arguments.
  • Checking the valid input.
Syntax
snippet
assert condition, error_message(optional)
Example #1

This example shows the working of assert with the error message.

snippet
def avg(scores):
    assert len(scores) != 0,"The List is empty."
    return sum(scores)/len(scores)

scores2 = [67,59,86,75,92]
print("The Average of scores2:",avg(scores2))

scores1 = []
print("The Average of scores1:",avg(scores1))
Output
The Average of scores2: 75.8 AssertionError: The List is empty.

Explanation: In the above example, we have passed a non-empty list scores2 and an empty list scores1 to the avg() function. We received an output for scores2 list successfully, but after that, we got an error AssertionError: List is empty.The assert condition is satisfied by the scores2 list and lets the program to continue to run. However, scores1 doesn't satisfy the condition and gives an AssertionError.

Example #2

This example shows the "Divide by 0 error" in the console.

snippet
# initializing number 
x = 7
y = 0
# It uses assert to check for 0 
print ("x / y value is : ") 
assert y != 0, "Divide by 0 error"
print (x / y)
Output
x / y value is :

Runtime Exception

snippet
Traceback (most recent call last):
  File "main.py", line 6, in 
    assert y != 0, "Divide by 0 error"
AssertionError: Divide by 0 error

In the above example, we initialize an integer variable, i.e., x=7, y=0, and try to print the value of x/y as an output. The compiler generates a Runtime Exception because of the assert keyword which displays "Divide by 0 error" in the console.

Related Tutorial
Follow Us
https://www.facebook.com/Rookie-Nerd-638990322793530 https://twitter.com/RookieNerdTutor https://plus.google.com/b/117136517396468545840 #
Contents +