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

Resolução

soma = lambda a, b: a+b
subtracao = lambda a, b: a-b
multiplicacao = lambda a, b: a*b
divisao = lambda a, b: a/b

a = int(input("Digite o primeiro número: "))
b = int(input("Digite o segundo número: "))
tipo = input("Escolha a operação (| + | - | * | / |): ")

if tipo == "+":
    print("O resultado é: ", soma(a, b))
elif tipo == "-":
    print("O resultado é: ", subtracao(a, b))
elif tipo == "*":
    print("O resultado é: ", multiplicacao(a, b))
elif tipo == "/":
    print("O resultado é: ", divisao(a, b))
else:
    print("Operação inválida")
1 resposta

Oi, Maria, como vai?

Sua solução atende corretamente ao que foi proposto na atividade. As funções lambda foram utilizadas de forma adequada para cada operação matemática, e a estrutura condicional direciona corretamente a execução conforme o operador informado pelo usuário.

Como dica de aprimoramento, você poderia considerar o uso de float() em vez de int(), permitindo que a calculadora trabalhe também com números decimais. Por exemplo, entradas como 10.5 e 2.5 passariam a ser aceitas sem alterações na lógica do programa.

Outra possibilidade seria tratar a divisão por zero para evitar que o programa seja interrompido caso o usuário informe 0 como segundo número na operação de divisão.

Como você adaptaria sua solução para utilizar um dicionário associando cada operador à sua respectiva função lambda?

Parabéns pela resolução e por compartilhar seu código no fórum. Continue praticando e trazendo suas dúvidas e soluções. O fórum permanece à disposição para ajudar no seu aprendizado.

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