W3docs

Comprensión de los Números en Python

Aprende los tres tipos numéricos de Python — int, float y complex — con ejemplos aritméticos, conversión de tipos y funciones matemáticas útiles.

Python tiene tres tipos numéricos integrados: enteros (int), números de punto flotante (float) y números complejos (complex). Esta página explica cómo funciona cada tipo, cómo realizar operaciones aritméticas con ellos, errores comunes, conversión de tipos y qué funciones matemáticas ofrece la biblioteca estándar.

Números Enteros

Un entero es un número sin parte decimal — positivo, negativo o cero. En Python, los enteros tienen precisión ilimitada: no existe un tamaño máximo fijo como ocurre en C o Java. Python trabaja sin problemas con números de cientos de dígitos.

x = 10
y = -5
z = 0

# Python integers have no fixed size limit
big = 2 ** 100
print(big)  # 1267650600228229401496703205376

Aritmética con Enteros

python— editable, runs on the server

Observa que / siempre devuelve un float incluso cuando el resultado es un número entero (6 / 2 da 3.0). Usa // cuando necesites un resultado entero.

Literales Enteros: Binario, Octal y Hexadecimal

Python acepta literales enteros en cuatro bases. Las cuatro crean el mismo objeto int — el prefijo solo indica a Python cómo interpretar los dígitos.

decimal     = 255        # base 10 — no prefix
binary      = 0b11111111 # base 2  — prefix 0b
octal       = 0o377      # base 8  — prefix 0o
hexadecimal = 0xFF       # base 16 — prefix 0x

print(decimal, binary, octal, hexadecimal)
# 255 255 255 255

# Convert an int back to a string in a given base
print(hex(255))   # '0xff'
print(bin(255))   # '0b11111111'
print(oct(255))   # '0o377'

Verificar el Tipo

Usa type() para confirmar el tipo de un valor, o isinstance() para comprobar la pertenencia a un tipo:

print(type(42))            # <class 'int'>
print(isinstance(42, int)) # True

Números de Punto Flotante

Un float es un número con punto decimal (o exponente). Los floats de Python son valores de doble precisión IEEE 754 de 64 bits, lo que proporciona aproximadamente 15–17 dígitos decimales significativos de precisión.

x = 10.5
y = -5.2
z = 0.0
e = 1.5e3   # scientific notation — same as 1500.0

Aritmética con Floats

python— editable, runs on the server

Precisión de Punto Flotante

Debido a que los floats se almacenan en binario, algunas fracciones decimales no pueden representarse exactamente. Esto es una propiedad de la aritmética IEEE 754, no un error de Python:

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

Cuando la aritmética decimal exacta es importante (por ejemplo, en cálculos financieros), usa el módulo decimal de la biblioteca estándar en lugar de float.

Redondeo y Operaciones Útiles con Floats

import math

print(round(3.14159, 2))  # 3.14  — round to 2 decimal places
print(math.floor(3.7))    # 3     — largest integer <= value
print(math.ceil(3.2))     # 4     — smallest integer >= value
print(math.sqrt(16))      # 4.0   — square root
print(abs(-7.5))          # 7.5   — absolute value

Números Complejos

Un número complejo tiene una parte real y una parte imaginaria. En Python (siguiendo la convención de ingeniería) la unidad imaginaria se escribe j o J, no i.

x = 10 + 5j
y = -5 + 3j
z = 0 + 0j        # equivalent to complex(0, 0)
w = complex(2, -3) # constructor: real=2, imag=-3

Acceder a las Partes Real e Imaginaria

z = 3 + 4j
print(z.real)   # 3.0
print(z.imag)   # 4.0
print(abs(z))   # 5.0  — magnitude: sqrt(3^2 + 4^2)

Aritmética con Números Complejos

python— editable, runs on the server

Los números complejos no pueden compararse con < o > porque no existe un orden natural en el plano complejo. Solo se admiten == y !=.

Conversión de Tipos

Python no promueve tipos silenciosamente en las asignaciones, pero la aritmética entre distintos tipos numéricos sigue reglas bien definidas:

ExpresiónTipo resultante
int + intint
int + floatfloat
float + complexcomplex
int + complexcomplex

Puedes convertir entre tipos explícitamente con los constructores integrados:

# int → float
print(float(42))       # 42.0

# float → int (truncates toward zero, no rounding)
print(int(3.9))        # 3
print(int(-3.9))       # -3

# str → int or float
print(int("100"))      # 100
print(float("3.14"))   # 3.14

# int → complex
print(complex(5))      # (5+0j)

Ten en cuenta que convertir un float a int trunca el valor — no redondea. Usa round() primero si necesitas redondear.

El Módulo math

El módulo math proporciona funciones matemáticas adicionales para números reales.

import math

print(math.pi)          # 3.141592653589793
print(math.e)           # 2.718281828459045

print(math.log(math.e)) # 1.0   — natural log
print(math.log10(1000)) # 3.0
print(math.pow(2, 10))  # 1024.0 — float result (use ** for int result)
print(math.factorial(5)) # 120
print(math.gcd(12, 8))  # 4

Para operaciones con números complejos, usa cmath en lugar de math:

import cmath

z = 1 + 1j
print(cmath.phase(z))   # 0.7853981633974483  — angle in radians (π/4)
print(cmath.polar(z))   # (1.4142135623730951, 0.7853981633974483) — (r, θ)

Cuándo Usar Cada Tipo

Caso de usoTipo recomendado
Conteo, indexado, operaciones de bitsint
Mediciones, computación científicafloat
Procesamiento de señales, ingeniería eléctricacomplex
Cálculos financieros que requieren exactituddecimal.Decimal

Para temas relacionados, consulta el capítulo Variables de Python para saber cómo se almacenan los números en variables, el capítulo Operadores de Python para el conjunto completo de operadores numéricos, y Casting en Python para los detalles de conversión de tipos.

Práctica

Práctica
Which of the following types of numbers are supported in Python?
Which of the following types of numbers are supported in Python?
Was this page helpful?