Ошибка типа: ‘<=' не поддерживается между экземплярами 'str' и 'int', хотя я преобразовал str в int

#python-3.x

#python-3.x

Вопрос:

Я новичок в python … кто-нибудь может сказать мне, что не так со следующим кодом? это выдает мне указанную выше ошибку

 inp = input('Enter Hours: ')
inp2 = input ('Enter Rate: ')
if inp <= 0 :
    print ('Please inter a valid number')
if  inp <= 40 :
    Hours = int (inp)
    Rate = int (inp2)
    Pay = inp * inp2
    print ('Pay= ', pay)
elif inp > 40 :
        Hours = int (inp)
        Rate = int (inp2)
        Pay = (inp * 10)   (inp2 - 10) * (1.5)
 

Комментарии:

1. В какой строке возникает ошибка и что означает ошибка?

Ответ №1:

Ваши первые случаи if все еще имеют тип str . Вы также должны преобразовать свои входные данные в an int , прежде чем сравнивать их.

Просто взял код, который вы написали, и переместил str -> int castings его вверх, как раз перед всеми случаями if. Теперь ваш ввод преобразуется в an int , прежде чем он будет использован в случаях if.

Этот код будет работать нормально, если все входные данные будут гарантированно числовыми. В противном случае вам следует добавить перехват ошибок.

 inp = input('Enter Hours: ')
inp2 = input ('Enter Rate: ')
Hours = int (inp)
Rate = int (inp2)
if Hours <= 0 :
    print ('Please inter a valid number')
if Hours <= 40 :
    Pay = Hours * Rate 
    print ('Pay= ', pay)
elif Hours > 40 :
        Hours = int (Hours)
        Rate = int (Rate)
        Pay = (Hours * 10)   (Rate - 10) * (1.5)