Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Faça como eu fiz: calculadora com lambda

#Questão 8: Joana está participando de um processo seletivo para uma vaga de desenvolvedora e recebeu um desafio técnico

# Entrada dos números
num1 = float(input("Digite o primeiro número: ").replace(",", "."))
num2 = float(input("Digite o segundo número: ").replace(",", "."))

# Menu de operações
print("Escolha a operação:")
print("1 - Soma")
print("2 - Subtração")
print("3 - Multiplicação")
print("4 - Divisão")

opcao = input("Digite a opção desejada: ")

# Funções lambda
operacoes = {
    "1": lambda a, b: a + b,
    "2": lambda a, b: a - b,
    "3": lambda a, b: a * b,
    "4": lambda a, b: a / b if b != 0 else "Erro: divisão por zero"
}

# Verificar opção e calcular resultado
if opcao in operacoes:
    resultado = operacoes[opcao](num1, num2)
    print(f"O resultado é: {resultado}")
else:
    print("Opção inválida!")
2 respostas

Oi, Estudante. Como vai?

Agradeço por compartilhar.

Gostei de como você usou um dicionário em operacoes para organizar as funções lambda, deixando a calculadora mais limpa e fácil de manter. Também foi uma boa escolha usar .replace(",", "."), pois isso permite que a pessoa digite números decimais com vírgula.

Uma dica interessante para o futuro é usar o método .get() para buscar a operação escolhida e reduzir um pouco o uso de if.


operacao = operacoes.get(opcao)

if operacao:
    resultado = operacao(num1, num2)
    print(f"O resultado e: {resultado}")
else:
    print("Opcao invalida")

Esse código procura a opção dentro do dicionário e executa a função apenas quando ela existe, deixando a validação mais direta. Parabéns pelo desenvolvimento da calculadora com lambda.

Na sua visão, utilizar essa estrutura de dicionário mapeando funções lambda tornou o gerenciamento das regras de cálculo da calculadora mais direto do que se você precisasse criar uma árvore extensa de validações utilizando estruturas condicionais tradicionais para cada operação?

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

Sim, ficou bem mais organizado. Usando o dicionário com lambda evitou vários if e deixou o código mais fácil de ler e manter. Também achei mais prático para adicionar novas operações depois.