Skip to content

RESOURCES / BLOG

How Do You Calculate Square Roots in Python?

Hey everyone,

I’m working on a Python script and I need to calculate the square root of some numbers. I figured there must be a built-in way to do this, but I’m not sure what’s best. Should I use **0.5, or is there a specific function in Python?

Also, how does it handle negative numbers? And can I use it in a loop for a list of numbers?

Thanks for the help!

Great question, and yes, Python gives you a few different ways to calculate square roots, depending on what you need. Let’s break it down:

This is the most reliable and readable way to calculate square roots in Python.

import math

result = math.sqrt(16)

print(result)  # Output: 4.0Code language: PHP (php)

The math.sqrt() function returns a float, even when the input is a perfect square.

Why use math.sqrt()?

  • It’s clear what you’re doing.
  • It automatically handles errors for negative input.
  • It’s part of the standard library, no external libraries needed.

This is a shorthand way to get the square root:

result = 16 ** 0.5

print(result)  # Output: 4.0Code language: PHP (php)

While this works, it’s less clear for beginners and can behave oddly with certain input types (especially negative numbers or complex numbers).

Both math.sqrt() and ** 0.5 will throw errors or give weird results if you try to use them on negative numbers.

import math

print(math.sqrt(-4))  # ValueError: math domain errorCode language: PHP (php)
import cmath

result = cmath.sqrt(-4)

print(result)  # Output: 2jCode language: PHP (php)

The cmath module is Python’s complex math library. It returns the square root as a complex number (e.g., 2j means √-4).

Let’s say you’re calculating the distance between two points:

import math

x1, y1 = (3, 4)

x2, y2 = (0, 0)

distance = math.sqrt((x2 - x1)**2 + (y2 - y1)**2)

print(distance)  # Output: 5.0Code language: PHP (php)

This is a classic use of the square root function, and it’s used in image processing, games, data visualization, and more.

You can use math.sqrt() in a loop or list comprehension:

import math

numbers = [1, 4, 9, 16, 25]

roots = [math.sqrt(n) for n in numbers]

print(roots)  # Output: [1.0, 2.0, 3.0, 4.0, 5.0]Code language: PHP (php)
MethodUse When
math.sqrt()You want clean, readable square root calculation
** 0.5Quick one-liner and you know the input is valid
cmath.sqrt()You might deal with negative numbers (complex)
  1. Forgetting to import math. You’ll get a NameError: name 'math' is not defined.
  2. Trying to use math.sqrt() on a negative number. Use cmath.sqrt() instead.
  3. Expecting an integer result. math.sqrt() always returns a float, even if it’s a perfect square.
  4. Misusing **0.5 on negative numbers. It won’t raise an error, but may give you nan or other unexpected results.

Square roots are common in computer vision and image work. For example, if you’re calculating Euclidean distance between image feature vectors or checking image diagonal size:

import math

width = 1920

height = 1080

diagonal = math.sqrt(width**2 + height**2)

print("Diagonal:", diagonal)  # Useful for screen size calculationsCode language: PHP (php)

You’ll also find square roots in blur detection, clustering, and pixel intensity comparisons.

MethodCode ExampleReturnsNotes
math.sqrt(x)math.sqrt(9)3.0Best for real numbers
x ** 0.516 ** 0.54.0Quick, less readable
cmath.sqrt(x)cmath.sqrt(-9)3jFor negative numbers (complex)

Calculating square roots in Python is simple, but the right approach depends on your use case.

  • For most real-number math, use math.sqrt().
  • For negative inputs or complex math, use cmath.sqrt().
  • For short scripts or quick calculations, ** 0.5 is fine.

Learning when and why to use each helps you write cleaner, more robust code.

Start Using Cloudinary

Sign up for our free plan and start creating stunning visual experiences in minutes.

Sign Up for Free