Semana 3 · Día 2: Práctica con edades, notas y validaciones

Semana 3 · Día 2: Práctica con edades, notas y validaciones

Construye un programa que valida edades y notas, prueba los límites 17/18 y 59/60, y corrige una comparación defectuosa en 60 minutos.

Entrega de hoy

Al terminar los 60 minutos tendrás una carpeta dia-02-validaciones/ con cuatro evidencias:
  • validaciones.py, un programa que pide una edad y una nota;
  • predicciones.md, con el resultado esperado para cuatro pares de prueba;
  • salida.txt, con las cuatro ejecuciones reales;
  • prueba_limite.py, una copia donde provocarás y corregirás un error lógico.
La etiqueta exacta de la malla es Semana 3 · Día 2: Práctica con edades, notas y validaciones. Hoy no basta con clasificar un número: primero debes decidir si pertenece al rango aceptado. No avances todavía a bucles, funciones ni manejo de excepciones.

Sesión de 60 minutos

00:00-10:00 · Repaso de condiciones y límites

Abre predicciones.md y responde sin ejecutar código:
  1. ¿Qué tipo de dato devuelve input() y por qué necesitas int() antes de comparar?
  2. ¿Qué diferencia hay entre una entrada inválida y una entrada válida que queda por debajo de un límite?
  3. Si la mayoría de edad empieza en 18, ¿qué debería ocurrir con 17 y con 18?
  4. Si una nota aprobada empieza en 60, ¿qué debería ocurrir con 59 y con 60?
Después escribe tu predicción para estos cuatro pares, siempre en el orden (edad, nota):
  1. (-1, 59)
  2. (17, 60)
  3. (18, -1)
  4. (121, 101)
Usarás un rango de 0 a 120 para la edad y de 0 a 100 para la nota. Por tanto, una edad negativa o mayor que 120 es inválida; una nota negativa o mayor que 100 también lo es. Dentro de esos rangos, 18 separa menor y mayor de edad, mientras que 60 separa reprobada y aprobada.

10:00-30:00 · Recurso de la malla

Abre Learn Python - Full Course for Beginners [Tutorial], el curso gratuito de freeCodeCamp nombrado en la malla. Ve a 1:40:06 · If Statements y continúa hasta 2:00:06; dentro de ese tramo, If Statements & Comparisons comienza en 1:54:07. Detente antes de 2:00:37 · Building a better Calculator: hoy necesitas condiciones y comparaciones, no otro proyecto. 1
Reserva los últimos cinco minutos del bloque para anotar tres cosas en predicciones.md:
  • qué comparación deja fuera un valor demasiado bajo;
  • qué comparación deja fuera un valor demasiado alto;
  • por qué conviene validar el rango antes de clasificar.
Python permite encadenar varias ramas elif, mientras que la rama else es opcional. En una cadena ifelifelse, el orden decide qué condición se evalúa primero y qué bloque termina ejecutándose. 2

30:00-55:00 · Programa, cuatro pruebas y un error controlado

Crea dia-02-validaciones/validaciones.py:
edad = int(input("Ingresa tu edad: "))
nota = int(input("Ingresa tu nota: "))

if edad < 0:
    print("Edad inválida")
elif edad > 120:
    print("Edad inválida")
elif edad < 18:
    print("Menor de edad")
else:
    print("Mayor de edad")

if nota < 0:
    print("Nota inválida")
elif nota > 100:
    print("Nota inválida")
elif nota < 60:
    print("Reprobada")
else:
    print("Aprobada")
Dedica unos ocho minutos a escribirlo. Las dos cadenas siguen la misma secuencia: límite inferior inválido, límite superior inválido y clasificación de los valores que sí quedan dentro del rango. El else final ya no necesita otra comparación porque las ramas anteriores descartaron los demás casos.
Antes de ejecutar, completa en predicciones.md el resultado esperado:
  1. (-1, 59) debe producir Edad inválida y Reprobada.
  2. (17, 60) debe producir Menor de edad y Aprobada.
  3. (18, -1) debe producir Mayor de edad y Nota inválida.
  4. (121, 101) debe producir Edad inválida y Nota inválida.
Ejecuta validaciones.py cuatro veces, una por cada par. Copia en salida.txt las dos entradas y las dos líneas de resultado de cada ejecución. Separa las pruebas con una línea en blanco y marca si la salida coincidió con tu predicción. Estas cuatro ejecuciones comprueban valores inválidos por ambos extremos y, a la vez, los cortes 17/18 y 59/60.
Ahora duplica el archivo como prueba_limite.py. En la copia, cambia solo esta línea:
elif nota < 60:
por esta:
elif nota <= 60:
Ejecuta prueba_limite.py con 17 y 60. La nota quedará como Reprobada: 60 satisface nota <= 60, así que Python entra en esa rama y ya no llega al else. Guarda esa salida bajo ERROR CONTROLADO en predicciones.md. Después restaura nota < 60, repite el mismo caso y comprueba que vuelve a mostrar Aprobada.
Para terminar esta práctica, introduce solo números enteros. Las entradas de texto quedan fuera del alcance de hoy.

55:00-60:00 · Cierre de notas

Añade estas tres líneas al final de predicciones.md:
  1. Rango que validé: qué valores aceptaste para edad y nota.
  2. Límite que comprobé: qué cambió entre 17/18 y entre 59/60.
  3. Error que corregí: por qué <= 60 clasificaba mal la nota exacta de 60.
Cierra prueba_limite.py con la comparación correcta. La evidencia útil no es solo que el programa funcione, sino que puedas señalar qué entrada fallaba, qué condición la capturaba y qué cambió después de la corrección.

Hecho cuando...

  • Existe dia-02-validaciones/ con los cuatro archivos pedidos.
  • Escribiste las predicciones antes de ejecutar.
  • validaciones.py pide y convierte una edad y una nota.
  • La edad acepta de 0 a 120 y la nota de 0 a 100.
  • Ejecutaste por separado (-1, 59), (17, 60), (18, -1) y (121, 101).
  • Guardaste las entradas, las salidas reales y la comparación con tus predicciones.
  • Provocaste el fallo de 60 con nota <= 60 en la copia.
  • Restauraste nota < 60 y verificaste que 60 queda aprobada.
  • Puedes explicar por qué se valida el rango antes de clasificar.
  • No usaste bucles, funciones ni excepciones.

This story was produced automatically by a channel. One sentence is all it takes for Neodrop to keep producing for you.

Related content