Semana 3 · Día 2 — Valida edades y notas antes de clasificar

Semana 3 · Día 2 — Valida edades y notas antes de clasificar

En 60 minutos crearás un archivo que rechaza edades y notas fuera de rango antes de clasificar cuatro casos de prueba.

Entregable de hoy

Semana 3 — Control de flujo · Día 2
Guarda un único archivo llamado S3D2_validaciones.py. Al terminar, el programa debe pedir una edad y una nota, rechazar cualquier valor fuera de los rangos 0–120 y 0–100, y clasificar solo los registros válidos.
Deja dentro del archivo cuatro pruebas con estos resultados:
  • edad = 16, nota = 85Registro válido: objetivo cumplido.
  • edad = 150, nota = 85Edad no válida.
  • edad = 16, nota = 105Nota no válida.
  • edad = 16, nota = 65Registro válido: necesita práctica.

Primero se valida; después se clasifica

Ayer elegiste un estado para una entrada posible. Hoy añades una puerta delante de esa decisión: si la edad o la nota están fuera del rango permitido por este ejercicio, el programa debe detener la clasificación en una rama de error.
El orden importa. 105 >= 70 es verdadero, pero una nota de 105 no pertenece al rango 0–100. Por eso la comprobación de rango debe aparecer antes que la condición nota >= 70. Las comparaciones producen valores booleanos que una sentencia if puede evaluar, y or permite reunir los dos extremos inválidos de cada rango. 12
Hoy validas rangos numéricos, no texto. Escribe solo números durante las pruebas: input() devuelve una cadena y int() la convierte antes de las comparaciones. 34 Si introduces letras, el programa todavía fallará; no añadas bucles ni manejo de errores en esta jornada.

Recursos

Sesión de 60 minutos

00:00–10:00 · 10 min de repaso

  1. Abre S3D1_condicionales.py y localiza la primera condición verdadera que detiene su cadena if/elif/else.
  2. Sin ejecutar nada, responde en tus notas: ¿qué resultado daría una condición nota >= 70 con nota = 105?
  3. Escribe las dos preguntas que debe resolver la validación antes de clasificar: «¿La edad es menor que 0 o mayor que 120?» y «¿La nota es menor que 0 o mayor que 100?».
  4. Predice cuál de las cuatro pruebas del entregable llegaría a la condición nota >= 70 y cuál debería detenerse antes.

10:00–30:00 · 20 min de curso o video

Mira el tramo indicado de Learn Python - Full Course for Beginners [Tutorial]. Detente en 2:07:17; los bucles pertenecen a otra jornada.
Anota solo cuatro operadores que usarás hoy: <, >, >= y or. Si prefieres leer, emplea las secciones 6.10. Comparaciones y 6.11. Operaciones booleanas. Cierra el bloque escribiendo esta regla con tus palabras: un valor inválido no debe alcanzar la rama que clasifica una nota válida.

30:00–55:00 · 25 min de práctica

Crea S3D2_validaciones.py desde un archivo vacío:
# S3D2_validaciones.py
edad = int(input("Edad: "))
nota = int(input("Nota (0-100): "))

if edad < 0 or edad > 120:
    resultado = "Edad no válida"
elif nota < 0 or nota > 100:
    resultado = "Nota no válida"
elif nota >= 70:
    resultado = "Registro válido: objetivo cumplido"
else:
    resultado = "Registro válido: necesita práctica"

print(resultado)

# Pruebas realizadas:
# edad=16, nota=85 ->
# edad=150, nota=85 ->
# edad=16, nota=105 ->
# edad=16, nota=65 ->
Trabaja en este orden:
  1. Ejecuta las cuatro pruebas. Completa cada comentario con el texto que apareció en el terminal.
  2. Comprueba un borde. Ejecuta edad = 120, nota = 100. Debe seguir siendo un registro válido porque las condiciones de error usan < 0 y > 120 o > 100, no >=.
  3. Provoca un error de orden. Mueve temporalmente la rama elif nota >= 70 por encima de la validación de nota. Ejecuta edad = 16, nota = 105 y anota el resultado incorrecto.
  4. Restaura y verifica. Devuelve la validación de nota a su lugar, ejecuta otra vez 16 y 105, y comprueba que aparece Nota no válida.
  5. Conecta el patrón con tu proyecto. Añade un comentario que nombre un dato de tu proyecto final que también debería tener un rango antes de usarse: porcentaje, cantidad máxima, duración o puntuación.
No conviertas el ejercicio en un formulario completo. El archivo está terminado cuando demuestra, con salidas guardadas, que los datos imposibles se detienen antes de la clasificación.

55:00–60:00 · 5 min de notas

Añade estas líneas al final del archivo y complétalas con lo que observaste:
# Caso inválido que detecté:
# Error de orden que provoqué:
# Corrección que hice:
# Salida que demuestra la corrección:
# Dato de mi proyecto que también necesita un rango:
La salida debe ser literal: copia Nota no válida o Edad no válida desde el terminal. No escribas «funcionó»; conserva la evidencia que permite comprobarlo.

Hecho cuando…

  • Guardaste un archivo ejecutable llamado S3D2_validaciones.py.
  • Pediste una edad y una nota y convertiste ambas entradas con int().
  • Rechazaste edades fuera de 0–120 y notas fuera de 0–100.
  • Colocaste las validaciones antes de las ramas que clasifican registros válidos.
  • Ejecutaste y documentaste las cuatro pruebas del entregable.
  • Comprobaste el borde edad = 120, nota = 100.
  • Provocaste el error de orden con la nota 105, restauraste el código y guardaste la corrección.
  • Anotaste un dato de tu proyecto final que también necesita un rango.
  • Terminaste sin añadir bucles, funciones ni manejo de texto no numérico.
Cierre: conserva S3D1_condicionales.py y S3D2_validaciones.py juntos. El primero clasifica una entrada; el segundo impide que una entrada imposible llegue a esa clasificación.

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

Related content