Rullst AcademyRullst Academy/Lección
Python: de la primera línea al proyecto · Lección 12 / 12

Tu organizador de pequeñas misiones

Llegó la hora de unir las piezas: datos, decisiones, bucles, funciones, archivos y pruebas. Tu programa elige misiones ficticias que caben en el tiempo disponible.

Rutas de aprendizaje18 min

Vamos a descubrir juntos

  1. 1

    La regla recorre la lista en orden. Omite misiones terminadas y acepta una pendiente si su duración cabe en el tiempo restante. Después resta esa duración. Una misión demasiado larga se omite; el bucle continúa.

  2. 2

    Tico usa 10 minutos, Luma 20 y Nilo 15, pero Nilo ya está terminada. Con límite 30 caben Tico y Luma: total 30, sobra 0. Con 25 solo cabe Tico: total 10, sobran 15.

  3. 3

    El ejemplo es el núcleo de la regla con datos preparados. El proyecto descargable añade validación, missions.json, informe y pruebas. Extrae todos los archivos, ejecuta organizer.py y después python -m unittest -v (python3 en macOS/Ubuntu).

  4. 4

    El orden importa: con Luma antes de Tico y límite 25, se elige Luma. Esta regla no busca la mejor combinación posible. Revisa el orden, prueba y explica tu decisión; un programa útil debe declarar qué hace y qué no considera.

  5. 5

    El editor de Rullst Academy guarda un archivo por envío; el ZIP contiene el proyecto inicial completo. Para publicar todos los archivos, extráelo y sigue PUBLISH.md. El programa no envía nada a internet. --save crea report.txt y rechaza sobrescribir un informe existente.

  6. 6

    Esta ruta usa solo la biblioteca estándar. En futuros proyectos con paquetes externos, usa un entorno virtual por proyecto: separa instalaciones de paquetes, pero no vuelve seguro un código desconocido. Consulta la guía venv antes de instalar; no uses sudo pip ni publiques la carpeta .venv.

DE LA LECCIÓN A LA PRÁCTICA

Una guía para seguir a tu ritmo

Lee los pasos antes de usar la referencia de abajo. Los comandos se ejecutan en el terminal del sistema indicado; el registro ocurre en el sitio oficial. Los ejercicios de Rullst Academy son práctica y no verifican tu instalación ni cuenta externa.

def plan(tasks, budget):
    selected = []
    remaining = budget
    for task in tasks:
        if not task["done"] and task["minutes"] <= remaining:
            selected.append(task["title"])
            remaining -= task["minutes"]
    return selected, budget - remaining, remaining

tasks = [{"title": "Tico", "minutes": 10, "done": False},
         {"title": "Luma", "minutes": 20, "done": False},
         {"title": "Nilo", "minutes": 15, "done": True}]
print(plan(tasks, 30))

Enlaces oficiales y siguiente paso

✦
TU MISIÓN

Ejecutar, modificar y probar un proyecto local; explicar su regla de selección y sus límites.

Ahora te toca

Taller de descubrimientos

Lee, predice, comprueba

Compara las dos versiones. Mostrar resultado revela una salida preparada: este panel no ejecuta Python. Después practica con el archivo de la actividad.
Mini experimento

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

def plan(tasks, budget):
    selected = []
    remaining = budget
    for task in tasks:
        if not task["done"] and task["minutes"] <= remaining:
            selected.append(task["title"])
            remaining -= task["minutes"]
    return selected, budget - remaining, remaining

tasks = [{"title": "Tico", "minutes": 10, "done": False},
         {"title": "Luma", "minutes": 20, "done": False},
         {"title": "Nilo", "minutes": 15, "done": True}]
print(plan(tasks, 30))
Prepara tus respuestas y comprueba cuando estés listo.
Una pausa para entender

¿La regla siempre elige la combinación que usa más minutos?

Necesito una pista

Compara salidas al invertir Tico y Luma con límite 25.

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

Descarga y ejecuta el proyecto. Cambia el límite a 25, prueba otro orden y añade una misión ficticia. Añade una prueba y registra predicción, salida, cambio y un límite del modelo. La reflexión escrita no recibe nota automática.

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

Descarga y ejecuta el proyecto. Cambia el límite a 25, prueba otro orden y añade una misión ficticia. Añade una prueba y registra predicción, salida, cambio y un límite del modelo. La reflexión escrita no recibe nota automática.

PYTHON · .py

Tu espacio de práctica Python

Aquí lees y predices salidas preparadas. Para ejecutar el código real, descarga el archivo, edítalo en el ordenador y usa Python. Rullst Academy evalúa las respuestas de la lección; no verifica la ejecución local.

Guardar y ejecutar

Extrae el ZIP de la actividad en su propia carpeta. Abre la terminal allí y usa el comando de tu sistema. Si descargas el archivo editado por separado, usa su nombre real en el comando. Guarda antes de volver a ejecutar.

Windows
python organizer.py
macOS / Ubuntu
python3 organizer.py
Mis archivos y GitHub

El editor conserva un borrador local y puede enviar un archivo .py a GitHub con tu confirmación. Descarga tu código editado para conservarlo. El ZIP es material inicial; en el proyecto final publica también datos y pruebas siguiendo PUBLISH.md.

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.