Rullst AcademyRullst Academy/Lección
Python en Ubuntu · Lección 05 / 05

Mi taller listo y probado

Tu primer proyecto calcula el tiempo restante de un plan ficticio. Cuatro pruebas ayudan a detectar cuándo un cambio rompe la regla.

Rutas de aprendizaje18 min

Vamos a descubrir juntos

  1. 1

    Descarga la actividad y extráela en una carpeta nueva. mission.py contiene una función pequeña; test_mission.py contiene cuatro pruebas. README.md explica los comandos de tu sistema. No ejecutes dentro del ZIP ni llames al archivo unittest.py o python.py: puede ocultar módulos con esos nombres.

  2. 2

    def nombra una regla reutilizable; total y used reciben números. return entrega el resultado. max(0, total - used) elige el mayor valor: el tiempo restante nunca es negativo. Aquí usamos solo enteros no negativos; no es un validador de cualquier entrada. El bloque __main__ imprime el ejemplo al ejecutar directamente el archivo.

  3. 3

    En el terminal de la carpeta extraída, ejecuta python3 mission.py: esperamos 15. Después ejecuta python3 -m unittest -v: deben ejecutarse cuatro pruebas y terminar con OK. Ran 0 tests no comprueba el proyecto; revisa la carpeta y el nombre test_mission.py. Las pruebas usan unittest, incluido en Python.

  4. 4

    Guarda una copia de mission.py como mission-backup.txt. Cambia solo return max(0, total - used) por return total - used, guarda y repite las pruebas: el caso 20, 25 debe fallar al devolver -5. Restaura la línea original y confirma las cuatro pruebas correctas. Así ves una prueba encontrar un defecto real.

PYTHON · ubuntu

Del navegador a tu computadora

Las predicciones de esta página usan ejemplos preparados. Para practicar de verdad, descarga la actividad, extráela en una carpeta nueva y sigue README.md paso a paso. Rullst Academy no instala ni ejecuta Python en tu computadora.

Comandos en el terminal de tu sistema

python3 mission.py
python3 -m unittest -v

Código para guardar en el editor

Las líneas Python de abajo van en el archivo. Los comandos del terminal están en el panel anterior. No copies >>>, números de línea ni las marcas de Markdown.

# En este taller, total y used son enteros no negativos. Python I profundizará en funciones y validación.
def minutes_left(total, used):
    return max(0, total - used)


if __name__ == "__main__":
    print(minutes_left(20, 5))
Paso opcional: un entorno por proyecto

Al terminar, puedes crear .venv donde aún no exista ese nombre. Los comandos usan directamente el Python de esa carpeta, sin activación ni cambios de política de PowerShell. No copies .venv a otra computadora ni la publiques; recréala cuando haga falta. Aquí no necesitas paquetes extra.

python3 -m venv .venv
./.venv/bin/python mission.py
./.venv/bin/python -m unittest -v
Enlaces oficiales y siguiente paso
Mis archivos y GitHub

En las dos primeras lecciones, el editor guarda notas .md. Después guarda código .py. Descarga tus cambios para llevarlos a otro dispositivo; el ZIP contiene material inicial. Publicar en GitHub es opcional y envía un archivo por operación, sin enviar tu entorno Python.

Continuar a Python I
✦
TU MISIÓN

Ejecutar un programa y sus pruebas, provocar un fallo y corregirlo.

Ahora te toca

Taller de descubrimientos

Prepara, observa y explica

Los escenarios preparados consultan la misma regla con 20 minutos planeados: primero 5 usados y luego 25. En tu computadora, el kit también prueba el límite exacto y un plan de cero minutos. Las respuestas online no demuestran que ejecutaste las pruebas locales.
Mini experimento

Simulación didáctica: compara tarjetas y comprueba tus predicciones. El navegador no compila Rust ni inicia un servidor.

def minutes_left(total, used):
    return max(0, total - used)

print(minutes_left(20, 5))
Prepara tus respuestas y comprueba cuando estés listo.
Una pausa para entender

¿Por qué provocar y luego corregir un fallo de prueba?

Necesito una pista

Compara las herramientas, el archivo y el resultado. No necesitas adivinar.

Cargando tu camino…

¿Cómo reconocer lo que aprendí?

Usa objetivos y desafío para reflexionar o conversar con alguien que pueda ayudar. Es autoevaluación orientada: no envía respuestas, no da XP ni verifica automáticamente autonomía.

En Fundamentos, modifica un ejemplo, predice, comprueba un caso normal y uno de error, y explica tus decisiones. Si necesitas ayuda, identifica qué practicar otra vez.

Tu desafío de transferencia

Crea un quinto caso, por ejemplo 30 minutos planeados y 10 usados, esperando 20. Ejecuta de nuevo y comprueba cinco pruebas. Registra el fallo provocado y lo aprendido; después continúa a Python I. Compartir en GitHub es opcional.

Guarda evidencia: predicción, intento, resultado, cambio propio y lo que aún no explicas. Busca feedback si es posible; si estudias solo, vuelve después sin copiar y compara intentos.

Inténtalo de nuevo en otro momento

Tras una pausa, explica la idea sin abrir la solución y prueba otro ejemplo. Compara con tu primer intento: ¿qué puedes hacer por tu cuenta y dónde necesitas una pista? Puedes escribir, hablar o dibujar; elige una forma de comprobar la misma idea. Registra la ayuda recibida, incluida IA, y vuelve al fragmento necesario. No hay plazo universal ni XP extra por este registro.

Las conclusiones y XP registran evaluaciones de Rullst Academy. Una ruta introductoria puede ayudar en la vida diaria y preparar estudios; sola no demuestra dominio completo ni preparación profesional. Nivel indica profundidad, no edad.

Llévatelo contigo

Crea un quinto caso, por ejemplo 30 minutos planeados y 10 usados, esperando 20. Ejecuta de nuevo y comprueba cinco pruebas. Registra el fallo provocado y lo aprendido; después continúa a Python I. Compartir en GitHub es opcional.

A tu ritmo

Mis archivos y GitHub

Cada lección puede convertirse en un registro propio: código, notas o un plan de práctica. Guardar un archivo en GitHub es opcional y no cambia tus XP.

Manual del alumno

El editor y las descargas se abren cuando esta lección esté disponible para tu cuenta. Revisa el acceso indicado abajo o vuelve al mapa de la ruta.

Comprobando tu acceso a esta lección…

Rullstpetbot

La IA puede equivocarse. Consulta el material de la lección.