Solucionado (ver solução)

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!

Solucionado
(ver solução)
1
resposta

Faça como eu fiz: calculadora com lambda

first_number = float(input("Digite o primeiro número: "))
second_number = float(input("Digite o segundo número: "))
operation = input("Escolha a operação ( + or - or * or / ): ")

operations = {
    '+': lambda x, y: x + y,
    '-': lambda x, y: x - y,
    '*': lambda x, y: x * y,
    '/': lambda x, y: x / y if y != 0 else "Erro: Divisão por zero"
}

if operation in operations:
    result = operations[operation](first_number, second_number)
    print(f"O resultado é: {result}")
    exit()

print("Operação inválida. Por favor, escolha uma operação válida.")
1 resposta
solução!

Oii Julia, tudo bem?

Obrigada por compartilhar sua solução aqui no fórum! Bacana ver a escolha de guardar as operações em um dicionário com lambdas, isso deixa o código bem organizado e fácil de escalar caso queira adicionar novas operações no futuro.

Um detalhe que vale destacar: você já tratou a divisão por zero diretamente na lambda, o que é uma boa prática. Vale notar que, nesse caso, o retorno pode ser tanto um float quanto uma string, dependendo do valor de y. Uma alternativa para manter o tipo consistente seria lançar uma exceção ou fazer a verificação fora da lambda, antes de chamar a operação.

Conte com a Alura para evoluir seus estudos. Em caso de dúvidas, fico à disposição.

Bons estudos!

Sucesso

Imagem da comunidade