Python assert (): A Beginner Guide to Understanding and Using Keyword

Python assert (): A Beginner Guide to Understanding and Using Keyword

6 mins read359 Views Comment
Vikram Singh
Assistant Manager - Content
Updated on Oct 18, 2023 13:22 IST

In this article, we will learn how, and when to use the assert() statement in python with the help of examples. Later in the article we will also discuss the benefits and some best practices of using assert() function in python.


Table of Content

Explore How to Find an Armstrong Number Using Python

What is the assert() statement in Python?

The assert keyword is a built-in function that tests whether a condition is true or false. If the condition is true, the program continues to run as normal. If the condition is false, the assert statement will raise an AssertionError, and the program will stop running. In other words, the assert keyword is a way to ensure that certain conditions are met in your code and to raise an error if those conditions are not met.

Syntax of the assert keyword

# Syntax of Python Assert Keyword
assert condition, error_message(optional)
Copy code


condition: Boolean Condition – True or False

error_message: It is an Optional that we want in case of AssertionError

What is Programming What is Python
What is Data Science What is Machine Learning

Flowchart of Python assert Statement

assert() statement should return either True or False. If the expression is True, the program continues as normal. If the expression is False, an AssertionError is raised, and the program stops running.


Now, let’s take an example to get a better understanding.

Example-1: Define a function that divides the two values but returns an error message (‘cannot divide by zero) if the denominator is zero.

def divide(a, b):
assert b != 0, "Cannot divide by zero"
return a / b
Copy code

Now, we will check the return value of the above function.

Case-1: Both (a, b) are non-zero

divide (2, 4)
Copy code



Case-2: a is non-zero, and b is zero

divide (2, 0)
Copy code



Must Read: Python Input Function

Example-2: Define a function to calculate the average of a list of a number and using the assert check whether the list is not empty, and if empty return an error.

# Define a function to calculate the average of a list of numbers
def calculate_average(numbers):
# Check that the input is not an empty list
assert len(numbers) > 0, "Error: List is empty"
# Calculate the sum of the numbers
total = sum(numbers)
# Calculate the average and return it
average = total / len(numbers)
return average
Copy code

Above, we have defined a function to calculate the average of numbers in the list (here, we will take list as an input). Now, we will define assert keyword that will check whether the input list is empty or not. If the list is empty, it will raise an error: Error: List is Empty.

Now, let’s given input to the above defined function.

Case-1: List is not empty

# Calculate the aerage of a list of numbers
numbers = [2, 4, 6, 8, 10]
average = calculate_average(numbers)
print(f"The average of {numbers} is {average}.")
Copy code



Case-2: List is empty

# Try to calculate the average of an empty list
empty_list = []
average = calculate_average(empty_list)
Copy code



Also Read: All About Python Lists Method

Also Read: Python List Program for Beginner

Example -3: Define a function to calculate the factorial of a number, and using assert check whether the input number is positive or not and if the input number is not positive, return an error message.

# Define a function to calculate the factorial of a positive integer
def factorial(n):
assert n >= 0, "Error: n must be a non-negative integer"
# Base case: factorial of 0 is 1
if n == 0:
return 1
# Recursive case: multiply n by the factorial of n-1
return n * factorial(n-1)
Copy code

In the above program, we have defined a function to find the factorial of a positive integer, and we have used assert keyword to check whether the input number is a non-negative integer or not, if the input is non-negative it will return an error message: “Error: n must be a non-negative integer”.

Now, let’s given input to the above defined function.

Case-1: Input integer is a positive integer

# Calculate the factorial of 5
n = 5
result = factorial(n)
print(f"The factorial of {n} is {result}.")
Copy code

Case-2: Input is not a positive integer

# Try to calculate the factorial of -1
n = -1
result = factorial(n)
Copy code



Must Read: How to Calculate the Factorial of a Number in Python

When to use assert () statement in Python?

Assert statements are helpful when you want to test specific assumptions about your code. For example, verify that a function is receiving the correct input or that a list is not empty before performing some operation.

Here are some scenarios where you might use assert statements:

  • Checking the preconditions of a function before executing it.
  • Verifying the correctness of values returned by a function.
  • Ensuring that a specific condition is met before executing the code.
  • Checking for errors in your code during development and testing.

Benefits of using assert () statement in Python

assert statement in Python is a debugging aid that tests a condition and triggers an error if the condition is not met. Here are some benefits of using assert statement:

  • Improving Code Reliability: assert () statement in Python helps to ensure that your code is working correctly by checking that your assumptions about your code are correct. In case assertion fails, it means there must be some error in the code.
  • Simplifying Debugging: assert () statement helps to identify the location of an error in your code. When an assertion fails, Python raises an AssertionError exception with a message that indicates the source of the problem.
  • Encouraging Good Programming Practices: assert statements encourage you to write testable and maintainable code. By checking assumptions in your code, you can catch errors early and prevent them from causing more significant problems later.

Also Read: Getting started with Python Strings

Also Read: String Formatting in Python

Programming Online Courses and Certification Python Online Courses and Certifications
Data Science Online Courses and Certifications Machine Learning Online Courses and Certifications

Best practices for using Python assert ()

Here are some best practices for using the assert() keyword in your Python code:

  • Use assert() to test for conditions that should always be true. If the condition can be false under certain circumstances, use if-else statements instead.
  • Keep your error messages informative and concise. They should help you identify the source of the error quickly.
  • Avoid using assert() in production code. It is intended as a debugging aid and can be turned off with the -O (optimize) flag.
  • Use assert() to catch errors early on in the development process. It can save you time and effort in the long run.

End Notes

In conclusion, the assert() keyword is a powerful tool in Python that can help developers ensure that their code is working as expected. It is a simple yet effective way to catch bugs early in development. You can write more robust and reliable Python programs by understanding how the assert() keyword works and how to use it in your code.

Top Trending Article

Top Online Python Compiler | How to Check if a Python String is Palindrome | Feature Selection Technique | Conditional Statement in Python | How to Find Armstrong Number in Python | Data Types in Python | How to Find Second Occurrence of Sub-String in Python String | For Loop in Python |Prime Number | Inheritance in Python | Validating Password using Python Regex | Python List |Market Basket Analysis in Python | Python Dictionary | Python While Loop | Python Split Function | Rock Paper Scissor Game in Python | Python String | How to Generate Random Number in Python | Python Program to Check Leap Year | Slicing in Python

Interview Questions

Data Science Interview Questions | Machine Learning Interview Questions | Statistics Interview Question | Coding Interview Questions | SQL Interview Questions | SQL Query Interview Questions | Data Engineering Interview Questions | Data Structure Interview Questions | Database Interview Questions | Data Modeling Interview Questions | Deep Learning Interview Questions |

About the Author
Vikram Singh
Assistant Manager - Content

Vikram has a Postgraduate degree in Applied Mathematics, with a keen interest in Data Science and Machine Learning. He has experience of 2+ years in content creation in Mathematics, Statistics, Data Science, and Mac... Read Full Bio