1
resposta

Minha solução pra calculadora com tratamento de erros do Carlos

def calculadora_simples():
    try:
        primeiro_numero = float(input("Digite o primeiro número: "))
        operacao = input("Escolha a operação (+, -, *, /): ")
        segundo_numero = float(input("Digite o segundo número: "))
        match operacao:
            case "+":
                return primeiro_numero + segundo_numero
            case "-":
                return primeiro_numero - segundo_numero
            case "*":
                return primeiro_numero * segundo_numero
            case "/":
                if segundo_numero == 0:
                    raise ZeroDivisionError
                return primeiro_numero / segundo_numero
            case _:
                return "Opção inválida"
    except ValueError:
        return "Erro: Entrada inválida. Digite apenas números."
    except ZeroDivisionError:
        return "Erro: Divisão por zero não é permitida."

print(calculadora_simples())
1 resposta

Olá, Gabriel, como vai?

Seu código atende aos requisitos do exercício e demonstra um bom uso da estrutura match-case para organizar as operações. É positivo observar que você utilizou o raise para disparar a exceção de divisão por zero manualmente, garantindo que o fluxo caia exatamente no bloco except correspondente e mantenha a padronização das mensagens de erro solicitadas. Parabéns por concluir a atividade e por compartilhar sua lógica com a comunidade.

Continue praticando seus estudos e compartilhando suas soluções. O fórum está à disposição para qualquer dúvida que surgir.

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