Saludos,
- Esa forma de "reducir" los AND en Python es un embrollo
- Por lo que veo en tu ejercicio, estás utilizando el estándar de calificación escolar de Belice:
https://es.wikipedia.org/wiki/Calificaci%C3%B3n_escolar#Belice, el cual califica de 0 a 10.
- La solución para tu ejercicio, utilizando la notación normal:
a = float(input('Introduzca una nota del 0 al 10: '))
if a > 0 and a < 5 :
print('Suspendido')
elif a >= 5 and a < 8 :
print('Aprobado')
elif a >= 8 and a < 9.5 :
print('Notable')
elif a >= 9.5 and a <= 10 :
print('Sobresaliente')
else :
print('La nota introducida no es válida')
- Para utilizar esa notación recortada hay que saber leer bien los signos de mayor y menor con respecto a la base, en tu caso la base es
a.
-- Por ejemplo:
0 < a < 5 se debe de leer:
a tiene que ser mayor que
0 y su vez
a tiene que ser menor que
5, es decir, no lees los signos como tal, es incorrecto pensar que
< significa menor que, y
> significa mayor que, sino, se tiene que leer en base a
a.
--- Siendo sencillos, el signo
> o
< tiene un lado agudo y otro abierto, el lado agudo apuntará al menor y el lado abierto apuntará al mayor.
- Corregido y funcional
a = float(input('Introduzca una nota del 0 al 10: '))
if 0 < a < 5 :
print('Suspendido')
elif 5 <= a < 8 :
print('Aprobado')
elif 8 <= a < 9.5 :
print('Notable')
elif 9.5 <= a <= 10 :
print('Sobresaliente')
else :
print('La nota introducida no es válida')