EATRYL
Guía de estudio / 8 min

Antes del código: define entradas, salida y errores

Diseña el comportamiento de una función antes de escribir su implementación.

Un nombre no define todo

Una función llamada promedio todavía deja decisiones abiertas. ¿Recibe una lista de números? ¿Admite una lista vacía? ¿Ignora datos inválidos o los rechaza? ¿Devuelve un número o un texto con unidades? Escribir esas decisiones forma un contrato que permite usarla y probarla.

No necesitas un documento extenso: tres líneas sobre entradas, salida y casos especiales pueden evitar que dos partes del programa esperen comportamientos diferentes.

Separar validez y conveniencia

Para una función que lee puntos enteros entre 0 y 100, "75" tiene formato y rango válidos. "150" tiene formato convertible, pero está fuera del rango. "setenta" no tiene el formato admitido. Cada rechazo debe responder a una regla declarada.

No conviertas automáticamente cualquier entrada inesperada en cero: ese cero podría confundirse con una calificación real. Rechazar con una explicación o devolver un resultado explícito de ausencia son decisiones posibles, pero deben ser consistentes.

La salida también merece precisión

Una búsqueda puede devolver el primer índice, todos los índices o un booleano. Elegir uno cambia cómo la utilizará otro código. Si devuelve un índice o None, el cero debe conservarse como posición válida; comprobar solo if resultado no distingue correctamente el primer elemento.

Piensa además si la función cambia sus argumentos. Ordenar una lista en el lugar afecta a quien conserve una referencia a ella. Si prometes conservarla, usa una estrategia que produzca otra lista y compruébalo.

Convertir el contrato en pruebas

Escribe primero una entrada habitual, una de frontera y una inválida. Para puntos, 60 es habitual, 0 y 100 son extremos válidos, y−1 y 101 están justo fuera. Así las pruebas se relacionan con decisiones del contrato.

Para una media, añade un solo elemento y signos opuestos. Estos casos pueden revelar un divisor fijo o una suma incorrecta que una lista grande no hace fácil de localizar.

Una plantilla para tu siguiente función

  • Recibe: tipo, significado y límites de cada argumento.
  • Devuelve: tipo y significado del resultado.
  • Si no puede resolver: error o señal que entrega.
  • Efectos: qué datos modifica, si modifica alguno.
  • Ejemplos: entrada y salida esperada calculada aparte.

Con esa ficha puedes pedir ayuda sobre una función sin depender de que otra persona adivine qué querías conseguir.

Clases en línea · Atención personalizada

¿Necesitas ayuda con este tema?

Trabájalo paso a paso con un profesor de EATRYL. Consulta disponibilidad y costo para reforzar Antes del código: define entradas, salida y errores.

Consultar una clase sobre este tema
Conecta lo aprendido

Sigue explorando.