Lección 12 de 12 · Lectura y práctica
Cierre y próximos pasos: Introducción a Python
Cierra el curso de Python con un pequeño programa de gastos ficticios, validación de entradas y casos de prueba que puedas explicar.
Del concepto a la práctica
Taller de esta lección
Cerrar un curso implica demostrar límites, no solo mostrar el caso feliz. Una tabla de pruebas pequeña puede revelar si el programa distingue una colección vacía, datos válidos y páginas negativas antes de ampliarlo.
Ejemplo resuelto
def total_paginas(registros):
total = 0
for registro in registros:
paginas = registro["paginas"]
if not isinstance(paginas, int) or isinstance(paginas, bool) or paginas < 0:
raise ValueError("páginas inválidas")
total += paginas
return total
print(total_paginas([{"paginas": 12}, {"paginas": 8}]))
print(total_paginas([]))La salida es 20 y 0. La validación evita aceptar un booleano como entero.
Pruébalo
Ejecuta primero los dos casos válidos.
Añade un registro con
paginas: -1.Comprueba que aparece
ValueErrorcon su mensaje.Anota entradas aceptadas y rechazadas.
Un error frecuente es probar solo un total positivo y declarar terminado el programa. Corrección: conserva una matriz con caso normal, vacío y erróneo.
Ejercicio: prueba [{"paginas": True}].
Comprueba tu resultado
se rechaza con páginas inválidas, sin sumar 1. No conectes el ejercicio con datos personales ni servicios externos.

Mapa de prácticaRecupera la idea sin mirar los apuntes y úsala en un ejercicio pequeño. Compara el resultado con criterios y corrige los errores identificados. Volver a practicar en otra sesión ayuda a comprobar qué puedes recordar y aplicar.
Ver la infografía en tamaño completo ↗Un programa pequeño completo
Para cerrar el curso, construye un resumen de gastos ficticios. El trabajo reúne variables, listas, funciones y control de errores. No requiere conectarse a un banco ni guardar datos personales. Empieza por una función con un resultado fácil de comprobar.
def total_gastos(importes):
total = 0
for importe in importes:
if not isinstance(importe, int) or isinstance(importe, bool):
raise ValueError("Usa importes enteros en centavos")
if importe < 0:
raise ValueError("Un gasto no puede ser negativo")
total += importe
return total
assert total_gastos([1200, 350, 450]) == 2000
assert total_gastos([]) == 0
El ejemplo representa dinero en centavos enteros para no mezclar unidades ni introducir redondeos con números decimales binarios. No es un sistema contable. La suma de práctica es 2.000 centavos: usa el mismo criterio al mostrar el resultado.
Amplía una parte por vez
- Añade nombres a tres gastos ficticios y separa datos de presentación.
- Crea una función que devuelva cantidad de registros y total.
- Valida una entrada no numérica y un importe negativo con un mensaje claro.
- Añade una opción para leer un archivo de práctica y manejar un archivo ausente.
- Escribe un README con cómo ejecutar, qué entradas acepta y qué no hace el programa.
Casos para revisar
| Entrada | Qué comprobar |
|---|---|
| Lista vacía | Total cero y sin división por cero |
| Tres enteros válidos | Suma reconstruible |
| Importe negativo | Rechazo explícito |
| Texto como importe | No se acepta como número silenciosamente |
| Archivo que no existe | Mensaje útil sin ocultar el problema |
Si usas entradas de teclado, recuerda que llegan como texto. Convertir con int puede fallar; captura el error donde puedas explicar cómo corregirlo. No uses un bloque que ignore cualquier excepción y devuelva cero, porque haría parecer correcto un registro inválido.
Entregable de cierre
- Código, datos ficticios y README en una carpeta.
- Un registro de los casos ejecutados y del resultado observado.
- Una explicación de una decisión: centavos enteros, validación o lectura de archivo.
- Una próxima mejora concreta, como separar interfaz y cálculo, sin anunciar funcionalidades que no construiste.
Los assert ilustran pruebas propuestas; ejecuta y registra las tuyas. El cierre no reemplaza una evaluación existente ni acredita experiencia profesional que todavía no has demostrado.
Referencias para comprobar la implementación
Documentación consultada el 2 de octubre de 2026. Comprueba también las versiones y condiciones de tu proyecto.
Sigue con Introducción a Python
Esta lección forma parte de un curso de Cursalo. Revisa su programa y elige entre la compra individual o el acceso a toda la escuela.
Si ya tenías acceso a este curso, entra con tu cuenta: tus derechos y tu progreso se conservan. No necesitas comprarlo de nuevo.