How to Square a Number in Python
What you’ll build or solve
You’ll learn the standard ways to square a number in Python and choose the right one for ints, floats, and user input.
When this approach works best
Squaring a number is a good fit when you:
Learn Python on Mimo
- Need a quick calculation, like squaring a distance, price, or score inside a script.
- Work with formulas in a small program, like area calculations or simple physics.
- Validate or transform data, like squaring measurements before summing them.
Avoid this approach when you actually need a square root, or when you need to square every item in a collection and you try to do it as a single-number calculation. In those cases, use math.sqrt() for roots, or a loop or list comprehension for multiple values.
Prerequisites
- Python installed
Step-by-step instructions
1) Pick the squaring method
In Python, squaring usually means raising to the power of 2.
Option A (most common): exponent operator **
n=7
squared=n**2
print(squared)# 49
Option B: built-in pow()
n=7
squared=pow(n,2)
print(squared)# 49
Use ** if you want the clearest, most common style. Use pow() if you prefer a function call or already use it for other powers.
2) Square a value you already have
Start with a plain variable. This keeps your logic easy to test.
base=12
result=base**2
print(f"{base} squared is{result}")
This works for whole numbers and decimals:
whole=5
decimal=1.5
print(whole**2)# 25
print(decimal**2)# 2.25
If your number might be negative, keep parentheses around the base:
base=-4
print((base)**2)# 16
What to look for: -4 ** 2 is not the same as (-4) ** 2. Without parentheses, Python reads it as -(4 ** 2).
3) Square user input from the keyboard
input() returns text, so convert it to a number first.
raw=input("Enter a number: ")
n=float(raw)
print(n**2)
If you want whole numbers only:
raw=input("Enter a whole number: ")
n=int(raw)
print(n**2)
What to look for: If the user types 3.5 and you call int("3.5"), you’ll get a ValueError. Use float() for decimals.
4) Square a number and format the result
Sometimes you want clean output, especially with floats.
n=2.5
squared=n**2
print(f"Squared:{squared:.2f}")
If you see a value like 2.2500000000000004, that’s normal float precision. Rounding for display is usually enough.
Examples you can copy
Example 1: Square a single measurement
You receive a measurement and need its square for a simple formula.
distance=9
score=distance**2
print(score)
Example 2: Compute the area of a square from user input
This treats the input as the side length and computes area.
Python
side=float(input("Side length: "))
area=side**2
print(f"Area:{area}")
Example 3: Square a list of numbers
This example uses a list comprehension.
values= [2,-3,0,4.5]
squared_values= [v**2forvinvalues]
print(squared_values)# [4, 9, 0, 20.25]
Example 4: Square a command-line argument
importsys
iflen(sys.argv)<2:
raiseSystemExit("Usage: python square.py <number>")
n=float(sys.argv[1])
print(n**2)
Example 5: Reusable square function
defsquare(n):
returnn**2
print(square(10))
print(square(2.5))
Example 6: Squaring money-like decimals
If you need exact decimal math, use Decimal instead of float.
fromdecimalimportDecimal
price=Decimal("19.99")
print(price**2)# 399.6001
Common mistakes and how to fix them
Mistake 1: Using ^ for powers
What you might do:
print(5^2)
Why it breaks: ^ is bitwise XOR in Python, not exponentiation.
Correct approach:
Python
print(5**2)# 25
print(pow(5,2))# 25
Mistake 2: Forgetting parentheses with negative numbers
What you might do:
print(-4**2)
Why it breaks: Python applies ** before the unary minus, so this becomes -(4 ** 2).
Correct approach:
print((-4)**2)# 16
Mistake 3: Squaring text from input() without converting it
What you might do:
n=input("Enter a number: ")
print(n**2)
Why it breaks: input() returns a string, and strings can’t be raised to a power.
Correct approach:
Python
n=float(input("Enter a number: "))
print(n**2)
Troubleshooting
If you see TypeError: unsupported operand type(s) for **, convert your value first with n = float(n) or n = int(n).
If you see ValueError: invalid literal for int(), the input has decimals or extra characters. Use float() or clean the input.
If you see ValueError from float(), the input is not a number. Try 3.14 instead of 3,14.
If you get a result like 2.2500000000000004, round for display with round(n ** 2, 2) or format with :.2f.
If you accidentally wrote -4 ** 2 and got -16, add parentheses: (-4) ** 2.
If your command line example exits immediately, you may have run it without an argument. Try python square.py 8.
Quick recap
- Square a number with
n ** 2orpow(n, 2). - Use parentheses for negative bases:
(-4) ** 2. - Convert user input with
int()orfloat()before squaring. - Round or format floats when you print them.
- For collections, square each item with a loop or a list comprehension.
Join 35M+ people learning for free on Mimo
4.8 out of 5 across 1M+ reviews
Check us out on Apple AppStore, Google Play Store, and Trustpilot