-3
How can I calculate salary value with number of hours above 40 as defined in the if, I try to run with 41 hours but gives 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 this::
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
It’s exactly the same problem your other question: you are trying to multiply things that are not numbers. It is probably the variable
valor_hora
, since you convert to float, but saved invalorhora
, not even using this variable. Pay more attention when writing the code, please.– Woss
Possible duplicate of Try and except block
– Woss