top

Search

Python Tutorial

.

UpGrad

Python Tutorial

Assert in Python

Introduction

Python is a computer programming language used for developing web-based applications. It was developed by Guido Van Rossum in the year 1991. 

Developers have used it for many years as it’s a very important tool. There are codes used in Python. However, many times, there are frequent problems with the code inserted. Asserts in Python help in identifying those errors and fix them. 

Let us dive deep into the topic of asserts in Python.

Overview

During programming, when a programmer makes certain assumptions, he knows that it will be true no matter what. However, if a certain condition evaluates to false if it should be true, then it shouldn’t be allowed to proceed further as there are chances of error. The program needs to be terminated. And how is the task achieved, it is achieved with the help of an assert in Python.

What is an Assert?

Assert is a keyword in Python that refers to a debugging tool that confirms or basically tests a particular condition.

Asserts, in general terms, means confidently stating something. Similarly, In Python, assertions are assumptions that are confidently stated. For instance, while writing a division function to use the division arithmetic operator, the programmer states that the divisor function should not be 0, and the programmer asserts that the divisor is not equal to zero. This assert function enables them to identify the errors and rectify them.

An assert in Python checks and tests a specific code. It tests a particular expression, and if it returns the condition to be correct true, it does not do anything and proceeds further to the next code. However, if it appears to be false, it raises an error with an optional error message.

The motive of asserts in Python is to help developers with unrecoverable errors in the program like “File not Found.”

It is a kind of self-check in the Python program similar to a quality assurance unit in a manufacturing plant.

Why is Assertion used?

Assert, as mentioned earlier, is a debugging tool in Python that pops up an error message if the assumption comes to be false.

Generally, an assertion is used in Python for the following purposes:

  • To check the output of a specific input function

  • Test the written code

  • Check the values of the arguments.

Example of an error with the assert in Python

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))    

The Output of the written Code

The Average of scores2: 75.8
AssertionError: The List is empty.

Explanation – As the average score2 is correct, it is shown accurately.

However, the scores1 does not satisfy the given condition. Hence, the error message pops out.

Where is Assertion in Python used?

The assert keyword in Python is used while debugging code. If you have entered a correct condition, the assert keyword tests it. If it turns out to be true, you can continue to go on with writing the complete code.

However, if the expression returns false, it will raise an Assertion Error.

Python Assert Keyword Syntax

Let’s look at the example given below:

x = "How are you"

#if condition returns False, AssertionError is raised:

assert x == "I am Fine," "x should be 'How are you'"

Python assert keyword without error message

The following code is trying to check the use of assert by testing the value of y is 0 before performing the division operation using a division operator. 

Here, x = 4

And y = 0.

The programs pop up a message: “The value of x/y is: “The assert statement checks whether y is not equal to 0. As we can see, the value of y = 0, the assert assumptions loaded fails and returns an Assertion Error.

As already an assertion is raised, the program terminates and does not proceed further.

# initializing number
x = 4
y = 0

# using assert to check for 0
print("The value of x/y is: ")
assert y != 0
print(x / y)

Python assert keyword with an error message

The following code is trying to check the use of assert by testing the value of y is 0 before performing the division operation using a division operator. 

Here, x = 4

And y = 0.

The programs pop up a message: “The value of x/y is: “The assert statement checks whether y is not equal to 0. As we can see, the value of y = 0, the assert assumptions loaded fails and returns an Assertion Error with the message “Zero Division Error.”

As an assertion is raised, the program terminates and does not proceed further.

x = 4
y = 0

# using assert to check for 0
print("The value of x / y is: ")
assert y != 0, "Zero Division Error"
print(x / y)

Assert Inside a Function

To check whether the rectangle’s length and breadth are positive, the assert is used in the following given example. 

However, the Python assert statement raises an error with the message “Length and breadth must be positive” if the written statement assert is false. 

If the written assert statement is true, the function gives the area of the rectangle. 

If it is false, an error message pops out. 

def calculate_rectangle_area(length, breadth):
# Assertion to check that the length and breadth are positive
assert length > 0 and width > 0, "Length and breadth"+ \
"must be positive"
# Calculation of the area
= length * breadth
# Return statement
return area


# Calling the function with positive inputs
area1 = calculate_rectangle_area(5, 6)
print("Area of a rectangle with length 5 and width 6 is", area1)

# Calling the function with negative inputs
area2 = calculate_rectangle_area(-5, 6)
print("Area of a rectangle with length -5 and breadth 6 is", area2)

Output -  AssertionError: Length and breadth must be positive

Assert Python with Boolean Condition

In this given example, we use an assert with a Boolean condition a<b is true. If the stated assertion is true, it continues on with the program. However, a Python assert message would appear if it returns to be false.

A = 10
b = 20

# Asserting a boolean condition
asserts a < b

# Printing the values of a and b
print(“a =,” b)
print(“a =,” b)

Output:

a = 10
b = 20

Assert Type of Variable in Python

In the below-given example, the assert statement tests if the type of the variables used x and y are str and int respectively. 

If the assertion passes, it will go on with the program. However, if the assertion proves to be false, it raises an assertion error.

# Initializing variables
x = "Bye"
y = 50

# Asserting the type of a variable
assert type(x) == str
assert type(y) == int

# Printing the values of x and y
print("x =," x)
print("y =," y)

Output:

x = "Bye"
y = 50

Asserting Dictionary Values

In the below-given example, the assert statement Python tests if the values associated with the keywords “mango,” “olives,” and “pears” in the dictionary _dict are 1, 2, and 3, respectively. 

If the assertion is true, it goes on with the program and prints the dictionary's content.

If it is false, it will raise an assertion error.

my_dict = {"mango": 1, "olives": 2, "pears": 3}

# Asserting the contents of the dictionary
assert my_dict["mango"] == 1
assert my_dict["olives"] == 2
assert my_dict["pears"] == 3

# Printing the dictionary
print("My dictionary contains the following key-value pairs:", my_dict)

Output:

My dictionary contains the following key-value pairs: 

{mango: 1, olives: 2, pears: 3}

Why Use Python Assert Statement?

As mentioned earlier, it is a debugging tool for identifying written code errors.

  1. Rapidly identify errors – Asserts are used for rapidly finding errors in the codes written. 

  2. Acts as documentation and records – Assertion statements enable you to create a standard operating procedure. It helps others to understand and use it well.

  3. Acts as a security check and quality assurance tool.

Conclusion

Asserts in Python enable developers to recognize the errors and correct them. They keep a security check and work as a quality assurance tool while writing codes in Python. Thus, it can be seen that assert functions in Python are very crucial.

FAQs

1. What is Python?

Python is a programming language used for developing web-based applications. It was developed by Guido Van Rossum in the year 1991.

2. What is the average salary of a Python Developer in India?

The average salary of a Python Developer in India ranges between 5.0 to 6.0 LPA.

3. What can I become if I learn Python?

Python opens up a plethora of opportunities for individuals. After learning Python, you can become a Python Developer, Machine Learning analyst, or Data analyst.

4. Is Python good for beginners?

Yes, Python has been developed with simple codes and syntax. It’s an easy language, and programming makes it quite useful for beginners. 

5. Can Python be used to run the code on Windows?

Yes, Python’s flexibility and portability can be easily used to run the codes on platforms such as Mac OS X, Windows, Unix, and Linux.

Leave a Reply

Your email address will not be published. Required fields are marked *