1
resposta

Lógica incorreta

O professor fez um teste ára checar se o salário era maior que 1000, se sim, retornava uma exception, se nao, retornava um valor de bonus salarial.

Ele utilizou o seguinte código

def calcular_bonus(self):
    valor = self._salario * 0.1
    if valor > 1000:
        valor = 0
    return valor

Durante a aula, a exception funcionou pois o salário que ele testou foi de 100000000. e 100000000 * 0.1 = 10 000 000 Mas se for se o salário for 10.000 o teste vai passar da mesma forma, pois 10.000 0.01 = 1000

A lógica correta deveria ser:

def calcular_bonus(self):
    valor = self._salario * 0.1
    if self._salario > 1000:
        valor = 0
    return valor
1 resposta

Olá Filipe! Tudo certo? Espero que sim. 🙂

A lógica utilizada para essa atividade está centrada no valor equivalente a 10% do salário do funcionário. Sendo assim, o raciocínio seria: Se 10% do salário do funcionário já é maior do que 1000, então o valor de bônus será de 0, caso contrário, o funcionário receberá um bônus equivalente a esses 10% do seu salário.

Dessa forma, o trecho de código abaixo acaba sendo correto:

def calcular_bonus(self):
    valor = self._salario * 0.1
    if valor > 1000:
        valor = 0
    return valor

Espero ter ajudado! Quaisquer dúvidas, estou à disposição. 😉

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.Bons Estudos!