1
resposta

[projeto] calculadora com lambda

# [projeto] calculadora com lambda
num_1 = float(input ('Digite o primeiro número: '))
num_2 = float(input ('Digite o segundo número: '))
operacao = input('Escolha a operação (| + | - | * | / |): ')
soma = lambda a, b: a+b
subtracao = lambda a, b: a-b
multiplicacao = lambda a, b: a*b
divisao = lambda a, b: a/b


if operacao == '+': resultado = soma(num_1, num_2)
if operacao == '-': resultado = subtracao(num_1, num_2)
if operacao == '*': resultado = multiplicacao(num_1, num_2)
if operacao == '/': resultado = divisao(num_1, num_2)

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

Olá, Ricardo, como vai?

Seu código está muito bem estruturado e cumpre perfeitamente o objetivo do desafio. Você conseguiu aplicar o conceito de funções lambda para resolver o problema de forma concisa e eficiente. O uso de if para cada operação é uma abordagem válida e direta para a solução.

Um detalhe que você pode explorar para deixar o código ainda mais legível e escalável é o uso de um dicionário para mapear as operações. Isso pode substituir a sequência de ifs, tornando a lógica mais clara, principalmente se houvesse mais operações para adicionar.

Por exemplo, você poderia criar um dicionário onde a chave é o operador e o valor é a função lambda correspondente.

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

operacoes = {
    '+': lambda a, b: a + b,
    '-': lambda a, b: a - b,
    '*': lambda a, b: a * b,
    '/': lambda a, b: a / b
}

if operacao in operacoes:
    resultado = operacoes[operacao](num_1, num_2)
    print(f'O resultado é: {resultado}')
else:
    print('Operação inválida')

O fórum está à sua disposição. Se tiver dúvidas ou quiser compartilhar seus projetos, sinta-se à vontade para postar.

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