1
resposta

[Projeto] resolução - calculadora

def calculadora():
    try:
        num1 = float(input('Digite o primeiro número: '))
        operador = input('Digite o operador (+, -, *, /): ')
        num2 = float(input('Digite o segundo número: '))

        if operador == '+':
            resultado = num1 + num2
        elif operador == '-':
            resultado = num1 - num2
        elif operador == '*':
            resultado = num1 * num2
        elif operador == '/':
            if num2 == 0:
                raise ZeroDivisionError('Erro: Divisão por zero não é permitida.')
            resultado = num1 / num2
        else:
            raise ValueError('Erro: Operador inválido. Use +, -, * ou /.')
        
        print(f'O resultado de {num1} {operador} {num2} é: {resultado}')
    except ValueError as e:
        print(f'Entrada inválida: {e}')
    except ZeroDivisionError as e:
        print(e)

calculadora()
1 resposta

Olá, Thaís, como vai?

Seu código atende plenamente aos requisitos do exercício e demonstra um bom entendimento sobre o controle de fluxo com tratamentos de exceções. Você utilizou corretamente o bloco try-except para capturar falhas de conversão de tipos e divisões impossíveis, garantindo que o programa não seja interrompido abruptamente por erros de execução.

O uso do raise para personalizar as mensagens de erro dentro da lógica condicional foi uma excelente escolha técnica, pois centraliza a exibição das mensagens no bloco except.

Agradeço por compartilhar sua resolução com a comunidade e incentivo que continue praticando e postando seus avanços.

Qualquer dúvida que surgir durante seus estudos, lembre-se que o fórum está à disposição para ajudar.

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