1
resposta

[Projeto] Calculadora

Segue a solução:

def calculador(p, o, s):
    if o == '+':
        return p + s 
    elif o == '-':
        return p - s
    elif 0 == '*': 
        return p * s    
    elif o == '/':
        return p / s

print("Calculador do Carlos")

try:
    valor_1 = float(input("\nInsira o primeiro valor: "))
    operador = input("Insira o operador (+, -, *, /): ")
    valor_2 = float(input("Insira o segundo valor: "))

    if operador not in ['+', '-', '*', '/']:
        print("[ERRO] Opção inválido")
    
    resultado = calculador(valor_1, operador, valor_2)
    print(f"\nResultado: {calculador(valor_1, operador, valor_2)}")

except ValueError:
    print("[ERRO] Insira um valor válido")

except ZeroDivisionError:
    print("[ERRO] Divisão por zero não é permitida")
1 resposta

Oi, Vitor! Como vai?

Com base no que você explicou, chamou atenção o uso do try e except para tratar ValueError e ZeroDivisionError, o que deixa a calculadora mais segura. Um ponto importante de ajuste é no trecho elif 0 == '*', onde o operador deveria ser comparado com a variável correta, garantindo que a multiplicação funcione como esperado.

Uma dica interessante para o futuro é usar um dicionário para mapear operadores a funções, deixando o código mais organizado e fácil de manter. Veja este exemplo:


def calcular(a, b, operador):
    operacoes = {
        '+': a + b,
        '-': a - b,
        '*': a * b,
        '/': a / b
    }
    return operacoes.get(operador)

Nesse código, o dicionário associa cada operador ao cálculo correspondente, evitando vários if e deixando a leitura mais simples.

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