Вот исправление, и некоторые объяснения следуют.
def computepay(Hours,RatePerHour):
salary = 0
if float(Hours)-40<0:
salary=float(Hours)*float(RatePerHour)
else:
salary=40.0*float(RatePerHour)+(float(Hours)-40.0)*float(RatePerHour) *1.5) #<=== here you multiply with out turning rateperhour as float
return salary
Hours=input("Hours:\n") RatePerHour=input("RatePerHour:\n")
salary = computepay(Hours,RatePerHour)
print("Salary:")
print(salary)
Во-первых, зарплата - это переменная, заключенная внутри вашей функции, она не доступна за ее пределами.
Во-вторых, выполучить ошибку, потому что вы умножаете строку на целое число. Преобразовать его в плавающее раньше.
float(RatePerHour*1.5) #wrong
float(RatePerHour) *1.5 # correct