Python provides three built-in numeric types: int for whole numbers of unlimited size, float for decimal numbers, and complex for numbers with an imaginary j part. You create them directly by assigning numeric literals without quotes.
Unlike C or Java, Python integers never overflow a 32-bit or 64-bit ceiling. Python expands memory automatically to store huge integers cleanly.
int, float, and complexYou can group digits with underscores (1_000_000) to make large numbers readable. Standard division / always returns a float, even when dividing 8 / 2.
population = 8_500_000
unit_price = 19.99
tax_rate = 1.5e-1 # Scientific notation: 0.15
signal = 3 + 4j # Complex number
print(type(population), type(unit_price), type(signal))
print(8 / 2, 8 // 2) # 4.0 (float) and 4 (floor int)
Binary floating-point math cannot represent some base-10 decimals exactly, so 0.1 + 0.2 produces 0.30000000000000004. For currency or invoices, use the standard library decimal.Decimal module with string inputs.
from decimal import Decimal
subtotal = Decimal("0.10") + Decimal("0.20")
print(subtotal) # Exact 0.30
==: Use math.isclose(a, b) for scientific floats instead of direct equality checks.Decimal(): Decimal(0.1) copies the binary float error; always pass a string like Decimal("0.1")./ to return an integer: Use floor division // when you want an integer quotient.No fixed bit limit exists for Python int values. An integer can grow as large as your system memory allows.
Import the built-in random module and call random.randint(1, 10) for whole numbers or random.uniform(0, 1) for floats. For security tokens, use the secrets module instead.
e mean in 2.5e3?It represents scientific notation (times 10 to a power), so 2.5e3 equals 2500.0 as a float.
Sign in to track your learning journey, earn industry-recognized certificates, and join our elite developer community.
Quick Access With
Experiment with the code from this lesson in our interactive playground.