How to Do Exponents in Python

What you’ll build or solve

You’ll learn how to raise numbers to a power in Python using the two standard approaches.

When this approach works best

Exponents are a good fit when you:

  • Calculate growth and decay, like compound interest or population change.
  • Work with geometry and physics formulas, like squaring a distance or cubing a volume.
  • Transform values, like scaling scores or applying power-based formulas.

Avoid this approach when you need exact decimal math for money. Float-based results can look slightly off. Round for display, or use decimal.Decimal for finance-style precision.

Prerequisites

  • Python installed
  • You know what powers mean, like 2³

Step-by-step instructions

1) Pick how you want to raise a number to a power

Python gives you two common ways to do exponents.

Option A (most common): the exponent operator **

print(2**3)# 8
print(10**2)# 100

Option B: the built-in pow() function

print(pow(2,3))# 8
print(pow(10,2))# 100

Use ** when you want the clearest syntax in normal code. Use pow() when you prefer a function call.


2) Handle negatives and precedence correctly

Negative bases and operator order can trip people up.

If the base is negative, use parentheses:

print((-4)**2)# 16
print((-4)**3)# -64

This is different:

print(-4**2)# -16

Python reads -4 ** 2 as -(4 ** 2) because ** runs before the unary minus.

Exponents also bind tighter than multiplication and addition:

print(2+3**2)# 11
print((2+3)**2)# 25

Use parentheses when you want a specific order.


3) Use fractional and negative exponents

Fractional exponents produce roots, and negative exponents produce reciprocals.

A square root using an exponent:

print(9**0.5)# 3.0

A cube root using an exponent:

print(27** (1/3))# may show a tiny rounding difference

A negative exponent:

print(2**-3)# 0.125

Fractional powers use floats, so you may see small rounding noise. Round for display if needed.


Examples you can copy

Example 1: Compound growth (simple)

principal=1000
rate=1.05
years=3

final_amount=principal* (rate**years)
print(final_amount)

Example 2: Area and volume (different powers)

side=4
area=side**2
volume=side**3

print(area)
print(volume)

Example 3: Reusable power calculation with input

base=float(input("Base: "))
exponent=float(input("Exponent: "))

print(base**exponent)

Example 4: Fast modular exponentiation with pow()

Use this when you need (base ** exponent) % mod for large numbers.

base=5
exponent=117
mod=19

print(pow(base,exponent,mod))

Example 5: Scale scores with an exponent

raw_score=82
max_score=100

normalized= (raw_score/max_score)**2
print(normalized)

Example 6: Exact decimal squaring for money-like values

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 exponentiation

What you might do:

print(2^3)

Why it breaks: ^ is bitwise XOR in Python, not power.

Correct approach:

print(2**3)
print(pow(2,3))

Mistake 2: Forgetting parentheses for negative bases

What you might do:

print(-4**2)

Why it breaks: Python applies ** before the unary minus, so the result becomes -(4 ** 2).

Correct approach:

print((-4)**2)

Mistake 3: Expecting perfect results from fractional powers

What you might do:

print(27** (1/3))

Why it breaks: Float math can produce a close result that prints with a tiny error.

Correct approach:

value=27** (1/3)
print(round(value,10))

Troubleshooting

If you see TypeError: unsupported operand type(s) for **, convert inputs to numbers first with float(...) or int(...).

If you see ValueError while converting input, the text is not numeric. Try 2, 2.5, or -3.

If you get -16 from -4 ** 2, add parentheses: (-4) ** 2.

If you see results like 2.9999999999999996, round for display with round(result, 6).

If you need (a ** b) % m and it feels slow with large b, use pow(a, b, m).


Quick recap

  • Use * for exponents: base ** exponent.
  • Use pow(base, exponent) as an alternative.
  • Put negative bases in parentheses: (-4) ** 2.
  • Use fractional exponents for roots and negative exponents for reciprocals.
  • Round float results if you see small precision noise.