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.

  1. nota = int(input("Nota (0-10): ")) — leemos la nota como entero.
  2. if nota < 0 or nota > 10: — antes de clasificar, comprobamos que está en rango. or es 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.
  3. Dentro del else (nota válida), la cadena if nota >= 9 ... elif nota >= 7 ... va de mayor a menor. La clave es el orden: al llegar a elif nota >= 7 ya sabemos que la nota es menor que 9, así que basta con el límite inferior de cada tramo; no hace falta escribir 7 <= nota < 9.
  4. 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.

Conexiones