1
resposta

Minha Resposta:

n1 = int(input("Digite o primeiro numero: "))
n2 = int(input("Digite o segundo numero: "))

op = input("Escolha a operação (| + | - | * | / |): ")


match op:
    case '+':
        operacao = lambda a, b: a + b
    case '-':
        operacao = lambda a, b: a - b

    case '*':
        operacao = lambda a, b: a * b

    case '/':
        operacao = lambda a, b: a / b if b != 0 else "Erro divisão por zero"

    case _: 
        operacao = lambda a, b: "Operação inválida"


print(operacao(n1, n2))
    
1 resposta

Olá, Luiz, como vai?

O seu código soluciona o desafio de forma eficiente ao utilizar a estrutura de controle match-case para definir a lógica da função lambda de acordo com a entrada do usuário. A implementação da verificação para evitar a divisão por zero dentro da própria expressão lambda é uma excelente prática para garantir a robustez do programa.

Uma dica interessante para expandir o uso de lambdas é armazená-las em um dicionário, o que permite acessar a operação diretamente pela chave sem a necessidade de múltiplos casos de verificação. Por exemplo, você pode criar um dicionário onde as chaves são os símbolos das operações e os valores são as respectivas funções lambda, como operacoes = {'+': lambda a, b: a + b}. Ao receber a entrada do usuário, basta chamar a chave correspondente no dicionário para executar o cálculo.

Parabéns pelo desenvolvimento do exercício e por compartilhar sua resolução conosco, continue mantendo esse ritmo de estudos.

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