Calcular al mismo tiempo el cociente y el residuo de una división es muy fácil con una función integrada en Python llamada divmod(). En el artículo de hoy queremos enseñarte de qué va esta herramienta tan usada en Python y algunos de sus trucos sobre funcionamiento.
¿Qué es divmod() en Python?
La divmod() es una función en Python que nos permite realizar divisiones y obtener, al mismo tiempo, tanto conciente como residuo de una operación en una sola línea de código. ¿Cómo lo hace? ¡Muy sencillo! Devuelve una tupla con el cociente como el primer valor y el residuo como el segundo. Así:
resultado = divmod(5, 2)
print(resultado) # Output: (2, 1)
En este caso, el cociente de dividir 5 entre 2 es 2, y el residuo es 1. ¡Así de fácil!
¿Cómo funciona divmod()?
Esta propiedad tiene una sintaxis bastante simple, de modo que:
divmod(dividendo, divisor)
Tenemos que:
- El dividendo es el número que quieres dividir.
- El divisor es el número por el que deseas dividir.
La función devuelve una tupla con dos elementos:
- El cociente (resultado de la división entera).
- El residuo (lo que sobra al realizar la división).
¿Por qué deberías usar divmod() en Python?
🔴 ¿Quieres Aprender a Programar con Python? 🔴
Descubre el Full Stack Jr. Bootcamp - Aprende a Programar desde Cero de KeepCoding. La formación más completa del mercado y con empleabilidad garantizada
👉 Prueba gratis el Bootcamp Aprende a Programar desde Cero por una semanaEsta propiedad puede simplificar la manera en la que escribes tu código en situacioens en donde son necesarios ambos resultados, tanto cociente como residuo, al mismo tiempo. De modo que algunas de las razones para su uso son:
- Ahorra líneas de código: En lugar de escribir dos operaciones separadas, como // para el cociente y % para el residuo, divmod() lo hace en un solo paso.
- Es más eficiente: Internamente, Python calcula ambos valores con una sola operación, haciéndolo más rápido.
- Es claro y legible: El propósito de tu código es más fácil de entender para otros desarrolladores (y para tu yo del futuro).
Casos de uso (ejemplos)
Usar divmod() es posible en diferentes contextos como los que te mostraremos a continuación:
- Calcular horas y minutos: digamos que tienes unos minutos y quieres saber cuál es su equivalente en horas y minutos:
total_minutos = 130
horas, minutos = divmod(total_minutos, 60)
print(f"{horas} horas y {minutos} minutos")
# Output: 2 horas y 10 minutos
- Divisiones en iteraciones: Si estás programando algoritmos o estructuras d edatos, esta opción puede ayudarte en cálculos repetitivos, del siguientemodo:
numero = 23
while numero > 0:
cociente, residuo = divmod(numero, 5)
print(f"Cociente: {cociente}, Residuo: {residuo}")
numero -= 5
- Ajustar dimensiones: Si gestionas gráficos o interfaces, el divmod() es recomendado para dividir elementos en filas y columnas:
pixeles = 1024
columnas = 16
filas, sobrante = divmod(pixeles, columnas)
print(f"Se necesitan {filas} filas y sobran {sobrante} píxeles")
¿Qué debes tener presente si trabajas con divmod(): trucos y secretos
Debes tener en cuenta aspectos como los siguientes:
- Divisor igual a cero: Esto generará un ZeroDivisionError. Asegúrate de validar el divisor antes de usar la función.
- Tipos de datos no numéricos: Divmod() no funciona con cadenas o datos no numéricos. Si intentas algo como divmod(“5”, 2), obtendrás un TypeError.
- Resultados inesperados con números negativos: Si el dividendo o el divisor es negativo, el residuo puede no ser lo que esperabas. Por ejemplo:
resultado = divmod(-7, 3)
print(resultado) # Output: (-3, 2)
Si quieres llevar el uso de divmod() a niveles inexplorados, aquí tienes un par de tips:
- Combinación con listas o bucles: Usa divmod() en comprensiones de listas o para descomponer grandes cantidades en partes más pequeñas.
- Automatización de procesos: Integra divmod() en funciones que requieran cálculos rápidos de tiempo, dimensiones o particiones.
¿Te interesó este tema y quieres seguir aprendiendo sobre tópicos similares? Únete al bootcamp en programación desde cero que tiene Keepcoding para ti, en el cual podrás adquirir las habilidades que te catapultarán al sector laboral en el campo tecnológico de manera rápida y sin tener que preocuparte porque no sabes cómo hacer las cosas. Aquí te asesoramos en todo momento, ¡inscríbete y comienza tu transformación ahora con nosotros!