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.
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.
assert condition, error_message(optional)
This example shows the working of assert with the error message.
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))
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.
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)
Traceback (most recent call last): File "main.py", line 6, inassert 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.