Números en Python: enteros, decimales y cálculos que sí usarás
Esta lección es una traducción del original en inglés.Read in EnglishAvisar de un error de traducción
Vas a dividir la cuenta del restaurante entre tú y tres amigos. El total es de $85. ¿Cuánto paga cada uno? Tú sacas la calculadora del teléfono, pero alguien que programa en Python escribe 85 / 4 y obtiene la respuesta al instante.
Las matemáticas son la columna vertebral de la programación. Los videojuegos las usan para la física. Las aplicaciones, para calcular precios. La ciencia de datos se apoya en ellas. ¿La buena noticia? Con Python, las matemáticas se sienten como una calculadora con superpoderes.
En este tutorial aprenderás cómo maneja Python los números, qué operadores tienes a tu disposición y cómo evitar los errores que confunden a los principiantes. Al terminar, harás cálculos del mundo real con total confianza.
¿Qué son los enteros y los decimales (floats)?
Python tiene dos tipos principales de números. Los enteros (int) son números sin punto decimal. Los números decimales (float) son números con punto decimal.
Piénsalo como si fuera dinero. "5 dólares" es un entero. "5.99 dólares" es un decimal. El punto decimal marca la diferencia.
<class 'int'> <class 'float'> <class 'int'> <class 'float'>
¿Cuándo usar cada uno? Usa enteros para lo que cuentas: personas, artículos, puntos, vidas. Usa decimales para lo que mides: peso, temperatura, porcentajes, dinero.
Cómo hacer cálculos en Python
Python admite todas las operaciones matemáticas básicas que ya conoces. Los símbolos son casi idénticos a los que escribirías en papel.
13 7 30 3.3333333333333335
La suma, la resta y la multiplicación funcionan exactamente como esperas. La división trae una sorpresa: siempre devuelve un float, incluso cuando el resultado es un número entero.
5.0 <class 'float'> 10.0 2.0
Puedes hacer cálculos con variables igual que con números sueltos. Aquí es donde la cosa se vuelve útil.
Subtotal: $50.0 Tax: $4.0 Total: $54.0
¿Qué son la división entera (//) y el módulo (%)?
Python tiene dos operadores especiales que son uña y carne: la división entera (//) y el módulo (%). Responden a dos preguntas distintas sobre la misma división.
Imagina que tienes 17 galletas y 5 amigos. 17 // 5 te dice que a cada amigo le tocan 3 galletas. 17 % 5 te dice que sobran 2 galletas.
¿Cómo funciona la división entera (//)?
La división entera (//) divide y redondea hacia abajo al número entero más cercano. Descarta por completo la parte decimal.
3.4 3 3.3333333333333335 3 3.5 3 -4
¿Cómo funciona el operador módulo (%)?
El operador módulo (%) te da el resto de una división. Es increíblemente útil y aparece más a menudo de lo que imaginas.
2 1 0 1 42 is even
El uso más común del módulo es comprobar si una división es exacta. Si x % y == 0, entonces x es divisible entre y. Así se comprueba si un número es par o impar, si un año es bisiesto y mucho más.
Cómo usar potencias en Python
Python usa ** para la potenciación (elevar un número a una potencia). La mayoría de los lenguajes usan una función para esto, pero en Python es un operador. Sencillo y limpio.
8 25 1000000 3.0 3.0
Un truco útil: elevar un número a 0.5 te da su raíz cuadrada. Y ** (1/3) da la raíz cúbica. No necesitas una función especial para las raíces básicas.
$1000 at 5.0% for 10 years = $1628.89
¿Cuál es el orden de las operaciones en Python?
Python sigue el mismo orden de las operaciones que aprendiste en la clase de matemáticas. Quizá lo conozcas como jerarquía de operaciones: paréntesis, potencias, multiplicación y división, suma y resta.
14 2 13.0 20 512 8.0
Esta es la lista completa de prioridades, de mayor a menor:
(): paréntesis (siempre primero)**: potenciación*, /, //, %: multiplicación, división, división entera, módulo+, -: suma y restaresult = base + rate * hours - discount / 2
print(result)result = base + (rate * hours) - (discount / 2)
print(result)¿Qué funciones matemáticas integradas tiene Python?
Python trae varias funciones integradas para tareas matemáticas comunes. No hace falta importar nada: están disponibles en todas partes.
Cómo usar abs(), round(), min() y max()
10 10 3.7 4 3 3.14 1200
1 -20 8 -5 Score 150 clamped to 100
Cómo convertir entre enteros y decimales
A veces necesitas pasar de un tipo de número a otro. Usa int() para convertir un float en entero, y float() para convertir un entero en float.
3 3 -2 42.0 -7.0 25 3.14
Python también hace conversiones automáticas en algunas situaciones. Cuando mezclas un entero y un float en una operación, Python convierte automáticamente el entero en float.
7.0 <class 'float'> 15.0 6.5 <class 'float'>
¿Cuáles son los errores más comunes con números en Python?
Veamos los errores en los que suelen caer los principiantes de Python. Conocerlos de antemano te ahorrará horas de depuración.
Error 1: esperar que / devuelva un entero
total_items = 10
people = 2
each = total_items / people
print(f"Each gets {each} items") # "Each gets 5.0 items"total_items = 10
people = 2
each = total_items // people
print(f"Each gets {each} items") # "Each gets 5 items"Error 2: confundir / y //
3.5 3 3.75 3
Error 3: olvidar los paréntesis en las fórmulas
# Converting Fahrenheit to Celsius
fahrenheit = 212
celsius = fahrenheit - 32 * 5 / 9
print(celsius) # 194.22... WRONG!# Converting Fahrenheit to Celsius
fahrenheit = 212
celsius = (fahrenheit - 32) * 5 / 9
print(celsius) # 100.0 CORRECT!Ejercicios de práctica
¡Es hora de poner a trabajar lo que sabes de números! Estos ejercicios usan situaciones reales para que veas cómo se aplican las matemáticas de Python a problemas cotidianos.
Intenta cada uno por tu cuenta antes de mirar las pistas. Equivocarse es parte de aprender.
Estás comprando en una tienda. Calcula el total y muéstralo.
Imprime el total exactamente en este formato:
Total: $16.0Usa el operador módulo (%) para comprobar si un número es par o impar.
Tienes una variable number con el valor 37. Imprime el resultado exactamente en este formato:
37 is oddSi el número fuera par (como 42), la salida sería:
42 is evenEn inglés, "odd" significa impar y "even", par.
Este código debería repartir 10 pizzas a partes iguales entre 3 grupos e indicar cuántas sobran. ¡Pero usa los operadores de división equivocados!
Corrige el código para que la salida sea:
Each group gets 3 pizzas
Leftover pizzas: 1Convierte una temperatura de grados Fahrenheit a Celsius con esta fórmula:
**Celsius = (Fahrenheit - 32) * 5 / 9**
Tienes una variable fahrenheit con el valor 72. Calcula el valor en Celsius, redondéalo a 1 decimal e imprime:
72F = 22.2CSin ejecutar el código, predice qué imprimirá cada línea. Escribe tus predicciones como comentarios y luego ejecuta el código para comprobarlas.
Calcula el interés compuesto con esta fórmula:
**A = P * (1 + r) t
Donde:
Calcula la cantidad final y los intereses ganados, y luego imprime:
Final amount: $1628.89
Interest earned: $628.89Redondea los dos valores a 2 decimales.
Resumen: números y matemáticas en Python
Esta es una referencia rápida de todos los operadores y funciones de este tutorial:
| Operador | Nombre | Ejemplo | Resultado |
|---|---|---|---|
+ | Suma | 5 + 3 | 8 |
- | Resta | 5 - 3 | 2 |
* | Multiplicación | 5 * 3 | 15 |
/ | División | 5 / 3 | 1.666... |
// | División entera | 5 // 3 | 1 |
% | Módulo (resto) | 5 % 3 | 2 |
** | Potenciación | 5 ** 3 | 125 |
Funciones integradas:
| Función | Para qué sirve | Ejemplo |
|---|---|---|
abs(x) | Valor absoluto | abs(-5) → 5 |
round(x, n) | Redondear a n decimales | round(3.14, 1) → 3.1 |
min(a, b, ...) | El valor más pequeño | min(3, 1, 4) → 1 |
max(a, b, ...) | El valor más grande | max(3, 1, 4) → 4 |
int(x) | Convertir a entero | int(3.9) → 3 |
float(x) | Convertir a float | float(5) → 5.0 |
¿Qué sigue?
En el próximo tutorial, [Cadenas de texto en Python](/python/python-strings), aprenderás a trabajar con texto en Python. Descubrirás el rebanado (slicing), los métodos de las cadenas y cómo combinar cadenas y números en una salida fácil de leer.