Of course! In Python, there are a few common ways to calculate the square root of a number. Here’s a breakdown of the most popular methods, from the most recommended to more specialized ones.

The Easiest & Most Common Way: math.sqrt()
This is the standard, go-to method for general-purpose square root calculations. It's part of Python's built-in math module.
How to use it:
- Import the
mathmodule. - Call the
math.sqrt()function and pass your number to it.
import math
# Calculate the square root of a positive number
number = 25
result = math.sqrt(number)
print(f"The square root of {number} is {result}") # Output: The square root of 25 is 5.0
# It also works with floats
float_number = 2.0
result_float = math.sqrt(float_number)
print(f"The square root of {float_number} is {result_float}") # Output: The square root of 2.0 is 1.4142135623730951
Key Points:
- Return Type: It always returns a
float, even if the result is a whole number (e.g.,math.sqrt(25)returns0). - Error: If you try to find the square root of a negative number, it will raise a
ValueError.# math.sqrt(-1) # This will raise ValueError: math domain error
The "Modern" Way: math.pow()
While math.sqrt() is more direct, you can also use the math.pow() function, which raises a number to a given power. Since the square root of x is x to the power of 5, this works perfectly.

import math
number = 25
# Calculate the square root using exponentiation
result = math.pow(number, 0.5)
print(f"The square root of {number} is {result}") # Output: The square root of 25 is 5.0
Why use this?
- Consistency: If you are already using
math.pow()for other exponents, you can stick with the same function. - Flexibility: It's easy to change the exponent (e.g.,
math.pow(number, 0.33)for a cube root).
Why not use this for square roots?
math.sqrt()is more explicit, readable, and slightly faster for this specific task.
The "No Import" Way: Exponentiation Operator ()
For simple calculations, you don't need to import any module at all. Python has a built-in exponentiation operator ().
number = 25
# Calculate the square root using the ** operator
result = number ** 0.5
print(f"The square root of {number} is {result}") # Output: The square root of 25 is 5.0
Key Points:

- Simplicity: This is the most concise way to write it.
- Error: Like
math.sqrt(), this will raise aValueErrorif you use it with a negative number and you're not using complex numbers.# (-25) ** 0.5 # This will raise ValueError: negative number cannot be raised to a fractional power
The "Advanced" Way: cmath.sqrt() for Complex Numbers
What if you need to calculate the square root of a negative number? For that, you should use the cmath (complex math) module.
import cmath
# Calculate the square root of a negative number
negative_number = -25
result = cmath.sqrt(negative_number)
print(f"The square root of {negative_number} is {result}") # Output: The square root of -25 is 5j
# You can access the real and imaginary parts
print(f"Real part: {result.real}") # Output: Real part: 0.0
print(f"Imaginary part: {result.imag}") # Output: Imaginary part: 5.0
Key Points:
- Complex Numbers: This is the correct tool for any mathematical operation involving negative roots or complex numbers.
- Return Type: It returns a complex number (e.g.,
5j).
Summary: Which One Should You Use?
| Method | When to Use | Example |
|---|---|---|
math.sqrt() |
The default choice. Use this for 99% of cases when dealing with non-negative numbers. It's clear, fast, and standard. | import math; math.sqrt(25) |
| ` 0.5`** | When you want a quick, one-off calculation without importing a module. Good for simple scripts. | 25 ** 0.5 |
math.pow() |
When you are already using math.pow() for other exponents and want to keep your code consistent. |
import math; math.pow(25, 0.5) |
cmath.sqrt() |
When you specifically need to work with complex numbers or negative roots. | import cmath; cmath.sqrt(-25) |
