Error in def function

-3

How can I calculate salary value with number of hours above 40 as defined in if, I try to run with 41 hours but give me this error

salario = float(40*valor_hora+(h_excd*(1.5*valor_hora)))#valor salario com horas extras

TypeError: can't multiply sequence by non-int of type 'float'

My code is as follows:

def calcular_pagamento(qtd_horas, valor_hora): # função calcular o pagamento de salário
    horas = float(qtd_horas) #converte string para float e é a variável de horas que pode ser float
    valorhora = float(valor_hora) #converte string para float e é a variavel do valor hora que pode ser float
    if horas <= 40:
        salario=horas*valorhora#valor salario sem horas extras
    else:
        h_excd = float(horas - 40) #calculo horas extras
        salario = float(40*valor_hora+(h_excd*(1.5*valor_hora))) #valor salario com horas extras
    return salario # retorna o valor de salário

n_horas= input('Digite numero de horas: ') # string numero de horas
n_valor_hora=input('Digite valor hora: ') #string valor hora
total_salario = calcular_pagamento(n_horas,n_valor_hora) # vai buscar o valor de retorno da função 
print('O valor do salário é:',total_salario,"€") # dá o valor de salário
    
asked by anonymous 20.06.2018 / 13:09

1 answer

2

You should change the line:

salario = float(40*valor_hora+(h_excd*(1.5*valor_hora)))

To:

salario = float(40*valorhora+(h_excd*(1.5*valorhora)))

You have converted the variable valor_hora(string) to float and called valorhora just forgot to use

    
20.06.2018 / 14:50