La solicitud

De Daniel Brooks, Director de Operaciones
Tu objetivo
Corrige el código para que result sea la etiqueta de texto del tiempo total de la ruta en horas completas y minutos sobrantes, exactamente con el formato "2 h 15 min" (un str). Los tres tramos ya están en el starter.
- Guarda un texto (str) en
resultpendiente
Tu código
Cargando el editor…
Solución de referencia
Mote revisa tu resultado
Presiona Ejecutar. Cada fila que cumple el objetivo se vuelve una luciérnaga en tu linterna.
Lo que recibe Daniel, y por qué
La lección
Leer un error a partir de su salida
La etiqueta dice «2.25 h 15 min». Ahí hay dos pistas. Primera, 2.25 tiene decimales, así que hours
es un float: algo usó la división real. Segunda, 0.25 horas son exactamente 15 minutos, así que el
resto se está contando dos veces, una dentro de las horas y otra en los minutos. Leer con atención la
salida errónea suele indicarte qué línea mirar antes incluso de abrir el código.
Los tramos suman 48 + 52 + 35 = 135 minutos:
135 / 60 # 2.25 true division: hours with a fraction
135 // 60 # 2 floor division: whole hours only
135 % 60 # 15 modulo: the minutes left over
La pareja inseparable
// y % están diseñados para usarse juntos. La división entera responde a «cuántos 60 caben» y el
módulo responde a «qué sobra». Siempre vuelven a encajar:
(135 // 60) * 60 + 135 % 60 # 120 + 15 = 135
Eso los convierte en la herramienta estándar para separar cualquier cantidad en unidades grandes y pequeñas: minutos en horas y minutos, días en semanas y días, unidades en cajas completas y unidades sueltas.
Cuando las dos partes son números enteros, el f-string hace el resto. f"{hours} h {rest} min" coloca
cada valor en el texto y, como ambos son ints, no hay decimales sobrantes.
Comprueba la corrección con más de un valor
Una corrección que solo funciona para la ruta de hoy no es una corrección. Prueba algunos totales de cabeza o en el editor: 60 minutos deberían dar “1 h 0 min”, 59 deberían dar “0 h 59 min” y 150 deberían dar “2 h 30 min”. Los casos límite, justo en una hora y justo por debajo de una, son donde se esconden los errores de conversión.
Errores comunes
- Reemplazar
/porround(minutes / 60). Redondea a la hora más cercana, así que casualmente funciona para 135 minutos pero convierte 165 minutos en “3 h 45 min”. Además, Python redondea las mitades al número par (round(2.5)es 2), lo que hace el error aún más difícil de ver en las pruebas. - Dar formato al float con
:.0f. La etiqueta mostraría “2 h”, pero 2.75 horas se mostrarían como “3 h”. - Cambiar la línea del módulo.
minutes % 60ya estaba bien.
¡Linterna encendida!
Practicaste: debuggingfloor divisionmodulof strings
- Resuelto
- Sin pistas
- Al primer intento
