Submódulo 1: Estruturas de decisão: condicionais if/elif/else
Site: | Lumina |
Course: | Python para Iniciantes: Lógica e Programação |
Book: | Submódulo 1: Estruturas de decisão: condicionais if/elif/else |
Printed by: | Usuário visitante |
Date: | Wednesday, 17 September 2025, 9:05 PM |
Description
Este submódulo introduz as estruturas condicionais em Python (if, elif, else) com foco em como as decisões são tomadas no código. Vamos entender como as condições são formuladas, como comparar valores usando operadores de comparação, e como combinar condições com operadores lógicos para criar fluxos mais robustos. Abordaremos também a importância da indentação para delimitar blocos de código e o conceito de truthiness para simplificar verificações simples. Ao final, você estará apto a traduzir regras de negócio em decisões programadas, criar validações básicas e reconhecer mensagens de erro comuns associadas a condicionais. Vamos seguir uma narrativa prática: pensar no problema, planejar a condição e ver o código ganhar vida com testes simples.
Condições básicas com if/elif/else
🎯 Condições básicas com if/elif/else
Neste submódulo, vamos entender como as decisões aparecem no código. Em termos simples, uma condição é uma pergunta que seu programa faz; se a resposta for verdadeira, executa o bloco associado. Em Python, essa lógica é implementada com a instrução if, que pode ser acompanhada por elif (opcional) e else (opcional). (1) A estrutura básica funciona assim: se a condição for verdadeira, o código dentro do bloco do if é executado; caso contrário, o Python verifica as possibilidades seguintes. (2) As condições costumam usar operadores de comparação como ==
, !=
, >
, <
, >=
, <=
para comparar valores. (3) Além disso, é comum combinar várias condições com os operadores lógicos and, or e not para criar fluxos mais complexos. (4) O conceito de truthiness descreve como diferentes valores são avaliados como Verdadeiro ou Falso em contextos condicionais, o que pode simplificar verificações simples. (1)(3) Observação: a indentação define blocos de código no Python, tornando essencial manter a consistência. (4)

# Exemplo simples de if/elif/else
idade_input = input('Digite sua idade: ')
try:
idade = int(idade_input)
except ValueError:
idade = None
if idade is None:
print('Entrada inválida!')
elif idade >= 18:
print('Você é maior de idade.')
else:
print('Você é menor de idade.')
Indentação é crucial no Python; cada bloco de código depende da sua indentação para definir quais instruções pertencem ao if, elif ou else. (1)
- Verificador de elegibilidade com base em idade (≥ 18 para acesso).
- Verificar se uma nota atende a um requisito mínimo (≥ 60) com mensagens diferentes para cada faixa.
- Implementar um pequeno menu que muda o comportamento com base na entrada do usuário.
Agora é sua vez: crie um verificador de elegibilidade com base na idade. Use uma condicional simples com if/else. Perguntas de orientação: se a idade for igual ou superior a 18, exiba uma mensagem de acesso liberado; caso contrário, indique que o acesso não está disponível. Explique a lógica em 2–3 linhas ao final do código.
Operadores lógicos e combinação de condições
🎯 Operadores Lógicos: and, or e not
Depois de entender as condicionais, vamos ver como combinar várias condições para tomar decisões mais refinadas. Em Python, os operadores and, or e not permitem criar fluxos onde várias perguntas precisam ser respondidas ou onde apenas uma entre muitas precisa ser verdadeira. (1) A ideia básica é que and exige que todas as condições sejam verdadeiras para o bloco associado ser executado, enquanto or executa se pelo menos uma condição for verdadeira. (2) O operador not inverte o valor lógico de uma condição, o que é útil para situações onde queremos expressar uma exclusão. (3) Além disso, a ideia de truthiness nos ajuda a escrever verificações mais curtas; valores como 0, '', None ou listas vazias são considerados falsos, enquanto números diferentes de zero, strings não vazias e listas com elementos são verdadeiros. (1)(3) Em código, isso se traduz em estruturas como:

# Exemplo simples com operadores lógicos
idade = 21
acesso = 'Liberado' if idade >= 18 and idade <= 65 else 'Acesso Negado'
print('Status:', acesso)
Para praticar, pense no seguinte: crie um menu com opções, onde cada opção só é acessível se o usuário atender a duas condições simultâneas (por exemplo, idade entre 18 e 65 e possuir login válido). Use and para checar ambas, e not para inverter uma checagem quando necessário. (2) (3)
Curiosidade: em muitos sistemas reais, operadores lógicos ajudam a consolidar várias verificações de segurança em uma única linha de decisão, reduzindo a quantidade de código repetido.
Boas práticas, erros comuns e testabilidade
🎯 Boas práticas e erros comuns
Nesse módulo, vamos aprender a tornar o código condicional mais claro e resistente. Um dos primeiros erros que aparecem é a indentação irregular, que leva a erros de sintaxe ou a blocos de código mal definidos. (1) A prática recomendada é manter uma indentação consistente (geralmente 4 espaços) e evitar ifs aninhados profundamente; quando a lógica fica complexa, é sinal de que podemos extrair parte dela para funções separadas. (2) Outra fonte comum de problemas são condições muito longas que dificultam a leitura; dividi-las em variáveis temporárias com nomes descritivos pode ajudar. (3) Para tornar o código mais confiável, vale testar cenários simples com asserts ou pequenos casos de teste que demonstrem entradas esperadas e não esperadas. (3) A documentação oficial reforça que manter o fluxo de controle claro reduz erros e facilita manutenção (1)(4).

Desafio: escreva uma função que recebe uma nota e retorna o status: 'Aprovado' se nota >= 60, 'Aprovado com ressalvas' se nota >= 75, 'Reprovado' caso contrário. Em seguida, crie uma segunda versão usando uma expressão condicional para reduzir o número de linhas. Comente o raciocínio em 2–3 linhas.
🎯 Exercícios
🎯 Exercícios: Estruturas de decisão: condicionais if/elif/else
Teste seus conhecimentos com estas questões de múltipla escolha. Cada questão tem apenas uma resposta correta.
Em Python, qual afirmação descreve corretamente o efeito da indentação ao definir o bloco de código dentro de um if?
Qual operador deve ser usado para verificar se a variável score é maior ou igual a 60?
Considere as condições A = x > 0 e B = y != 0. Qual expressão garante que ambas as condições sejam verdadeiras?
Qual das opções descreve melhor a ideia de truthiness em Python para uma verificação simples em if?
Qual prática ajuda a tornar o código mais legível ao lidar com várias condicionais e validações de entrada?