Ejercicio 05 — Convierte una nota numerica (0-10) a letra A/B/C/D/F
Dificultad: amarillo · Módulo 02 (Condicionales)
Enunciado
Convierte una nota numerica (0-10) a letra A/B/C/D/F; fuera de rango avisa
Cómo se resuelve
Traducir una nota numérica a letra combina dos ideas: validar primero que el dato es correcto y luego ordenar los tramos de mayor a menor para no repetir comprobaciones.
nota = int(input("Nota (0-10): "))— leemos la nota como entero.if nota < 0 or nota > 10:— antes de clasificar, comprobamos que está en rango.ores verdadero si al menos uno de los lados lo es, así que esta condición detecta tanto las notas por debajo de 0 como las por encima de 10. Si algo falla, avisamos y no seguimos.- Dentro del
else(nota válida), la cadenaif nota >= 9 ... elif nota >= 7 ...va de mayor a menor. La clave es el orden: al llegar aelif nota >= 7ya sabemos que la nota es menor que 9, así que basta con el límite inferior de cada tramo; no hace falta escribir7 <= nota < 9. else: letra = "F"— todo lo que no alcanzó el 3 cae aquí. Guardamos la letra y la imprimimos una vez.
Trampa habitual: desordenar los tramos o usar > en lugar de >=. Si pusieras primero nota >= 5, un 9 se clasificaría como “C” porque esa condición se cumple antes. Con elif gana siempre el primero que encaja, de ahí que haya que empezar por el tramo más alto.
Para practicar — cópialo y complétalo
Pega este esqueleto y completa los TODO. Es la mejor forma de aprender: inténtalo antes de mirar la solución.
# Curso de Python — Modulo 02: Condicionales
# Ejercicio 05 — PRACTICA (rellena los TODO)
# Enunciado: Convierte una nota numerica (0-10) a letra A/B/C/D/F; fuera de rango avisa
# Dificultad: amarillo
# Ejecutar: python3 ej05_practica.py
# TODO: lee la nota como entero
nota = None
# TODO: valida primero que este en el rango 0-10
# Si no lo esta, imprime un mensaje de error y no sigas
# TODO: si la nota es valida, clasifica con elif encadenado:
# >= 9 → "A", >= 7 → "B", >= 5 → "C", >= 3 → "D", resto → "F"
# Pista: ordena de mayor a menor para no necesitar condiciones dobles
# TODO: imprime "Letra: <letra>"Solución — cópiala y ejecútala
# Curso de Python — Modulo 02: Condicionales
# Ejercicio 05 — MODELO (resuelto)
# Enunciado: Convierte una nota numerica (0-10) a letra A/B/C/D/F; fuera de rango avisa
# Dificultad: amarillo
# Ejecutar: python3 ej05_modelo.py
nota = int(input("Nota (0-10): "))
if nota < 0 or nota > 10:
print("Error: nota fuera de rango (debe ser 0-10)")
else:
# Ordenar de mayor a menor evita condiciones dobles
if nota >= 9:
letra = "A"
elif nota >= 7:
letra = "B"
elif nota >= 5:
letra = "C"
elif nota >= 3:
letra = "D"
else:
letra = "F"
print(f"Letra: {letra}")Cómo usarlo
Pega el código en un fichero y ejecútalo con tu toolchain habitual (o el botón de Ejecutar de tu editor). Antes de mirar la solución, intenta completar tú el esqueleto: es la mejor forma de aprender.