[ Foro de Python ]

que debo hacer para solucionar este problema?

24-Sep-2015 18:18
Invitado (Sebas)
1 Respuestas

 

 
import string
def descuentoalmuerzo():
    nombre= input("digite el nombre")
    codigo= input("digite el codigo de estudiante")
    dia= input("digite el dia de la semana")
    anho= int(input("digite el anho de ingreso"))
    almuerzo= "2000"
    letra = nombre[0]
  # Criterios para el descuento      
    if ((letra == "l") and (dia == "miercoles") and (anho >= "2013")):
     descuento= almuerzo * 0.2
     valorpagar= almuerzo- descuento
    elif ((dia == "lunes") or (dia == "viernes")):
     descuento= almuerzo * 0.25
     valorpagar= almuerzo - descuento
    elif(dia == "jueves")and (codigo [5] == "0"):
     descuento= almuerzo * 0.50
     valorpagar= almuerzo - descuento
    else:
     descuento= "0"
     valorpagar= "2000"
 
    print ("su nombre es: " , nombre)
    print ("su codigo es: ", codigo)
    print (" el descuento es: " , descuento)
    print (" el valor a pagar es: ", valorpagar)
 
def main():
    descuentoalmuerzo()
 
main()
 


cuando lo ejecuto con la condicion de que la ceroesima letra es l aparece esto:
digite el nombreluis
digite el codigo de estudiante1329750
digite el dia de la semanamiercoles
digite el anho de ingreso2013
Traceback (most recent call last):
 File "C:\Users\Admi7\Downloads\descuento almuerzo2.py", line 31, in <module>
   main()
 File "C:\Users\Admi7\Downloads\descuento almuerzo2.py", line 29, in main
   descuentoalmuerzo()
 File "C:\Users\Admi7\Downloads\descuento almuerzo2.py", line 10, in descuentoalmuerzo
   if ((letra == "l") and (dia == "miercoles") and (anho >= "2013")):
TypeError: unorderable types: int() >= str()


09-Oct-2015 11:05
Nacho Cabanes (+30)

Siento el enorme retraso en contestar, exceso de trabajo.

Volviendo a tu pregunta: el mensaje de error es claro, "unorderable types: int() >= str()", no se puede comparar un string (cadena de texto), porque no es algo "ordenable".

Ese

 
and (anho >= "2013")):
 


Debería ser

 
and (anho >= 2013)):
 







(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)