In this tutorial, we are going to discuss the different ways to calculate square root in Python.

## What is a square root?

In Mathematics, a **square root** of a number ‘*p*‘ is a number ‘*q*‘ which follows the condition **p = q ^{2}**. In Python, we have so many methods to calculate the square root of numbers. Let’s discuss some well-known methods in Python to calculate the square root of numbers.

## 1. Calculate square root using the exponent operator

In this method, we will define our own function to find the square root of a number. And to calculate the square root of a number we will be using the exponent operator (`**`

) in Python.

The defined function will take a number as an argument and return the square root of the number if it’s positive else it will print a warning. Let’s implement this in Python code.

```
# Define the user defined sqrt() function
# to calculate the square root of a number
def sqrt(N):
if N < 0:
print('Square root of negative number does not exist!')
return
else:
print(f'Square root of number {N}: {N**0.5}')
return
# Call the above defined sqrt() function
# to calculate the square root of a number
sqrt(441)
sqrt(0.81)
sqrt(6.25)
sqrt(634)
sqrt(-121)
```

**Output:**

```
Square root of number 441: 21.0
Square root of number 0.81: 0.9
Square root of number 6.25: 2.5
Square root of number 634: 25.179356624028344
Square root of negative number does not exist!
```

## 2. Using the sqrt() function

In Python, the `sqrt()`

function is a predefined function that is defined in the math module. The `sqrt()`

function returns the square root of the number passed as an argument. Let’s see how we can use the built-in `sqrt()`

function in a Python program.

```
# Import Python math module
import math as m
# Call the predefined sqrt() function
# to calculate the square root of a number
print(f'Square root of number 121: {m.sqrt(121)}')
print(f'Square root of number 0.49: {m.sqrt(0.49)}')
print(f'Square root of number 4.41: {m.sqrt(4.41)}')
print(f'Square root of number 265: {m.sqrt(265)}')
```

**Output:**

```
Square root of number 121: 11.0
Square root of number 0.49: 0.7
Square root of number 4.41: 2.1
Square root of number 265: 16.278820596099706
```

**NOTE:** If a negative number is passed as an argument to the built-in sqrt() function then it will throw a **math domain error**. Let’s see an example.

```
# Import Python math module
import math as m
# Call the predefined sqrt() function
# to calculate the square root of a negative number
m.sqrt(-125)
```

**Output:**

## 3. Using the pow() function

In this method to calculate square root, we will be using the built-in pow() function. In Python, the `pow()`

function is a predefined function that is defined in the `math`

module. The `pow()`

function takes two arguments one is base and the other is the exponent/power and returns the square root of the number (**base**) passed as the first argument. To calculate the square root the exponent/power argument is fixed to **0.5**. Let’s see how we can use the built-in `pow()`

function in a Python program.

```
# Import Python math module
import math as m
# Call the predefined pow() function
# to calculate the square root of a number
print(f'Square root of number 625: {m.pow(625, 0.5)}')
print(f'Square root of number 0.64: {m.pow(0.64, 0.5)}')
print(f'Square root of number 1.21: {m.pow(1.21, 0.5)}')
print(f'Square root of number 7: {m.pow(7, 0.5)}')
```

**Output:**

```
Square root of number 625: 25.0
Square root of number 0.64: 0.8
Square root of number 1.21: 1.1
Square root of number 7: 2.6457513110645907
```

**NOTE: **Here also if a negative number is passed as an argument to the built-in `pow()`

function then it will throw a **math domain error**. Let’s see an example.

```
# Import Python math module
import math as m
# Call the predefined pow() function
# to calculate the square root of a negative number
m.pow(-121, 0.5)
```

**Output:**

## 4. Using built-in np.sqrt() function

In this method of finding the square root, we will be using the built-in `np.sqrt()`

function. In Python, the `np.sqrt()`

function is a predefined function that is defined in the numpy module. The `np.sqrt()`

function returns a **numpy array** where each element is the square root of the corresponding element in the numpy array passed as an argument. Let’s see how we can use the built-in `np.sqrt()`

function in a Python program.

```
# Import Python numpy module
import numpy as np
# Define a numpy array
arr = np.array([0, 225, 0.36, 6.25, 10, -15])
print('NumPy array:')
print(arr)
# Call the predefined np.sqrt() function
# to calculate the square root of each element
# in the numpy array
print('Returned NumPy array with Square roots:')
print(np.sqrt(arr))
```

**Output:**

```
NumPy array:
[ 0. 225. 6.25 10. -15. ]
Returned NumPy array with Square roots:
[ 0. 15. 2.5 3.16227766 nan]
<ipython-input-29-541b85f9361a>:13: RuntimeWarning: invalid value encountered in sqrt print(np.sqrt(arr))
```

**NOTE:** If there is a negative number in the **numpy array** and it is passed to the built-in `np.sqrt()`

function then it will throw a **RuntimeWarning** saying that an invalid value is encountered in sqrt. And set a **nan** value at the place of the square root of the negative element in the returned numpy array.

## Conclusion

In this tutorial, we have learned the different ways to calculate the square root of numbers in Python. We have also learned how to use Python functions like `math.sqrt()`

, `math.pow()`

, and `numpy.sqrt()`

. Hope you have understood the things well and are excited to explore and learn more.