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

[Projeto] Faça como eu fiz: calculadora com lambda

numero1 = float(input('Digite o primeiro número: '))
numero2 = 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:
    if operacao == '/' and numero2 == 0:
        print ('Erro: Divisão por zero.')
    else:
        resultado = operacoes[operacao](numero1,numero2)
        print(f'O resultado é: {resultado}.')
else:
    print('Operação inválida.')

Confesso que o uso do lambda me fez coçar muito a cabeça. Ainda acho a estrutura do def mais claro e mais fácil de ler o código.

1 resposta
solução!

Oi, Evandro. Tudo certo?

O código que você compartilhou para a calculadora usando funções lambda está correto e demonstra bem como é possível simplificar operações simples com essa abordagem. Embora o uso de funções definidas com def seja mais tradicional e muitas vezes mais legível, as lambdas são úteis para criar funções pequenas e rápidas, especialmente quando elas serão usadas em estruturas como dicionários, evitando a definição explícita de várias funções nomeadas.

Uma dica para tornar o código ainda mais robusto seria adicionar um tratamento para entradas inválidas, garantindo que o usuário não insira valores que possam causar erros ao converter para float ou escolher uma operação inexistente.

No seu caso, se quiser explorar mais, pode tentar expandir as operações implementando, por exemplo, o operador de módulo (%) ou potenciação (**), usando lambdas semelhantes. Além disso, refletir sobre quando usar funções nomeadas ou lambdas pode ajudar a escolher a melhor abordagem para legibilidade e manutenção do código, dependendo da complexidade do problema.

Como você visualiza o equilíbrio entre clareza e concisão na escrita de funções em Python, especialmente em contextos maiores do que operações simples?

Parabéns pelo seu empenho, e o fórum está à disposição para continuar auxiliando você no aprendizado.

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