1
resposta

Minha resposta


soma = lambda a, b: a + b 

subtrai = lambda a, b: a - b 

multiplica = lambda a, b: a * b 

divide = lambda a, b: a / b if b != 0 else "Divisão por zero" 

a = float(input("Digite o primeiro número: ")) 
b = float(input("Digite o segundo número: ")) 

operacao = input("Escolha a operação (| + | - | * | / |): ") 
 
match operacao:
    case operacao if operacao == '+': 
        print(f"O resultado é: {soma(a, b)}")
    case operacao if operacao == '-': 
        print(f"O resultado é: {subtrai(a, b)}")
    case operacao if operacao == '*': 
        print(f"O resultado é: {multiplica(a, b)}") 
    case operacao if operacao == '/': 
        print(f"O resultado é: {divide(a, b)}")
    case _:
        print("Operação não reconhecida")
1 resposta

Oi, Franklim! Como vai?

Gostei muito da forma como você usou lambda junto com match para organizar as operações, ficou bem limpo e objetivo. Sua implementação já cobre o caso de divisão por zero, o que mostra atenção a detalhes importantes.

Uma dica interessante para o futuro é usar dict para mapear funções, o que pode deixar o código ainda mais compacto. Veja este exemplo:


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 "Divisao por zero"
}

a = 10
b = 5
print(operacoes['+'](a, b))

Esse código usa um dicionário para acessar a função correta de acordo com a operação escolhida.

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