Las operaciones de un programa deben representar lo que quieres calcular. Saber escribir un signo de multiplicación no basta si mezclas unidades o eliges una fórmula incorrecta. En esta lección practicarás operaciones aritméticas, comparaciones y un cálculo de cajas completas. Recuperarás el problema que resolviste sobre papel al comenzar el curso.
Operadores que utilizarás con frecuencia
Python utiliza + para sumar, – para restar y * para multiplicar. La barra / realiza una división que produce un resultado de tipo float aunque los operandos sean enteros. La doble barra // realiza división con redondeo hacia abajo. El símbolo % obtiene el resto de la división.
Para cantidades enteras no negativas puedes interpretar 17 // 5 como el número de grupos completos de cinco que caben en diecisiete. El resultado es tres. La expresión 17 % 5 da dos porque quedan dos elementos después de formar esos grupos. Trabajaremos con ese contexto positivo para evitar confundir el redondeo con un simple recorte de decimales.
objetos = 17
capacidad = 5
print(objetos // capacidad)
print(objetos % capacidad)
print(objetos / capacidad)
Las salidas son 3, 2 y 3.4. No representan exactamente lo mismo. Si preguntas cuántas cajas físicas necesitas no puedes entregar 3.4 cajas. Debes decidir cómo transformar ese resultado según el problema. Una fórmula correcta en términos aritméticos puede ser inadecuada para el uso previsto.
Hacer explícitas las unidades
Imagina que una actividad dura cuarenta minutos y la repites tres veces. El producto 40 * 3 representa ciento veinte minutos. Si añades diez minutos de preparación una sola vez el total es 130. Si la preparación se repite en cada sesión el cálculo cambia a (40 + 10) * 3 y el total es 150.
No es una diferencia de sintaxis sino de interpretación. Escribe primero qué significa cada cantidad y cuándo se aplica. Los nombres minutos_por_sesion y numero_sesiones ayudan a conservar ese significado. Un nombre como total no siempre basta cuando manejas simultáneamente minutos, horas y número de actividades.
Los paréntesis permiten indicar qué operación debe agruparse primero. Aunque conozcas las reglas de prioridad, utilizarlos cuando mejoran la lectura suele ser una buena decisión. Compara 2 + 3 * 4 con (2 + 3) * 4. El primer resultado es catorce y el segundo es veinte.
Calcular cajas sin perder los sobrantes
Para un número no negativo de objetos y una capacidad entera positiva puedes calcular el número de cajas mediante división entera añadiendo capacidad – 1 antes de dividir. El siguiente ejemplo utiliza únicamente enteros:
objetos = 23
capacidad = 5
cajas = (objetos + capacidad - 1) // capacidad
print(f"Necesitas {cajas} cajas")
El resultado es cinco. Con veinte objetos el resultado es cuatro y con cero objetos es cero. La fórmula funciona bajo los supuestos indicados. No la presentes como una receta universal para capacidades negativas o para objetos fraccionarios. Comprender sus condiciones de uso es parte de comprender el cálculo.
¿Por qué se añade cuatro cuando la capacidad es cinco? Porque cualquier resto positivo debe hacer que la división entera avance al siguiente grupo. Si no hay resto la suma no alcanza para añadir otra caja completa. Comprueba esta explicación con veintiuno, veinticuatro y veinticinco objetos. En los tres casos obtienes cinco cajas.
Comparar valores
Las comparaciones producen booleanos. Puedes preguntar si dos valores son iguales con ==, si son distintos con != o si uno es mayor o menor mediante > y <. También existen >= y <= para incluir la igualdad. Estos resultados serán la base de las decisiones de la siguiente lección.
capacidad = 5
objetos = 23
print(capacidad > 0)
print(objetos >= 0)
print(objetos == 20)
Las dos primeras expresiones producen True y la tercera False. Recuerda que = asigna y == compara. Confundir ambos signos puede provocar errores de sintaxis o llevarte a expresar una operación distinta de la que pretendías. Lee en voz baja «es igual a» cuando revises una comparación.
Céntimos y límites de los decimales
Para practicar importes sencillos puedes representar un precio de 2,35 euros como 235 céntimos. Tres unidades cuestan 705 céntimos. Así mantienes enteros durante el cálculo. Para separar euros y céntimos utiliza división entera y resto: 705 // 100 da siete y 705 % 100 da cinco.
No confundas este ejemplo didáctico con un sistema completo de facturación. Impuestos, reglas de redondeo y conversiones requieren decisiones adicionales. Aquí el propósito es comprender que la representación elegida facilita ciertas operaciones. Con float algunas fracciones decimales se aproximan en binario y pueden aparecer pequeñas diferencias al comparar resultados.
No necesitas memorizar todos los detalles internos. Basta con no interpretar muchos decimales en pantalla como una garantía de exactitud. Elige enteros para contadores y unidades discretas. Cuando un dominio requiera precisión decimal específica investiga una representación adecuada antes de ampliar el programa.
Errores habituales
- Dividir antes de comprobar que el divisor es distinto de cero.
- Confundir grupos completos con recipientes necesarios.
- Mezclar horas y minutos en una misma suma.
- Comparar con = en vez de ==.
- Usar una fórmula fuera de los supuestos para los que fue diseñada.
Lo que deberías recordar
- // y % permiten separar cociente entero y resto.
- Las unidades forman parte del significado de una operación.
- Los paréntesis hacen visible la agrupación del cálculo.
- Una comparación produce True o False.
Ejercicio práctico
Crea cajas.py con dos variables: fotografias y capacidad. Calcula los sobres necesarios mediante la fórmula de esta lección. En la sexta hoja del cuaderno registra las unidades y predice los resultados para 23, 20, 0 y 1 fotografías con capacidad cinco. Debes obtener cinco, cuatro, cero y un sobre.
Prueba además dos expresiones que solo se diferencien por los paréntesis y explica el cambio. No ejecutes una división por cero como parte normal del cálculo. Anota que ese caso debe rechazarse antes de operar. En la próxima lección podrás escribir la decisión que falta para que el programa responda de manera controlada.
Siguiente capítulo: Tomar decisiones con condiciones.








