1
resposta

[Projeto] Resposta

num1 = int(input("Digite o primeiro número: "))
num2 = int(input("Digite o segundo número: "))
operacao = input("Digite a operação (+, -, *, /): ")

soma = lambda x, y: x + y
subtracao = lambda x, y: x - y
multiplicacao = lambda x, y: x * y
divisao = lambda x, y: x / y

if operacao == "+":
  print(f"O resultado é {soma(num1, num2)}")
elif operacao == "-":
  print(f"O resultado é {subtracao(num1, num2)}")
elif operacao == "*":
  print(f"O resultado é {multiplicacao(num1, num2)}")
elif operacao == "/":
  print(f"O resultado é {divisao(num1, num2)}")
num1 = float(input("Digite o primeiro número: "))
num2 = float(input("Digite o segundo número: "))
operacao = input("Digite a operação (+, -, *, /): ")

calculadora = {
    "+": lambda x, y: x + y,
    "-": lambda x, y: x - y,
    "*": lambda x, y: x * y,
    "/": lambda x, y: x / y
}

if operacao in calculadora:
  resultado = calculadora[operacao](num1, num2)
  print(f"O resultado é {resultado}")
else:
  print("Operação inválida")

Com try/ except:

num1 = float(input("Digite o primeiro número: "))
num2 = float(input("Digite o segundo número: "))
operacao = input("Digite a operação (+, -, *, /): ")

calculadora = {
    "+": lambda x, y: x + y,
    "-": lambda x, y: x - y,
    "*": lambda x, y: x * y,
    "/": lambda x, y: x / y
}

if operacao in calculadora:
  try:
    resultado = calculadora[operacao](num1, num2)
    print(f"O resultado é {resultado}")
  except ZeroDivisionError:
    print("Erro: Divisão por zero não é permitida.")
else:
  print("Operação inválida")
1 resposta

Oii Maria, tudo bem?

Obrigada por compartilhar sua solução aqui no fórum! Deu para ver que você foi além do básico: primeiro implementou cada lambda separada com o if/elif, depois refatorou usando um dicionário de funções (que é uma abordagem bem mais elegante), e ainda adicionou tratamento de erros com try/except para a divisão por zero. Esse encadeamento de raciocínio mostra uma boa evolução na atividade.

Vale notar que, na versão com dicionário, o ZeroDivisionError só ocorre quando a operação é / e num2 é 0. Você já cobriu esse caso corretamente. Se quiser ir um passo além, pode considerar também tratar a entrada de valores inválidos (como o usuário digitar uma letra no lugar do número) com um except ValueError ao redor dos input com float().

Conte com a Alura para evoluir seus estudos. Em caso de dúvidas, fico à disposição.

Bons estudos!

Sucesso

Imagem da comunidade