Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

# Calculadora com tratamento de erros

soma = lambda x, y: x + y
subtracao = lambda x, y: x - y
multiplicacao = lambda x, y: x * y
divisao = lambda x, y: x / y 

def calcular(operacao, num1, num2):
        if operacao == 'soma':
            return soma(num1, num2)
        elif operacao == 'subtracao':
            return subtracao(num1, num2)
        elif operacao == 'multiplicacao':
            return multiplicacao(num1, num2)
        elif operacao == 'divisao':
            return divisao(num1, num2)

try:
    operacao = str(input("Escolha a operação (soma, subtracao, multiplicacao, divisao): ")).strip().lower()
    primeiro_numero = int(input("Digite o primeiro número: "))
    segundo_numero = int(input("Digite o segundo número: "))
    resultado = calcular(operacao, primeiro_numero, segundo_numero)
    print(f"O resultado da {operacao} é: {resultado}")
except ValueError:
    print("Erro: Por favor, insira apenas números válidos.")
except ZeroDivisionError:
    print("Erro: Divisão por zero não é permitida.")

Garanta sua matrícula hoje e ganhe + 2 meses grátis

Continue sua jornada tech com ainda mais tempo para aprender e evoluir

Quero aproveitar agora
2 respostas
solução!

Oi, Samuel!

Você estruturou muito bem a função calcular com o uso de lambda, o que deixa o código mais limpo e direto. O tratamento de erros com try/except está funcionando bem, garantindo que o programa continue mesmo diante de entradas incorretas.

Uma dica interessante para o futuro é usar o método isdigit() para verificar se o valor digitado é um número antes de converter, evitando o erro de conversão.


numero = input('Digite um numero: ')
if numero.isdigit():
    print('Numero valido!')
else:
    print('Entrada invalida.')

Esse código verifica se a entrada contém apenas dígitos antes de tentar convertê-la.

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

Muito obrigado pelo retorno!