DESAFIO 34
Crie um programa em Python que leia a idade de uma pessoa e informe a sua classe eleitoral:
- não eleitor (abaixo de 16 anos);
- eleitor obrigatório (entre a faixa de 18 e menor de 65 anos);
Passo 1
O enunciado pede que a gente crie um programa em Python que leia a idade de uma pessoa e informe a sua classe eleitoral. As informações dadas no enunciado são:
- “não eleitor” para idades abaixo de
; - “eleitor obrigatório” para idades entre
e menor de anos.
O que devemos entregar: um programa que leia a idade e informe a classe eleitoral correspondente. Note que o enunciado cita explicitamente apenas essas duas classes; para tornar o programa completo e útil num contexto real, vamos também tratar as idades que não caem nessas faixas (por exemplo
,
e idades maiores ou iguais a
), indicando uma classificação lógica para elas (veremos em passos seguintes).
Passo 2
Planejamento da solução (passos lógicos que o programa fará):
- Ler a idade fornecida pelo usuário (entrada do teclado).
- Validar que a entrada é um número inteiro não-negativo (ida das negativas não fazem sentido).
- Comparar a idade com os limites
, e usando operadores relacionais. - Exibir a classe eleitoral adequada:
- se a idade for menor que
-> “não eleitor”; - se a idade estiver entre
(inclusive) e (exclusive) -> “eleitor obrigatório”; - caso contrário (isto é, idades
, e idades ) -> vamos exibir “eleitor facultativo” (categoria comum em regras eleitorais e que faz sentido para completar o comportamento do programa).
- se a idade for menor que
Passo 3
Como ler e converter a entrada em Python — explicando linha a linha:
- A função
input()lê uma linha de texto digitada pelo usuário. str.strip()remove espaços em branco no começo/fim — útil para evitar erro se o usuário digitar espaços.int(...)converte uma string para inteiro; se a string não representar um inteiro válido, Python lança uma exceção (ValueError).- Para tratar entradas inválidas de forma elegante, usamos um bloco
try/exceptque tenta converter e, em caso de falha, avisa o usuário.
Exemplo de fragmento:
```python
texto = input("Idade: ").strip()
try:
idade = int(texto)
except ValueError:
print(“Entrada inválida: digite um número inteiro.”)
```
```python
texto = input("Idade: ").strip()
try:
idade = int(texto)
except ValueError:
print(“Entrada inválida: digite um número inteiro.”)
```
Passo 4
Explicando as comparações e a lógica booleana que vamos usar:
- Operadores relacionais principais:
<significa “menor que”; por exemplo,idade < 16é verdadeiro se a idade for menor que. >=significa “maior ou igual a”; por exemplo,idade >= 18é verdadeiro se a idade forou mais. - Podemos combinar condições com
and(E lógico) eor(OU lógico). Ex.:idade >= 18 and idade < 65significa “idade entreinclusive e exclusiva”.
- Estrutura de decisão em Python:
if <condição>:elif <outra condição>:else:
A primeira condição verdadeira tem seu bloco executado; os demais são ignorados.
Passo 5
Descrição detalhada do fluxo de decisão que implementaremos:
- Primeiro checar se
idade < 0— idade negativa é inválida; avisamos o usuário. - Depois, se
idade < 16-> imprimir “não eleitor”. - Elif
idade >= 18 and idade < 65-> imprimir “eleitor obrigatório”. - Else -> imprimir “eleitor facultativo” (cobre
e ).
Por que essa ordem? Porque as condições são mutuamente excludentes e ordenadas dos casos mais específicos/invalidos para os mais gerais; usar
elif garante que apenas um bloco execute.Passo 6
Implementação do programa — explicando cada linha do código:
- Linha de leitura:
texto = input("Digite a idade: ").strip()lê e limpa espaços. - Conversão: dentro de
tryfazemosidade = int(texto). - Validação de negativo:
if idade < 0:-> mensagem de erro. - Classificação:
if idade < 16: print("não eleitor")elif 18 <= idade < 65: print("eleitor obrigatório")- nota: em Python podemos escrever
18 <= idade < 65que é equivalente aidade >= 18 and idade < 65.
- nota: em Python podemos escrever
else: print("eleitor facultativo")
- Mensagem de saída clara e com acentuação correta conforme o idioma.
Passo 7
Exemplos de execução (entradas e saídas esperadas):
- Entrada
\n Saída: não eleitor - Entrada
\n Saída: eleitor facultativo - Entrada
\n Saída: eleitor facultativo - Entrada
\n Saída: eleitor obrigatório - Entrada
\n Saída: eleitor obrigatório - Entrada
\n Saída: eleitor facultativo - Entrada negativa (ex.:
)\n Saída: “Idade inválida” (tratamos como erro)
Esses exemplos ajudam você a conferir rapidamente durante a prova se o programa está correto.
Passo 8
Dicas práticas e comportamento em prova:
- Se o enunciado pedir apenas as duas classes citadas, explique (rapidamente no comentário ou num print) como você trata as demais idades — é importante mostrar ao corretor que você pensou nos casos limites.
- Use
try/exceptpara não perder pontos por exceções em entradas estranhas. - Lembre-se das comparações encadeadas em Python:
18 <= idade < 65é concisa e legível. - Mantenha as mensagens exatamente como o enunciado pede (se houver formato exigido).
Resposta
# Programa que classifica a classe eleitoral pela idade
texto = input("Digite a idade: ").strip()
try:
idade = int(texto)
if idade < 0:
print("Idade inválida")
elif idade < 16:
print("não eleitor")
elif 18 <= idade < 65:
print("eleitor obrigatório")
else:
print("eleitor facultativo")
except ValueError:
print("Entrada inválida: digite um número inteiro.")