Python Numbers

Learn about numeric data types in Python: integers, floats, and complex numbers.

Python Numbers

There are three numeric types in Python:

  • int
  • float
  • complex

Variables of numeric types are created when you assign a value to them:

Example

x = 1    # int
y = 2.8  # float
z = 1j   # complex

To verify the type of any object in Python, use the type() function:

Example

print(type(x))
print(type(y))
print(type(z))

Int

Int, or integer, is a whole number, positive or negative, without decimals, of unlimited length.

Example

x = 1
y = 35656222554887711
z = -3255522

print(type(x))
print(type(y))
print(type(z))

Float

Float, or "floating point number" is a number, positive or negative, containing one or more decimals.

Example

x = 1.10
y = 1.0
z = -35.59

print(type(x))
print(type(y))
print(type(z))

Float can also be scientific numbers with an "e" to indicate the power of 10.

Example

x = 35e3
y = 12E4
z = -87.7e100

print(type(x))
print(type(y))
print(type(z))

Complex

Complex numbers are written with a "j" as the imaginary part:

Example

x = 3+5j
y = 5j
z = -5j

print(type(x))
print(type(y))
print(type(z))

Type Conversion

You can convert from one type to another with the int(), float(), and complex() methods:

Example

x = 1    # int
y = 2.8  # float
z = 1j   # complex

# convert from int to float:
a = float(x)

# convert from float to int:
b = int(y)

# convert from int to complex:
c = complex(x)

print(a)
print(b)
print(c)

print(type(a))
print(type(b))
print(type(c))

Note: You cannot convert complex numbers into another number type.

Random Number

Python does not have a random() function to make a random number, but Python has a built-in module called random that can be used to make random numbers:

Example

import random

print(random.randrange(1, 10))

Number Methods

Python has several built-in functions for working with numbers:

abs()

Returns the absolute value of a number

print(abs(-7.25))

round()

Rounds a number to a specified number of decimals

print(round(8.6))

max()

Returns the largest item in an iterable

print(max(5, 10, 25))

min()

Returns the smallest item in an iterable

print(min(5, 10, 25))

pow()

Returns the value of x to the power of y

print(pow(4, 3))

sum()

Sums the items of an iterable

print(sum([1, 2, 3, 4, 5]))

The Floating-Point Trap

Computers store floats in binary, so some decimals cannot be represented exactly. This is not a Python bug — it affects every language.

print(0.1 + 0.2)                 # 0.30000000000000004
print(0.1 + 0.2 == 0.3)         # False!

# compare with a tolerance instead
import math
print(math.isclose(0.1 + 0.2, 0.3))   # True

# for exact decimal math (money), use Decimal
from decimal import Decimal
print(Decimal("0.1") + Decimal("0.2"))  # 0.3

Never use == to compare floats, and never store money in float. Use math.isclose for comparisons and Decimal for currency.

Handy Numeric Tools

