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

calculadora com lambda

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

calculadora = {
    "+": 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 ao dividir por zero"
}

resultado = calculadora[operacao](numero_1, numero_2)
print(resultado)
1 resposta

Oi, Cassiano. Tudo bem com você?

Gostei da sua solução para a calculadora utilizando funções lambda. A ideia de armazenar as operações em um dicionário torna o código mais enxuto e facilita a manutenção, já que novas operações podem ser adicionadas sem a necessidade de criar vários blocos condicionais. Além disso, o tratamento da divisão por zero diretamente na expressão lambda demonstra uma preocupação importante com possíveis situações de erro durante a execução.

Como dica de evolução, você poderia considerar um tratamento para operações inválidas. Atualmente, se o usuário digitar um símbolo diferente dos que estão no dicionário, ocorrerá um erro de chave. Uma alternativa seria verificar se a operação existe antes de executá-la.

Pensando em escalabilidade, como você adaptaria essa calculadora para incluir operações como potência, raiz quadrada ou porcentagem mantendo a mesma abordagem baseada em dicionários?

Parabéns pela solução e obrigado por compartilhar sua implementação no fórum. Continue explorando diferentes formas de resolver os exercícios, pois isso amplia bastante seu repertório em Python. O fórum permanece à disposição para suas próximas dúvidas e contribuições.

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