An AssertionError occurs when an assert statement evaluates to False. Assertions are commonly used during development to verify assumptions, validate inputs and detect logical errors early in a program.
x = 10
y = 0
assert y != 0, "Denominator cannot be zero"
print(x / y)
Output:
ERROR!
Traceback (most recent call last):
File "<main.py>", line 4, in <module>
AssertionError: Denominator cannot be zero
Explanation: The statement assert y != 0 checks whether y is non-zero. Since the condition is False, Python raises an AssertionError and displays the provided message.
Syntax
assert condition, error_message
Parameters:
- condition: Boolean expression that must evaluate to True.
- error_message (Optional): Message displayed when the assertion fails.
Examples
1. Basic Assertion Check: Assertions can be used to validate values before performing an operation.
age = -5
assert age >= 0, "Age cannot be negative"
print(age)
Output
ERROR!
Traceback (most recent call last):
File "<main.py>", line 3, in <module>
AssertionError: Age cannot be negative
Explanation: assert age >= 0 ensures that the age value is valid. Since age is negative, an AssertionError is raised.
2. Handling AssertionError with try-except: An AssertionError can be caught and handled using a try-except block.
try:
marks = -10
assert marks >= 0, "Marks cannot be negative"
except AssertionError as e:
print(e)
Output
Marks cannot be negative
Explanation: The failed assertion raises an exception, which is caught by except AssertionError as e, allowing the program to continue gracefully.
3. Validating Function Inputs: Assertions are useful for checking function arguments before processing them.on
def withdraw(balance, amount):
assert amount <= balance, "Insufficient balance"
return balance - amount
print(withdraw(5000, 2000))
print(withdraw(3000, 4000))
Output
3000
ERROR!
Traceback (most recent call last):
File "<main.py>", line 6, in <module>
File "<main.py>", line 2, in withdraw
AssertionError: Insufficient balance
Explanation: assert amount <= balance verifies that the withdrawal amount does not exceed the available balance.
4. Using Assertions in Mathematical Calculations: Assertions can verify conditions required for a calculation.
import math
def square_root(n):
assert n >= 0, "Number must be non-negative"
return math.sqrt(n)
print(square_root(25))
print(square_root(-4))
Output
5.0
ERROR!
Traceback (most recent call last):
File "<main.py>", line 8, in <module>
File "<main.py>", line 4, in square_root
AssertionError: Number must be non-negative
Explanation: assert n >= 0 ensures that only valid values are passed to math.sqrt().
Uses of Assertions
- Input Validation: Verify that user or function inputs meet expected conditions.
- Debugging: Detect logical errors during development.
- Function Testing: Check whether functions return expected results.
- State Verification: Ensure important program conditions remain valid throughout execution.
