Python assert Statement

The assert statement in Python is used for debugging purposes. It tests whether a condition is true, and if it is not, it raises an AssertionError exception with an optional message. It is mainly used to catch bugs during development by checking whether a condition holds true. When the condition is false, it helps identify logical errors in the program by stopping execution and raising an error.

Syntax of assert

The syntax of the assert statement is:


assert condition, message

- condition: This is the expression that is being evaluated. If the condition evaluates to True, the program continues execution as usual.
- message: This is an optional message that will be displayed when the assertion fails (i.e., when the condition is False).

How assert Works

If the condition evaluates to True, nothing happens, and the program continues executing normally.
If the condition evaluates to False, an AssertionError exception is raised. The message (if provided) will be printed as part of the exception.

Examples

1. Simple Assertion


x = 10
assert x == 10  # This will pass because the condition is True
assert x == 5   # This will raise an AssertionError because the condition is False
            

Output

AssertionError: assert x == 5

2. Assert with a Message


x = 5
assert x == 10, "x should be equal to 10"  # This will raise an AssertionError with the provided message
            

Output

AssertionError: x should be equal to 10

Use Cases for assert

The assert statement is mainly used for debugging and verifying that the code is working as expected during development. Common use cases include:

Disabling assert in Production Code

Assertions can be globally disabled with the -O (optimize) command-line switch when running Python scripts. This can be helpful in production environments where you don't want assertions to interfere with performance.
python -O script.py

When assertions are disabled, the assert statements are completely ignored, and no error is raised.
- The assert statement is a useful debugging tool to ensure that conditions hold true at certain points in your program.
- If the condition is false, an AssertionError is raised with an optional message.
- Assertions can be disabled in production to improve performance.