Carlos está criando uma calculadora simples, mas quer garantir que o programa não quebre se o usuário digitar valores inválidos, ele precisa tratar os erros.
Crie uma calculadora que permita ao usuário escolher entre soma, subtração, multiplicação e divisão. Além de modularizar o código em funções, use try-except para tratar erros de entrada inválida, que consiste em:
Caso digite um caractere em vez de número | exceção a ser lançada: ValueError;
Caso tente fazer uma divisão por 0 | exceção a ser lançada: ZeroDivisionError.
- Exemplo de entrada:
Digite o primeiro número: 5
Escolha a operação (+, -, *, /): +
Digite o segundo número: 7
- Saída esperada:
Resultado: 12
- Caso selecione nenhuma das operações listadas:
Opção inválida
- Caso digite um caractere em vez de número:
Erro: Entrada inválida. Digite apenas números.
- Caso tente fazer uma divisão por 0:
Erro: Divisão por zero não é permitida.
def somar(primeiro_num, segundo_num):
return primeiro_num + segundo_num
def subtrair(primeiro_num, segundo_num):
return primeiro_num - segundo_num
def multiplicar(primeiro_num, segundo_num):
return primeiro_num * segundo_num
def dividir(primeiro_num, segundo_num):
return primeiro_num / segundo_num
if segundo_num == 0:
raise ZeroDivisionError
def calculadora():
try:
primeiro_num = float(input("Digite um número: "))
operacao = (input("Escolha a operação (+,-,*,/): "))
segundo_num = float(input("Digite o segundo número: "))
if operacao == "+":
resultado = somar(primeiro_num, segundo_num)
elif operacao == "-":
resultado = subtrair(primeiro_num, segundo_num)
elif operacao == "*":
resultado = multiplicar(primeiro_num, segundo_num)
elif operacao == "/":
resultado = dividir(primeiro_num, segundo_num)
else:
print("Opção inválida")
return
print(f"resultado: {resultado}")
except ValueError:
print("Erro: Entrada inválida. Digite apenas números.")
except ZeroDivisionError:
print("Erro: Divisão por zero não é permitida.")
calculadora()
Digite um número: 5
Escolha a operação (+,-,*,/): +
Digite o segundo número: 7
resultado: 12.0
Digite um número: aa
Erro: Entrada inválida. Digite apenas números.
Digite um número: 5
Escolha a operação (+,-,*,/): /
Digite o segundo número: 0
Erro: Divisão por zero não é permitida.