Questão
ID 66596Disciplina: Tecnologia da Informação
Assuntos: Conceitos e Propriedades das Linguagens de Programação, Python
Ano: 2025 Banca: PERFIL - ENADE Órgão: Segundo Simulado Pnd
Um professor de programação para o Ensino Médio está ensinando o conceito de tratamento de exceções (exception handling). Seus alunos já sabem como escrever programas que funcionam com entradas válidas, mas seus códigos quebram de forma abrupta quando o usuário digita algo inesperado, como um texto onde um número era esperado. Para ensinar uma programação mais robusta e defensiva, o professor introduz o bloco `try...except` em Python. Ele se baseia em uma recomendação do guia de estilo PEP 8: "O tratamento de exceções é fundamental para a criação de programas robustos. Em vez de tentar prever todas as entradas inválidas possíveis com uma série de `if`s (uma abordagem conhecida como 'Look Before You Leap' - LBYL), é muitas vezes mais limpo e mais 'pythônico' tentar executar a operação e estar preparado para capturar os erros específicos que podem ocorrer (uma abordagem 'Easier to Ask for Forgiveness than Permission' - EAFP). O bloco `try...except` permite isolar o código que pode falhar e fornecer uma rota de recuperação graciosa, em vez de deixar o programa morrer." O professor então apresenta duas versões de um programa que pede ao usuário para digitar sua idade e calcula o ano em que ele nasceu:
Versão 1 (sem tratamento de exceção): `idade = int(input("Digite sua idade: ")) ano_nascimento = 2025 - idade print("Você nasceu em", ano_nascimento)`
Versão 2 (com tratamento de exceção): `try: idade_str = input("Digite sua idade: ") idade = int(idade_str) ano_nascimento = 2025 - idade print("Você nasceu em", ano_nascimento) except ValueError: print("Erro: Você digitou um texto, não um número válido.")`
O que acontecerá em cada versão se o usuário digitar a palavra 'vinte' no prompt?