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 the divisor is not equal to zero.
It is merely 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.
The 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. It is the most essential for the testing or quality assurance in any application development area. The syntax of the assert keyword is given below.
assert condition, error_message(optional)
Why Assertion is used
It is a debugging tool, and its primary task is to check the condition. If it finds that the 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.
This example shows the working of assert with the error message.
assert len(scores) != 0,"The List is empty."
scores2 = [67,59,86,75,92]
print("The Average of scores2:",avg(scores2))
scores1 = 
print("The Average of scores1:",avg(scores1))
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 continue to run. However, scores1 doesn’t satisfy the condition and gives an AssertionError.
This example shows the “Divide by 0 error” in the console.
# 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)
x / y value is :
Runtime Exception :
Traceback (most recent call last): File "main.py", line 6, in <module> assert y != 0, "Divide by 0 error" AssertionError: Divide by 0 error
In the above example, we have initialized an integer variable, i.e., x=7, y=0, and try to print the value of x/y as an output. The Python interpreter generated a Runtime Exception because of the assert keyword found the divisor as zero then displayed “Divide by 0 error” in the console.