Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

1
resposta

(17. Python: Praticando o uso de funções) Faça como eu fiz: calculadora com lambda

soma = lambda a, b: a + b
subtracao = lambda a, b: a - b
multiplicacao = lambda a, b: a * b
divisao = lambda a, b: a / b

numero1 = float(input("Digite o primeiro número: "))
numero2 = float(input("Digite o segundo número: "))
operacao = input("Escolha a operação (| + | - | * | / |): ")

if operacao == "+":
    resultado = soma(numero1, numero2)
elif operacao == "-":
    resultado = subtracao(numero1, numero2)
elif operacao == "*":
    resultado = multiplicacao(numero1, numero2)
elif operacao == "/":
    resultado = divisao(numero1, numero2)

print(f"O resultado é: {resultado:g}")
1 resposta

Oi, Eduardo, como vai?

Sua solução atende ao desafio e utiliza corretamente funções lambda para cada operação matemática. A seleção da operação por meio das estruturas condicionais está adequada, e o uso de :g na exibição do resultado é um detalhe interessante para evitar zeros desnecessários em números inteiros.

Como ponto de atenção, seu código não trata dois cenários: quando o usuário informa um operador diferente dos esperados e quando ocorre uma divisão por zero. Nesses casos, a variável resultado pode não ser definida ou uma exceção pode ser gerada.

Por exemplo, se o operador informado for %, o programa não terá uma condição correspondente. Da mesma forma, uma divisão como 10 / 0 resultará em erro durante a execução.

Como você poderia adaptar sua solução para validar a operação escolhida e lidar com divisões por zero de forma segura?

Parabéns pela resolução e por compartilhar seu código. Continue praticando e conte com o fórum sempre que precisar.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!