Praticando Try/Except em Python
Durante a execução de um programa em Python, diferentes tipos de erros podem ocorrer, como divisão por zero, entrada de dados inválida ou acesso a posições inexistentes em uma lista. Essas situações geram o que chamamos de exceções integradas (Built-in Exceptions), como ValueError, ZeroDivisionError, IndexError e KeyError.
O uso do bloco try/except permite tratar esses erros de forma controlada, evitando que o programa seja interrompido inesperadamente e garantindo uma melhor experiência para o usuário.
Nesta lista de exercícios, você irá praticar como identificar e tratar exceções comuns do Python utilizando apenas a estrutura try/except.
QUESTÃO 1 – Sistema de cadastro de idade (ValueError)
Uma escola está criando um sistema para registrar a idade dos alunos.
O programa deve solicitar a idade e informar se o aluno pode participar de uma atividade exclusiva para maiores de 18 anos.
Problema:
Alguns usuários estão digitando palavras em vez de números.
Regras:
Converter a idade para
int.Tratar erro caso o valor digitado não seja numérico.
Exibir mensagem clara para o usuário.
Exemplo:
Digite a idade do aluno: vinte
Erro: a idade deve ser informada em números.
Resposta:
def main():
try:
idade = int(input("Digite a idade do aluno: "))
if idade >= 18:
print("Aluno pode participar da atividade.")
else:
print("Aluno não pode participar da atividade.")
except ValueError:
print("Erro: a idade deve ser informada em números.")
if __name__ == "__main__":
main()
QUESTÃO 2 – Sistema de notas da escola (ValueError)
Uma plataforma escolar precisa calcular a média de três notas informadas pelo professor.
Problema:
Às vezes o professor digita letras acidentalmente.
Regras:
Ler três notas como
float.Tratar erro caso alguma nota não seja numérica.
Exibir média com duas casas decimais.
Exemplo:
Digite a nota 1: 8
Digite a nota 2: nove
Erro: todas as notas devem ser números.
Resposta:
def main():
try:
n1 = float(input("Digite a nota 1: "))
n2 = float(input("Digite a nota 2: "))
n3 = float(input("Digite a nota 3: "))
media = (n1 + n2 + n3) / 3
print(f"Média final: {media:.2f}")
except ValueError:
print("Erro: todas as notas devem ser números.")
if __name__ == "__main__":
main()
QUESTÃO 3 – Sistema bancário: saque (ZeroDivisionError)
Um sistema financeiro precisa calcular quanto cada pessoa deve pagar ao dividir uma conta entre amigos.
Problema:
O número de pessoas pode ser informado como zero.
Regras:
Dividir o valor total pelo número de pessoas.
Tratar erro de divisão por zero.
Exemplo:
Valor da conta: 200
Número de pessoas: 0
Erro: não é possível dividir por zero pessoas.
Resposta:
def main():
try:
valor = float(input("Valor da conta: "))
pessoas = int(input("Número de pessoas: "))
print(f"Cada pessoa deve pagar: R${valor / pessoas:.2f}")
except ZeroDivisionError:
print("Erro: não é possível dividir por zero pessoas.")
except ValueError:
print("Erro: digite valores numéricos válidos.")
if __name__ == "__main__":
main()
QUESTÃO 4 – Sistema de estoque (KeyError)
Um mercado possui um sistema que consulta o preço de produtos cadastrados em um dicionário.
Problema:
O usuário pode digitar um produto que não existe no cadastro.
Regras:
Usar um dicionário com 3 produtos.
Tratar erro caso a chave não exista.
Exemplo:
Digite o produto: chocolate
Produto não encontrado no sistema.
Resposta:
def main():
estoque = {
"arroz": 15.0,
"feijao": 10.0,
"macarrao": 8.0
}
try:
produto = input("Digite o produto: ").lower()
print(f"Preço: R${estoque[produto]:.2f}")
except KeyError:
print("Produto não encontrado no sistema.")
if __name__ == "__main__":
main()
QUESTÃO 5 – Consulta de lista de aprovados (IndexError)
Uma empresa tem uma lista com os nomes dos candidatos aprovados em um processo seletivo.
Problema:
O usuário pode tentar acessar uma posição que não existe na lista.
Regras:
Criar lista com 5 nomes.
Solicitar ao usuário o índice.
Tratar erro caso o índice seja inválido.
Exemplo:
Digite a posição do candidato (0 a 4): 7
Erro: posição inexistente na lista.
Resposta:
def main():
aprovados = ["Ana", "Bruno", "Carlos", "Daniela", "Eduardo"]
try:
posicao = int(input("Digite a posição do candidato (0 a 4): "))
print(f"Candidato: {aprovados[posicao]}")
except IndexError:
print("Erro: posição inexistente na lista.")
except ValueError:
print("Erro: digite um número inteiro.")
if __name__ == "__main__":
main()
Caso o Python ainda não esteja instalado em seu dispositivo, clique no botão abaixo para realizar a instalação.







