Option 1: math.sqrt()

The math module from the standard library has a sqrt function to calculate the square root of a number. It takes any type that can be converted to float (which includes int) and returns a float.

>>> import math
>>> math.sqrt(9)
3.0

Option 2: Fractional exponent

The power operator (**) or the built-in pow() function can also be used to calculate a square root. Mathematically speaking, the square root of a equals a to the power of 1/2.

The power operator requires numeric types and matches the conversion rules for binary arithmetic operators, so in this case it will return either a float or a complex number.

>>> 9 ** (1/2)
3.0
>>> 9 ** .5  # Same thing
3.0
>>> 2 ** .5
1.4142135623730951

(Note: in Python 2, 1/2 is truncated to 0, so you have to force floating point arithmetic with 1.0/2 or similar. See Why does Python give the "wrong" answer for square root?)

This method can be generalized to nth root, though fractions that can't be exactly represented as a float (like 1/3 or any denominator that's not a power of 2) may cause some inaccuracy:

>>> 8 ** (1/3)
2.0
>>> 125 ** (1/3)
4.999999999999999

Edge cases

Negative and complex

Exponentiation works with negative numbers and complex numbers, though the results have some slight inaccuracy:

>>> (-25) ** .5  # Should be 5j
(3.061616997868383e-16+5j)
>>> 8j ** .5  # Should be 2+2j
(2.0000000000000004+2j)

(Note: the parentheses are required on -25, otherwise it's parsed as -(25**.5) because exponentiation is more tightly binding than negation.)

Meanwhile, math is only built for floats, so for x<0, math.sqrt(x) will raise ValueError: math domain error and for complex x, it'll raise TypeError: can't convert complex to float. Instead, you can use cmath.sqrt(x), which is more accurate than exponentiation (and will likely be faster too):

>>> import cmath
>>> cmath.sqrt(-25)
5j
>>> cmath.sqrt(8j)
(2+2j)

Precision

Both options involve an implicit conversion to float, so floating point precision is a factor. For example let's try a big number:

>>> n = 10**30
>>> x = n**2
>>> root = x**.5
>>> root == n
False
>>> root - n  # how far off are they?
0.0
>>> int(root) - n  # how far off is the float from the int?
19884624838656

Very large numbers might not even fit in a float and you'll get OverflowError: int too large to convert to float. See Python sqrt limit for very large numbers?

Other types

Let's look at Decimal for example:

Exponentiation fails unless the exponent is also Decimal:

>>> decimal.Decimal('9') ** .5
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for ** or pow(): 'decimal.Decimal' and 'float'
>>> decimal.Decimal('9') ** decimal.Decimal('.5')
Decimal('3.000000000000000000000000000')

Meanwhile, math and cmath will silently convert their arguments to float and complex respectively, which could mean loss of precision.

decimal also has its own .sqrt(). See also calculating n-th roots using Python 3's decimal module

๐ŸŒ
Python
docs.python.org โ€บ 3 โ€บ library โ€บ math.html
math โ€” Mathematical functions
1 month ago - Return the integer square root of the nonnegative integer n.
๐ŸŒ
W3Schools
w3schools.com โ€บ python โ€บ ref_math_sqrt.asp
Python math.sqrt() Method
Python Examples Python Compiler Python Exercises Python Quiz Python Challenges Python Server Python Syllabus Python Study Plan Python Interview Q&A Python Bootcamp Python Certificate Python Training ... # Import math Library import math # Return the square root of different numbers print (math.sqrt(9)) print (math.sqrt(25)) print (math.sqrt(16)) Try it Yourself ยป
Discussions

What's the better way of taking the square root of a number?
Test it! Run a loop of a 100 numbers, trying both methods and storing the results in a Dataframe. Test to see if the result is equal whilst you loop. You could even time each method to see if one is marginally more efficient than the other More on reddit.com
๐ŸŒ r/learnpython
10
15
December 25, 2022
Function to find squares and square roots in Python
The code is based on the following rule: n^2 = sum of first 'n' consecutive odd natural numbers. The code: def is_square(num): j = 1 k = 0 for i inโ€ฆ More on reddit.com
๐ŸŒ r/Python
7
0
September 17, 2023
๐ŸŒ
GeeksforGeeks
geeksforgeeks.org โ€บ python โ€บ python-math-function-sqrt
Python math.sqrt() function | Find Square Root in Python - GeeksforGeeks
February 14, 2025 - math.sqrt() returns the square root of a number. It is an inbuilt function in the Python programming language, provided by the math module.
๐ŸŒ
Real Python
realpython.com โ€บ python-square-root-function
The Python Square Root Function โ€“ Real Python
November 3, 2024 - The Python square root function, sqrt(), is part of the math module and is used to calculate the square root of a given number. To use it, you import the math module and call math.sqrt() with a non-negative number as an argument.
๐ŸŒ
Tutorialspoint
tutorialspoint.com โ€บ python โ€บ number_sqrt.htm
Python math.sqrt() Method
The Python math.sqrt() method is used retrieve the square root of the given value. The square root of a number is the factor of multiplying the number by itself to get that number.
Top answer
1 of 11
107

Option 1: math.sqrt()

The math module from the standard library has a sqrt function to calculate the square root of a number. It takes any type that can be converted to float (which includes int) and returns a float.

>>> import math
>>> math.sqrt(9)
3.0

Option 2: Fractional exponent

The power operator (**) or the built-in pow() function can also be used to calculate a square root. Mathematically speaking, the square root of a equals a to the power of 1/2.

The power operator requires numeric types and matches the conversion rules for binary arithmetic operators, so in this case it will return either a float or a complex number.

>>> 9 ** (1/2)
3.0
>>> 9 ** .5  # Same thing
3.0
>>> 2 ** .5
1.4142135623730951

(Note: in Python 2, 1/2 is truncated to 0, so you have to force floating point arithmetic with 1.0/2 or similar. See Why does Python give the "wrong" answer for square root?)

This method can be generalized to nth root, though fractions that can't be exactly represented as a float (like 1/3 or any denominator that's not a power of 2) may cause some inaccuracy:

