1
resposta

Minha resposta

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

def calculadora_dinamica():
    try:
        num1 = float(input('Digite o primeiro número: '))
        num2 = float(input('Digite o segundo número: '))
        operador = input ('Escolha a operação (| + | - | * | / |): ').strip()

        if operador in operacoes:
            funcao_calculo = operacoes[operador]
            resultado = funcao_calculo(num1, num2)
            print(f'\nO resultado é {resultado}')
        else:
            print("Erro: Operador inválido. Por favor, use +, -, * ou /.")
    
    except ValueError:
        print("Erro: Entrada inválida. Por favor, digite apenas números.")
    except ZeroDivisionError:
        print("Erro: Divisão por zero não é permitida.")

calculadora_dinamica()
1 resposta

Olá, Ewelyse, como vai?

O seu código está muito bem estruturado e cumpre perfeitamente a proposta do desafio. A utilização de um dicionário para mapear os operadores às funções lambda é uma solução clara e eficiente. Além disso, gostei de ver que você pensou em tratar possíveis erros, como entradas inválidas e divisões por zero, o que demonstra atenção a detalhes importantes.

Parabéns pela solução, ficou muito boa.

Continue compartilhando seus códigos aqui no fórum, pois esse tipo de prática ajuda bastante tanto você quanto os colegas que acompanham. O espaço está à disposição.

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