Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: 15-19 en 28 Septiembre 2018, 18:01 pm



Título: Ayuda con codigo basico python
Publicado por: 15-19 en 28 Septiembre 2018, 18:01 pm
El codigo es este


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')



Me da error en el print de la linea 4 ayuda
Código
  1.  


Título: Re: Ayuda con codigo basico python
Publicado por: tincopasan en 28 Septiembre 2018, 19:16 pm
pues tienes muchos errores:
Código
  1. a=float(input('Introduzca una nota del 0 al 10: ')      #falta cerrar u parentesis
  2.  
  3. if 0<=a>5                             #sobra la comparación con 0, está mal la lógica a debe ser < 5, además faltan los dos puntos finales
  4.    print('Suspendido')
  5. elif 5<=a>8                          #faltan los dos puntos en todas las sentencias elif                                        
  6.    print('Aprobado')
  7. elif 8<=a>9.5                       #mal la lógica    
  8.    print('Notable')
  9. elif 9.5<=a>=10                    #mal la lógica    
  10.    print('Sobresaliente')
  11. else :
  12.    print('La nota introducida no es válida')
  13.  

corregido para que funcione, fijate las correcciones:

Código
  1. a=float(input('Introduzca una nota del 0 al 10: '))      
  2.  
  3. if a <= 5:                          
  4.    print('Suspendido')
  5. elif 5 < a <= 8:                                                                  
  6.    print('Aprobado')
  7. elif 8 <  a <= 9.5:                          
  8.    print('Notable')
  9. elif 9.5 < a <=10:
  10.    print('Sobresaliente')
  11. else :
  12.    print('La nota introducida no es válida')
  13.  
  14.  

Saludos


Título: Re: Ayuda con codigo basico python
Publicado por: EdePC en 28 Septiembre 2018, 20:42 pm
Saludos,

- Esa forma de "reducir" los AND en Python es un embrollo  :xD

- 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:

Código
  1. a = float(input('Introduzca una nota del 0 al 10: '))
  2.  
  3. if a > 0 and a < 5 :
  4.    print('Suspendido')
  5. elif a >= 5 and a < 8 :
  6.    print('Aprobado')
  7. elif a >= 8 and a < 9.5 :
  8.    print('Notable')
  9. elif a >= 9.5 and a <= 10 :
  10.    print('Sobresaliente')
  11. else :
  12.    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

Código
  1. a = float(input('Introduzca una nota del 0 al 10: '))
  2.  
  3. if 0 < a < 5 :
  4.    print('Suspendido')
  5. elif 5 <= a < 8 :
  6.    print('Aprobado')
  7. elif 8 <= a < 9.5 :
  8.    print('Notable')
  9. elif 9.5 <= a <= 10 :
  10.    print('Sobresaliente')
  11. else :
  12.    print('La nota introducida no es válida')


Título: Re: Ayuda con codigo basico python
Publicado por: 15-19 en 28 Septiembre 2018, 21:55 pm
Muchas Gracias a los dos, me habeis ayudado mucho de verdad ;-) :rolleyes:


Título: Re: Ayuda con codigo basico python
Publicado por: tincopasan en 29 Septiembre 2018, 00:20 am
de EdePC:
Citar
- Esa forma de "reducir" los AND en Python es un embrollo

pues estás bastante errado, eso es python