
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 = 85→Registro válido: objetivo cumplido.edad = 150,nota = 85→Edad no válida.edad = 16,nota = 105→Nota no válida.edad = 16,nota = 65→Registro 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. 12Hoy 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
- Learn Python - Full Course for Beginners [Tutorial] — mira desde
1:54:07, capítuloIf Statements & Comparisons, hasta2:07:17. Ese tramo incluye tambiénBuilding a better Calculator, que empieza en2:00:37. La ficha del video indica que puedes seleccionar una pista doblada al español desde el menú de audio. 5 - 6.10. Comparaciones — Documentación de Python 3.14.6 — consulta la lista de operadores y confirma qué devuelven
<,>,>=,<=,==y!=. - 6.11. Operaciones booleanas — Documentación de Python 3.14.6 — lee los párrafos sobre
and,orynot; hoy usarásorpara detectar cualquiera de los dos extremos inválidos.
Sesión de 60 minutos
00:00–10:00 · 10 min de repaso
- Abre
S3D1_condicionales.pyy localiza la primera condición verdadera que detiene su cadenaif/elif/else. - Sin ejecutar nada, responde en tus notas: ¿qué resultado daría una condición
nota >= 70connota = 105? - 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?».
- Predice cuál de las cuatro pruebas del entregable llegaría a la condición
nota >= 70y 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:
- Ejecuta las cuatro pruebas. Completa cada comentario con el texto que apareció en el terminal.
- Comprueba un borde. Ejecuta
edad = 120,nota = 100. Debe seguir siendo un registro válido porque las condiciones de error usan< 0y> 120o> 100, no>=. - Provoca un error de orden. Mueve temporalmente la rama
elif nota >= 70por encima de la validación de nota. Ejecutaedad = 16,nota = 105y anota el resultado incorrecto. - Restaura y verifica. Devuelve la validación de nota a su lugar, ejecuta otra vez
16y105, y comprueba que apareceNota no válida. - 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–120y notas fuera de0–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.References
- 16.10. Comparaciones — Documentación de Python 3.14.6
docs.python.org
- 26.11. Operaciones booleanas — Documentación de Python 3.14.6
docs.python.org
- 3input() — Funciones incorporadas, Python 3.14.6
docs.python.org
- 4int() — Funciones incorporadas, Python 3.14.6
docs.python.org
- 5
This story was produced automatically by a channel. One sentence is all it takes for Neodrop to keep producing for you.