>>> 8 ** (1/3)
2.0
>>> 125 ** (1/3)
4.999999999999999

Edge cases

Negative and complex

Exponentiation works with negative numbers and complex numbers, though the results have some slight inaccuracy:

>>> (-25) ** .5  # Should be 5j
(3.061616997868383e-16+5j)
>>> 8j ** .5  # Should be 2+2j
(2.0000000000000004+2j)

(Note: the parentheses are required on -25, otherwise it's parsed as -(25**.5) because exponentiation is more tightly binding than negation.)

Meanwhile, math is only built for floats, so for x<0, math.sqrt(x) will raise ValueError: math domain error and for complex x, it'll raise TypeError: can't convert complex to float. Instead, you can use cmath.sqrt(x), which is more accurate than exponentiation (and will likely be faster too):

>>> import cmath
>>> cmath.sqrt(-25)
5j
>>> cmath.sqrt(8j)
(2+2j)

Precision

Both options involve an implicit conversion to float, so floating point precision is a factor. For example let's try a big number:

>>> n = 10**30
>>> x = n**2
>>> root = x**.5
>>> root == n
False
>>> root - n  # how far off are they?
0.0
>>> int(root) - n  # how far off is the float from the int?
19884624838656

Very large numbers might not even fit in a float and you'll get OverflowError: int too large to convert to float. See Python sqrt limit for very large numbers?

Other types

Let's look at Decimal for example:

Exponentiation fails unless the exponent is also Decimal:

>>> decimal.Decimal('9') ** .5
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for ** or pow(): 'decimal.Decimal' and 'float'
>>> decimal.Decimal('9') ** decimal.Decimal('.5')
Decimal('3.000000000000000000000000000')

Meanwhile, math and cmath will silently convert their arguments to float and complex respectively, which could mean loss of precision.

decimal also has its own .sqrt(). See also calculating n-th roots using Python 3's decimal module

2 of 11
25

SymPy

Depending on your goal, it might be a good idea to delay the calculation of square roots for as long as possible. SymPy might help.

SymPy is a Python library for symbolic mathematics.

import sympy
sympy.sqrt(2)
# => sqrt(2)

This doesn't seem very useful at first.

But sympy can give more information than floats or Decimals:

sympy.sqrt(8) / sympy.sqrt(27)
# => 2*sqrt(6)/9

Also, no precision is lost. (โˆš2)ยฒ is still an integer:

s = sympy.sqrt(2)
s**2
# => 2
type(s**2)
#=> <class 'sympy.core.numbers.Integer'>

In comparison, floats and Decimals would return a number which is very close to 2 but not equal to 2:

(2**0.5)**2
# => 2.0000000000000004

from decimal import Decimal
(Decimal('2')**Decimal('0.5'))**Decimal('2')
# => Decimal('1.999999999999999999999999999')

Sympy also understands more complex examples like the Gaussian integral:

from sympy import Symbol, integrate, pi, sqrt, exp, oo
x = Symbol('x')
integrate(exp(-x**2), (x, -oo, oo))
# => sqrt(pi)
integrate(exp(-x**2), (x, -oo, oo)) == sqrt(pi)
# => True

Finally, if a decimal representation is desired, it's possible to ask for more digits than will ever be needed:

sympy.N(sympy.sqrt(2), 1_000_000)
# => 1.4142135623730950488016...........2044193016904841204
๐ŸŒ
Codecademy
codecademy.com โ€บ docs โ€บ python โ€บ math module โ€บ math.sqrt()
Python | Math Module | math.sqrt() | Codecademy
September 12, 2025 - The Python .sqrt() function is used to calculate the square root of a given number and is a part of the math library.
Find elsewhere
๐ŸŒ
LearnDataSci
learndatasci.com โ€บ solutions โ€บ python-square-root
Python Square Root: Real and Complex โ€“ LearnDataSci
It's simple to calculate the square root of a value in Python using the exponentiation operator ** or math.sqrt(). It's worth mentioning that math.sqrt() is usually the faster of the two and that by using cmath.sqrt() you can get the square root of a complex number.
๐ŸŒ
Programiz
programiz.com โ€บ python-programming โ€บ examples โ€บ square-root
Python Program to Find the Square Root
# Find square root of real or complex ... {1:0.3f}+{2:0.3f}j'.format(num ,num_sqrt.real,num_sqrt.imag)) ... In this program, we use the sqrt() function in the cmath (complex math) module....
๐ŸŒ
TradingCode
tradingcode.net โ€บ python โ€บ math โ€บ square-root
How to calculate the square root in Python? โ€ข TradingCode
Python can calculate the square root of a number in three ways: math.sqrt(), pow(), or **. This article explains each with easy-to-follow code.
๐ŸŒ
Scaler
scaler.com โ€บ home โ€บ topics โ€บ python math.sqrt() method
Python math.sqrt() Method - Scaler Topics
February 23, 2024 - It's a precise and efficient way to compute square roots, crucial for various mathematical computations. For instance, math.sqrt(25) returns 5.0, showcasing its utility in finding the square root of 25. This function is essential for tasks requiring python square root calculations, making it a staple in the toolkit of developers and data scientists alike.
๐ŸŒ
Analytics Vidhya
analyticsvidhya.com โ€บ home โ€บ python square root
Python Square Root
October 10, 2024 - The simple and standard method for finding the square root of a floating number in Python uses the math.sqrt() function from the inbuilt math library.
๐ŸŒ
Codedamn
codedamn.com โ€บ news โ€บ python
How to calculate square root in Python (with examples)
March 18, 2024 - The syntax of the function is straightforward: math.sqrt(x), where x is the number you want to find the square root of. Itโ€™s important to note that x must be a non-negative number; otherwise, a ValueError will be raised. Here are a few examples demonstrating how to use the math.sqrt() function...
๐ŸŒ
Upgrad
upgrad.com โ€บ home โ€บ tutorials โ€บ software & tech โ€บ square root in python
Exploring Square Root Calculation in Python: A Comprehensive Guide
November 12, 2024 - In the โ€˜mathโ€™ module, the sqrt() function allows us to conveniently calculate the square root of a number. Using the square root function, we will explore the concept of the square root in Python, discover its significance, and unravel its ...
๐ŸŒ
Altcademy
altcademy.com โ€บ blog โ€บ how-to-do-square-root-in-python
How to do square root in Python - Altcademy.com
June 13, 2023 - The math library has a function called sqrt() that takes a number as an input and returns its square root.
๐ŸŒ
Kodeclik
kodeclik.com โ€บ python-square-root
Finding square roots in Python
October 28, 2024 - The Python programming language has a Math library that comes with a built-in function sqrt() to compute square roots.
๐ŸŒ
Python Geeks
pythongeeks.org โ€บ python geeks โ€บ learn python โ€บ python square root function
Python Square Root Function - Python Geeks
December 31, 2025 - The math. sqrt() function is specifically used to calculate the square root of a given number. ... To calculate the square root of a number in Python, you need to import the math module and use the math.sqrt() function.
๐ŸŒ
Scaler
scaler.com โ€บ home โ€บ topics โ€บ calculate square root in python
Calculate Square Root in Python
March 4, 2025 - Finally, we print the variable to get the square root of the number entered. The square root function in Python takes a number as its parameter, which should always be non-negative(number 0 & all positive numbers, including floating numbers).