print(abs(-7))          # 7
print(round(3.14159, 2))  # 3.14
print(pow(2, 10))       # 1024  (same as 2 ** 10)
print(10 // 3, 10 % 3)  # 3 1   (floor division, remainder)
print(divmod(10, 3))    # (3, 1)
print(1_000_000)        # 1000000  -> underscores aid readability

Try It Yourself

Exercise 1: Safely check whether 1.1 + 2.2 equals 3.3.

Show solution
import math
print(math.isclose(1.1 + 2.2, 3.3))   # True

Exercise 2: Get the quotient and remainder of 17 divided by 5 in one call.

Show solution
print(divmod(17, 5))   # (3, 2)

Key Takeaways

  • Python has int (unlimited size), float, and complex.
  • Floats are approximate — compare with math.isclose, not ==.
  • Use Decimal for money and exact decimals.
  • // is floor division, % is remainder, ** is power.

📘 Real-World Deep Dive

Numeric code is everywhere — counters, prices, percentiles, scientific data. Knowing the difference between <code>int</code>, <code>float</code>, <code>complex</code>, and <code>Decimal</code> is essential, as is the <code>math</code> / <code>statistics</code> / <code>decimal</code> / <code>fractions</code> modules.

Real-Life Scenario

A small metrics calculator: mean, stdev, percentile, with explicit rounding behaviour.

Real-Life Example

import math
import statistics as st
from decimal import Decimal, ROUND_HALF_UP
from fractions import Fraction

samples = [1.2, 1.5, 1.4, 1.6, 1.8, 2.0, 1.7]

mean = st.fmean(samples)
stddev = st.stdev(samples)
p95 = st.quantiles(samples, n=20)[-1]
print(f"mean    = {mean:.3f}")
print(f"stdev   = {stddev:.3f}")
print(f"p95     = {p95:.3f}")

price = Decimal("19.99")
tax   = Decimal("0.0875")
total = (price * (Decimal("1") + tax)).quantize(Decimal("0.01"), ROUND_HALF_UP)
print("total   =", total)

half = Fraction(1, 2) + Fraction(1, 3)
print("1/2+1/3 =", half, "≈", float(half))

Expected Output

mean    = 1.614
stdev   = 0.245
p95     = 1.940
total   = 21.74
1/2+1/3 = 5/6 ≈ 0.8333333333333333

Common mistakes

  • 0.1 + 0.2 == 0.3 is False — float is base-2; use Decimal for display-grade arithmetic.
  • statistics.stdev returns the *sample* stdev (n-1), pstdev returns the *population* (n) — mix-ups change reports.
  • math.floor(-1.5) == -2 while int(-1.5) == -1 — pick deliberately.

🚀 Performance & Best Practices

  • math.fsum is more accurate than the built-in sum for long float sequences.
  • Pre-compute 1.0 / n rather than dividing per element in a hot loop.
  • For percentiles over huge arrays use numpy.percentile rather than statistics.quantiles.

🧪 Try It Yourself

  1. Compute the harmonic mean of samples with statistics.harmonic_mean.
  2. Sum one million floats with both sum and math.fsum and compare the error vs. Decimal.
  3. Round 1.5 with round(), math.floor, and Decimal.quantize(ROUND_HALF_UP) — note the ties-to-even default of round().

FAQ: Python Numbers

Common questions about this page.

What is Python Numbers?

Python Numbers is a Python Tutorial lesson that explains python numbers in Python. Learn about numeric data types in Python: integers, floats, and complex numbers. Copy the samples and run them in the Python editor. It is written for beginners who want a clear definition and working examples.

Should I run python numbers examples locally for better learning?

Yes. Use the browser editor on StudyGrid for a quick check, then Download the example and run it on your computer. Local runs show real errors and the real toolchain, which is one of the fastest ways to learn python numbers in this Python Tutorial Python lesson (Python Numbers).

How do I use python numbers in Python?

To use python numbers in Python, follow the examples on this StudyGrid page. Copy a snippet, run it in the browser, then Download and run it locally for better learning. Change the values and compare the output.

What is the syntax of python numbers?

This Python Numbers tutorial shows python numbers syntax with short Python examples. Use the code blocks in this lesson for the exact statements, then try them in your editor.

Python Numbers example for beginners

Yes. This page includes a beginner python numbers example you can copy and run. It is designed for searches such as "python numbers for beginners", "python numbers example", and "how to use python numbers".

What are common mistakes with python numbers?

Common python numbers mistakes include wrong syntax, mixing types, and skipping practice. Work through this Python Tutorial chapter in order, run every example, and check the output before moving on.

Why should I learn python numbers?

Python Numbers is used in real Python work. Learning python numbers helps you write clearer programs and continue the Python Tutorial tutorial on StudyGrid.

Is Python Numbers free to learn online?

Yes. You can learn python numbers free on StudyGrid (studygrid.in). This chapter is part of the Python Tutorial path and includes examples, syntax, and next-step links.