python
|

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.

Posts Similares

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *