In this Python tutorial, we will learn how to compute the absolute value without using the built-in function abs() function. In addition, we will explore different ways to achieve that.
Absolute Value in Python
Absolute value is a fundamental mathematical concept, essentially asking the question: “How far is this number from zero?” More technically, the absolute value of a real number
x is the non-negative value of
x without regard to its sign. In mathematical notation, it’s represented as |x|.
Absolute Value in Python without using abs() function
Python has a built-in function called
abs() which provides the absolute value of a number. For instance,
abs(-5) will return
But what if we want to compute the absolute value without using this built-in function? So, let’s explore different ways to achieve that.
Using Python Conditional Statements
The simplest way to calculate the absolute value without using the
abs() function is through Python conditional statements. You can check if the number is negative, and if so, multiply it by
-1 to convert it to positive.
Here’s a simple implementation:
def absolute_value(num): """This function returns the absolute value of the entered number""" if num >= 0: return num else: return -num # Test the function with positive, negative, and zero values print(absolute_value(10)) print(absolute_value(-20)) print(absolute_value(0))
- Here, the
absolute_value()Python function takes a numerical input
num. It then checks whether
numis greater than or equal to zero.
- If it is, the Python function returns
numunchanged, because it’s already a positive number.
numis less than zero (i.e., it’s negative), the Python function returns
-num, effectively changing its sign to make it positive.
Using the Python Square Root
Another method involves using the property of Python square roots. The square of any real number, whether positive or negative, is always non-negative. By taking the square root of the square of a number, we can get its absolute value.
Here’s how it can be implemented:
import math def absolute_value(num): """This function returns the absolute value of the entered number""" return math.sqrt(num ** 2) # Test the function with positive, negative, and zero values print(absolute_value(10)) print(absolute_value(-20)) print(absolute_value(0))
- This Python
absolute_value()function takes a number
numand first squares it (
num ** 2). This will always be a non-negative number.
- Then, the Python
math.sqrt()function takes the square root of this result. The final output is the absolute value of
Using Python Bit Manipulation
This Python method is a bit complex and is primarily applicable for integers. It involves right-shifting the integer’s bits, which effectively divides the number by 2, and then negating the shifted value if necessary.
Here’s how you can do it:
def absolute_value(num): """This function returns the absolute value of the entered number""" mask = num >> 31 return (num ^ mask) - mask # Test the function with positive, negative, and zero values print(absolute_value(10)) print(absolute_value(-20)) print(absolute_value(0))
- In this code,
mask = num >> 31: This right shift operation moves the sign bit (the leftmost bit in a 32-bit integer) to the rightmost position. If
numis positive or zero,
maskwill be 0. If
maskwill be -1 due to the way Python handles right shifts for negative numbers.
(num ^ mask) - mask: This expression effectively removes the sign bit from
num. The XOR operation (
^) flips the bits of
maskis -1 (i.e., if
numis negative) and leaves
maskis 0 (i.e., if
numis non-negative). Subtracting
maskthen adjusts the result to be the correct absolute value.
While Python’s built-in
abs() function is convenient and efficient, there are several alternative methods to calculate the absolute value of a number without using
These methods involve different approaches, from conditional statements to mathematical properties to bitwise manipulation, and serve as a great way to explore Python’s versatility and power.
You may also like to read the following Python tutorials.
- Python find number in String
- How to Convert Python DataFrame to JSON
- How to get unique values from a list in Python
I am Bijay Kumar, a Microsoft MVP in SharePoint. Apart from SharePoint, I started working on Python, Machine learning, and artificial intelligence for the last 5 years. During this time I got expertise in various Python libraries also like Tkinter, Pandas, NumPy, Turtle, Django, Matplotlib, Tensorflow, Scipy, Scikit-Learn, etc… for various clients in the United States, Canada, the United Kingdom, Australia, New Zealand, etc. Check out my profile.