Conviene haber comprendido Objetos, clases y modelado.
Avanza en orden. Cada lección está redactada para Palta es Cool, utiliza ejemplos propios y termina con una actividad cuya respuesta puedes desplegar.
Ubícate antes de avanzar
Al terminar deberías poder relacionar Tracebacks y depuración con Pruebas con pytest y resolver un caso nuevo.
Reserva entre 75 y 120 minutos o divide el laboratorio en dos sesiones.
Instala Python 3 y utiliza IDLE o un editor como VS Code. Desde NumPy y Pandas trabaja dentro de un entorno virtual.
Abrir la guía de herramientas →Diagnóstico rápido: ¿cómo se relacionan Tracebacks y depuración y Pruebas con pytest? +
No necesitas acertar todavía. Escribe una hipótesis de dos líneas y compárala con tu respuesta al finalizar; si puedes corregirla y justificar el cambio, hubo aprendizaje.
Aprende el tema paso a paso
Pasarás de cambiar código al azar a localizar causas, definir resultados esperados y conservar cada corrección mediante pruebas repetibles.
- El traceback cuenta dónde terminó el error y cómo se llegó hasta allí
- Una prueba prepara, ejecuta y comprueba un resultado observable
- Tipos, documentación, estilo y registros reducen ambigüedad
El traceback cuenta dónde terminó el error y cómo se llegó hasta allí
La última línea identifica el tipo de excepción y su mensaje; las líneas anteriores muestran la cadena de llamadas. Depurar comienza reproduciendo el caso, reduciéndolo y encontrando la primera diferencia entre el valor esperado y el real, no corrigiendo la última línea a ciegas.
Reproduce el fallo con la misma entrada.
Lee el tipo, el mensaje y la primera línea propia relevante.
Inspecciona valores y formula una hipótesis antes de editar.
¿Por qué except Exception: pass no es una solución al error?
Mostrar respuesta +
Porque elimina la evidencia, permite que el programa continúe con un resultado desconocido y no define una respuesta útil. El error debe prevenirse, manejarse donde exista una decisión o propagarse con contexto.
Una prueba prepara, ejecuta y comprueba un resultado observable
Una prueba unitaria verifica una pieza pequeña y determinista. Los ejemplos ayudan a comprender; las pruebas permiten detectar regresiones. Conviene cubrir un caso normal, límites, valores inválidos y reglas especialmente costosas de romper.
Arrange: prepara entradas y resultado esperado.
Act: ejecuta una sola conducta importante.
Assert: compara el resultado o la excepción observable.
¿Qué diferencia hay entre un ejemplo que funciona y una prueba de regresión?
Mostrar respuesta +
La prueba declara automáticamente qué resultado debe mantenerse y falla si un cambio futuro lo altera. Un ejemplo observado una vez no protege ese comportamiento después.
Tipos, documentación, estilo y registros reducen ambigüedad
Las anotaciones de tipo ayudan al editor y a las personas, pero no validan por sí solas los datos durante la ejecución. Una docstring explica contrato y excepciones; un estilo consistente hace predecible la lectura; y logging registra eventos con niveles sin mezclar diagnóstico con la salida normal.
Los tipos expresan entradas y retorno esperados.
La docstring explica propósito, límites y errores relevantes.
logging diferencia información, advertencias y fallos.
¿Es imposible llamar porcentaje("5", 10) porque la firma usa float?
Mostrar respuesta +
No. Python conserva tipado dinámico y las anotaciones no convierten ni bloquean automáticamente los valores. Herramientas de análisis pueden advertir el problema, y la función debe validar cuando la entrada no es confiable.
Tu recorrido en tres ideas
- El traceback cuenta dónde terminó el error y cómo se llegó hasta allí
- Una prueba prepara, ejecuta y comprueba un resultado observable
- Tipos, documentación, estilo y registros reducen ambigüedad
Corrige una tarifa que falla exactamente en el límite
Integra especificación, traceback, caso mínimo, pruebas de frontera y evidencia de la corrección.
Un cálculo funciona casi siempre, pero cobra de más en 100 unidades y falla cuando el consumo llega como texto.
Procedimiento
- Declara resultados esperados para 99, 100, 101 y una entrada inválida.
- Reproduce y traza el primer punto donde el valor real diverge.
- Corrige una causa, ejecuta pytest y conserva los casos como regresión.
Evidencia mínima
- Traceback o traza del caso mínimo.
- Pruebas que fallan antes y pasan después.
- Contrato con tipos, límites y excepción esperada.
Mostrar razonamiento modelo +
El cambio correcto depende de la regla que incluye o excluye 100, no de probar operadores al azar. La conversión de texto ocurre en el límite de entrada; la función de cálculo recibe ya un número válido.
Para ir más lejos¿Qué propiedad general podrías probar para cualquier consumo positivo?
Comprueba que puedes usarlo
Antes de continuar, revisa estos tropiezos frecuentes y resuelve un caso sin copiar los ejemplos.
Modificar varias líneas sin reproducir el fallo ni formular una hipótesis.
Probar solamente el caso feliz y confundir cobertura con calidad de las comprobaciones.
Ahora hazlo sin guía
Recibe una función defectuosa de tarifas: reproduce el error, reduce el caso y crea pruebas para los límites antes de corregirla.
Mostrar pauta de corrección +
- Identifica la primera divergencia entre valor esperado y real.
- Las pruebas fallan antes del cambio y pasan después.
- Incluye caso normal, fronteras, entrada inválida y contrato documentado.
