1
resposta

[RESPOSTA]

calculadora_tratamento_erros.py

import operator

def calculadora(numero1, numero2, operador):
    operacao = {
        "+": operator.add,
        "-": operator.sub,
        "*": operator.mul,
        "/": operator.truediv
    }

    if operador not in operacao:
        return "Opção inválida"

    try:
        return f"Resultado: {operacao[operador](int(numero1), int(numero2))}"
    except ValueError:
        return "Erro: Entrada inválida. Digite apenas números."
    except ZeroDivisionError:
        return "Erro: Divisão por zero não é permitida."

main.py

from calculadora_tratamento_erros import calculadora

numero1 = input("Digite o primeiro número: ")
operador = input("Escolha a operação (+, -, *, /): ")
numero2 = input("Digite o segundo número: ")

print(calculadora(numero1, numero2, operador))

Garanta sua matrícula hoje e ganhe + 2 meses grátis

Continue sua jornada tech com ainda mais tempo para aprender e evoluir

Quero aproveitar agora
1 resposta

Oi, Mauricio! Como vai?

Gostei bastante da forma como você estruturou o tratamento de erros, principalmente separando a lógica em um módulo e o uso de try/except. Isso mostra organização e clareza no seu projeto.

Uma dica interessante para o futuro é usar o método isdigit() para validar se a entrada é realmente um número antes de converter. Veja este exemplo:


valor = input("Digite um numero: ")
if valor.isdigit():
    print(int(valor) * 2)
else:
    print("Entrada invalida")

Esse código checa se o valor digitado contém apenas dígitos, evitando erros na conversão.

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