1
resposta

Calculadora com tratamento de erros

Minha resolução

def numeros():
while True:

    try:
        primeiro_numero = int(input("Digite o primeiro numero: "))

        segundo_numero = int(input("Digite o primeiro segundo numero: "))
        break
    except ValueError:
        print('Apenas numeros')
    
return primeiro_numero, segundo_numero

def operador ():
while True:
try:
operacao = input("Escolha a operação (+, -, /, *): ")

        if operacao not in ["+", "-", "*", "/"]:
            raise ValueError
        break
    except ValueError:
            print("apenas operadores basicos")
    
return operacao

def tipo_operacao(operacao, primeiro_numero, segundo_numero):

if operacao == "+" :
    adicao = primeiro_numero + segundo_numero
    print(f"A Soma  é : {adicao}")
            
elif operacao == "-":
    subtracao = primeiro_numero - segundo_numero
    print(f"A Subtração  é : {subtracao}")
   
elif operacao == "*":
    multi = primeiro_numero * segundo_numero
    print(f"A Multiplicação  é : {multi}")
            
elif operacao == "/": 
    try:
        divisao = primeiro_numero / segundo_numero
        print(f"A Divisão  é : {divisao}")
    except ZeroDivisionError:
        print("zero nao pode ser divisor ") 
           
 

operacao = operador()
primeiro_numero, segundo_numero= numeros()

tipo_operacao(operacao, primeiro_numero, segundo_numero)

1 resposta

Oi, Leonardo! Como vai?

Agradeço por compartilhar.

Sua resolução ficou bem organizada ao separar a lógica em funções como numeros(), operador() e tipo_operacao(), isso ajuda bastante na leitura e manutenção do código. Um ponto de atenção é a indentação, já que em Python ela define os blocos de execução; além disso, chamar numeros() antes de operador() pode deixar o fluxo mais natural para quem usa a calculadora.

Continue praticando, sua estrutura mostra um bom avanço no uso de funções e tratamento de erros.

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