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

Faça como eu fiz: calculadora com lambda

operacoes = {
    '+': lambda a, b: a + b,
    '-': lambda a, b: a - b,
    '*': lambda a, b: a * b,
    '/': lambda a, b: a / b if b != 0 else "Erro: divisão por zero"
}


print("=== Calculadora ===")


num1 = float(input("Digite o primeiro número: "))
num2 = float(input("Digite o segundo número: "))
operador = input("Escolha a operação (+, -, * ou /): ")


if operador in operacoes:
    resultado = operacoes[operador](num1, num2)
    print(f"Resultado: {num1} {operador} {num2} = {resultado}")
else:
    print("Operador inválido! Use apenas +, -, * ou /.")
1 resposta

Oi, Penha, como vai?

Sua solução atende ao desafio e faz um bom uso de funções lambda associadas a um dicionário de operações. Essa abordagem é bastante utilizada porque facilita a manutenção e a expansão do código quando novas operações precisam ser adicionadas.

Outro ponto positivo é o tratamento da divisão por zero e a validação do operador informado pelo usuário. Esses cuidados tornam o programa mais robusto e evitam comportamentos inesperados durante a execução.

Como você adaptaria essa calculadora para incluir operações como potência (**) ou resto da divisão (%) mantendo a mesma estrutura baseada em dicionário?

Parabéns pela resolução da atividade e por compartilhar seu código. O fórum está à disposição para acompanhar sua evolução e apoiar seu aprendizado.

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