Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Projeto] Calculadora com tratamento de erros

import sys

operadores = ['+','-','*','/']

def verificar(primeiro_numero,segundo_numero, operador):
    try:
        primeiro_numero = float(primeiro_numero)
        segundo_numero = float(segundo_numero)
        if operador not in operadores:
            raise ValueError('Operador inválido.')
        return primeiro_numero, segundo_numero
    except ValueError as e:
        if str(e) == 'Operador inválido.':
            print(f'Erro: {e}')
        else:
            print('Erro: Entrada inválida. Digite apenas números.')
        sys.exit()
        
def soma(primeiro_numero,segundo_numero):
    return primeiro_numero + segundo_numero

def subtracao(primeiro_numero,segundo_numero):
    return primeiro_numero - segundo_numero

def multiplicacao(primeiro_numero,segundo_numero):
    return primeiro_numero * segundo_numero

def divisao(primeiro_numero,segundo_numero):
        return primeiro_numero / segundo_numero


primeiro_numero = input('Digite o primeiro número: ')
operador = input('Escolha a operação (+, -, *, /): ') 
segundo_numero = input('Digite o segundo número: ')

primeiro_numero, segundo_numero = verificar(primeiro_numero,segundo_numero,operador)

try:
    if operador == '+':
        resultado = soma(primeiro_numero,segundo_numero)
    elif operador == '-':
        resultado = subtracao(primeiro_numero,segundo_numero)
    elif operador == '*':
        resultado = multiplicacao(primeiro_numero,segundo_numero)
    else:
        resultado = divisao(primeiro_numero,segundo_numero)
    print(f'O resultado da operação é {resultado}')
except:
    print('1º Mandamento: Não dividirás por zero')
1 resposta
solução!

Olá, Lucas! Como vai?

Parabéns pela resolução da atividade!

Observei que você explorou o try/except para tratamento de erros com Python, utilizou muito bem o raise para validar operadores e ainda compreendeu a importância do sys.exit para encerrar o programa em situações críticas.

Continue postando as suas soluções, com certeza isso ajudará outros estudantes e tem grande relevância para o fórum.

Uma dica interessante para o futuro é aplicar o ZeroDivisionError de forma mais específica. Assim:

try:
    resultado = primeiro_numero / segundo_numero
    print(f'O resultado da operação é {resultado}')
except ZeroDivisionError:
    print('Erro: Não é possível dividir por zero.')

Isso faz com que o programa trate apenas o erro de divisão por zero sem interromper outras execuções.

Alguns materiais podem estar em inglês, mas é possível compreendê-los usando o recurso de tradução de páginas do próprio navegador.

Fico à disposição! E se precisar, conte sempre com o apoio do fórum.

Abraço e bons estudos!

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