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

[Projeto] calculadora simples com lambda

#inputs: recebe os 2 valores de entrada e a operação que será realizada.
num1 = float(input("Digite o primeiro número: "))  
num2 = float(input("Digite o segundo número: "))  
operacao = input("Escolha a operação (| + | - | * | / |): ")

#processamento: execução das operações matematicas.
soma = lambda num1, num2 : num1 + num2
subtracao = lambda num1, num2 : num1 - num2
multiplicacao = lambda num1, num2 : num1 * num2
divisao = lambda num1, num2 : num1 / num2 if num2 != 0 else "não é possível dividir por 0!"

#outputs: printa o resultado d processamento.
if operacao == "+":
    print(f"o resultado é: {soma(num1, num2)} ")
elif operacao == "-":
    print(f"o resultado é: {subtracao(num1, num2)} ")
elif operacao == "*":
    print(f"o resultado é: {multiplicacao(num1, num2)} ")
elif operacao == "/":
    print(f"o resultado é: {divisao(num1, num2)} ")
else:
    print("operação invalida!")
1 resposta

Olá, estudante. Tudo certo?

Seu código para a calculadora com funções lambda está muito bem implementado e aborda corretamente a lógica das operações matemáticas. Gostei especialmente da verificação na divisão para evitar o erro de divisão por zero, retornando uma mensagem adequada.

Uma dica que pode tornar seu código ainda mais flexível é utilizar um dicionário para mapear as operações às suas respectivas funções lambda. Por exemplo, você poderia criar algo como: operacoes = {"+": soma, "-": subtracao, "*": multiplicacao, "/": divisao} e depois executar a operação a partir da chave digitada. Isso ajuda a tornar o código mais limpo e facilita a manutenção, além de permitir a inclusão de outras operações no futuro.

No contexto do seu projeto, essa abordagem pode simplificar o tratamento das operações e ainda evitar múltiplos blocos condicionais. Pense em como essa estrutura pode se aplicar a outros cenários onde há mapeamento entre entradas e funções.

Você já considerou como validar a entrada do usuário para garantir que ele insira uma operação válida de forma mais robusta?

Parabéns pelo empenho, o fórum continua à disposição para te ajudar em qualquer dúvida.

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