Módulo 7 - Condições com if, elif e else
Prática: pode votar? Pode tirar CNH?
11 min de leitura · por Cesar Gargiulo, revisado pela equipe ValorFinal e GuardiaSec · Atualizado em 01/07/2026
O que você vai aprender
- Traduzir regras reais (voto e CNH) em faixas de idade.
- Montar a escada if/elif/else na ordem correta.
- Validar a entrada antes de decidir, rejeitando idades absurdas.
- Testar o programa com valores de borda: 15, 16, 18, 69 e 70.
Ouvir o resumo desta aula
Um recap de cerca de 2 minutos na voz do Valim, para ouvir no trânsito ou na academia.
Ler a transcrição do resumo
Resumo da aula: Prática: pode votar? Pode tirar CNH?.
Os objetivos desta aula. Traduzir regras reais (voto e CNH) em faixas de idade. Montar a escada if/elif/else na ordem correta. Validar a entrada antes de decidir, rejeitando idades absurdas. Testar o programa com valores de borda: 15, 16, 18, 69 e 70.
Veja o essencial, parte por parte.
As regras antes do código. O programa pergunta a idade e responde duas coisas: a situação do voto e a da CNH.
Construindo passo a passo. Rode com 15, 16, 17, 18, 69, 70 e confira cada resposta contra a tabela das regras.
Desafios extras para fixar. O programa está pronto, e prontinho demais é convite para melhorar.
Esse foi o resumo do essencial. Para se aprofundar, leia a aula completa e responda os exercícios.
As regras antes do código
Todo bom programa começa longe do teclado: entendendo as regras. As nossas vêm da legislação brasileira. Para o voto, a Constituição define alistamento e voto facultativos para quem tem 16 ou 17 anos e para quem tem 70 ou mais; entre 18 e 69, o voto é obrigatório, e antes dos 16 não se vota. Para dirigir, o Código de Trânsito Brasileiro exige 18 anos completos (além de ser penalmente imputável e saber ler e escrever, detalhes que o nosso programa simplifica de propósito, avisando o usuário). São regras públicas, verificáveis no site do TSE e no portal gov.br, e as fontes desta aula apontam para lá.
| Idade | Voto | CNH |
|---|---|---|
| 0 a 15 | Não vota | Não pode tirar |
| 16 e 17 | Facultativo | Não pode tirar |
| 18 a 69 | Obrigatório | Pode tirar (a partir dos 18) |
| 70 ou mais | Facultativo | Pode dirigir, com a habilitação em dia |
As faixas do nosso programa, montadas a partir das regras eleitorais e de trânsito do Brasil.
Com a tabela pronta, a estrutura do código se desenha sozinha: são quatro faixas que se excluem, o cenário perfeito para a escada if/elif/else da aula 4. E tem um quinto caso escondido, que separa programa de brinquedo de programa sério: a idade inválida. Se o usuário digitar -5 ou 300, responder sobre voto seria bobagem; o certo é avisar e não classificar. Essa validação entra como primeiro degrau da escada, seguindo um princípio que vale a carreira inteira: valide antes de decidir.
Construindo passo a passo
Hora de montar, peça por peça, usando tudo o que o módulo ensinou. Passo 1: ler a idade com input e converter com int na mesma linha, como manda a aula 5. Passo 2: o degrau de validação, rejeitando idades fora do intervalo plausível. Passo 3: as faixas em ordem crescente com a condição de menor que, o que dispensa condições compostas: quem não é menor que 16 e é menor que 18 só pode ter 16 ou 17. Passo 4: o else final assume a última faixa, os 70 ou mais.
idade = int(input("Qual é a sua idade? "))
if idade < 0 or idade > 130:
print("Idade inválida. Digite um valor entre 0 e 130.")
elif idade < 16:
print("Voto: ainda não pode votar.")
print("CNH: ainda não pode tirar.")
elif idade < 18:
print("Voto: facultativo. Você escolhe se vota.")
print("CNH: ainda não pode tirar. Falta pouco!")
elif idade < 70:
print("Voto: obrigatório dos 18 aos 69 anos.")
print("CNH: pode tirar, a partir dos 18 anos.")
else:
print("Voto: facultativo a partir dos 70 anos.")
print("CNH: pode dirigir, com a habilitação em dia.")
print("Aviso: resumo educativo. Confira as regras no TSE e no gov.br.")O verificador completo: validação primeiro, faixas em ordem crescente com <, else final para os 70 ou mais e aviso educativo.
Acompanhe a execução com idade 17. O degrau de validação dá False (17 está no intervalo). O idade < 16 dá False. O idade < 18 dá True: voto facultativo, CNH ainda não, e a escada encerra. Note a elegância da ordem crescente com menor que: cada degrau já sabe que os anteriores falharam, então idade < 18 sozinho significa, na prática, entre 16 e 17. É a regra da aula 4 aplicada de trás para frente: com <, comece do valor mais baixo e suba.
Desafios extras para fixar
O programa está pronto, e prontinho demais é convite para melhorar. Os desafios abaixo usam só o que o curso já ensinou, em ordem crescente de esforço. Faça pelo menos o primeiro antes da mini-prova: é nele que o padrão sim ou não da aula 5 volta ao palco.
- Pergunte no fim: "Quer consultar outra idade? (sim/nao)" e, se a resposta normalizada com .lower() estiver em ["sim", "s"], mostre uma mensagem de despedida diferente. No módulo 8, o while vai transformar essa pergunta num programa que repete de verdade.
- Acrescente a faixa da CNH provisória: quem tem exatamente 18 anos recebe a mensagem de que a primeira habilitação tem permissão provisória. Dica: um if aninhado dentro do degrau dos 18 aos 69, com 8 espaços de recuo.
- Peça também o nome da pessoa e use a f-string do módulo 12, ou a concatenação simples, para responder "Maria, seu voto é obrigatório". Personalização muda a cara do programa com uma linha.
- Desafio de leitura: reescreva a escada usando >= e a ordem decrescente (70 primeiro, depois 18, depois 16) e confirme que as respostas continuam idênticas nas bordas.
Fechado o desafio, respire e olhe para trás: neste módulo o seu código aprendeu a decidir. Condição, if, else, elif, comparações com dados do input e a indentação que amarra tudo, cada peça entrou no lugar e terminou combinada num programa com regras do mundo real. O módulo 8 dá o próximo salto: o while, que faz o programa repetir enquanto uma condição for verdadeira. A mesma condição desta semana, agora controlando quantas vezes as coisas acontecem.
Teste rápido
No verificador, uma pessoa de 17 anos cai no degrau elif idade < 18. Por que essa condição basta, sem testar idade >= 16 junto?
Perguntas frequentes
- Essas regras de voto e CNH estão atualizadas?
- As faixas usadas (voto facultativo aos 16 e 17 e a partir dos 70, obrigatório dos 18 aos 69, CNH aos 18) refletem a Constituição e o Código de Trânsito Brasileiro. O programa é um exercício educativo e simplifica requisitos extras, como a imputabilidade penal para a CNH. Para decisões reais, consulte o TSE e o gov.br, as fontes desta aula.
- Por que validar a idade entre 0 e 130?
- Porque o int() aceita qualquer inteiro, inclusive -5 e 3000, e classificar uma idade impossível produziria resposta sem sentido. O intervalo de 0 a 130 é uma escolha pragmática que cobre qualquer idade humana real. O importante é o princípio: rejeitar entrada absurda antes de decidir sobre ela.
- Por que a escada usa < em ordem crescente e não >= em decrescente?
- As duas formas funcionam, e o desafio 4 pede exatamente a versão com >=. A ordem crescente com < foi escolhida porque espelha a tabela de regras lida de cima para baixo, das idades menores para as maiores. Escolha a forma que você lê com mais fluência e seja consistente.
- E se o usuário digitar a idade com letras, tipo dezessete?
- O int() levanta ValueError e o programa para, comportamento honesto porém bruto. O tratamento elegante, capturar o erro com try e except e pedir de novo com uma mensagem amigável, é o tema central do módulo 14. Este programa volta lá, blindado.
- Posso responder voto e CNH em duas escadas separadas?
- Pode, e é um bom exercício: uma escada para o voto, outra com um if simples para a CNH (idade >= 18). O código fica mais longo e cada regra fica mais isolada, o que facilita mudar uma sem tocar na outra. Compare as duas versões e sinta a diferença: avaliar alternativas assim é treino de arquitetura em miniatura.
- O que levo deste módulo para o resto do curso?
- Praticamente tudo o que vem depois usa condição: o while do módulo 8 repete enquanto uma condição é True, o for filtra itens com if, as funções validam parâmetros e o projeto final decide cada opção do menu com uma escada como a desta aula. Se as bordas do verificador ficaram claras, você está pronto para seguir.
Fontes
Seu progresso fica salvo neste aparelho. Assinantes sincronizam entre os aparelhos.