Aula 04: Estruturas de Decisão (IF/ELSE/Match)
Objetivos de Aprendizagem
Ao final desta aula, você deve ser capaz de:
- Explicar a diferença entre
if,if/elseeif/elif/else. - Escrever condições usando operadores relacionais e lógicos (
and,or,not). - Resolver problemas simples de decisão com entradas do usuário.
- Identificar quando usar
match/casee quando usarif/elif. - Testar um programa e validar se a saída corresponde às regras definidas.
Conteúdo
Ambiente sugerido e limites desta aula
- Ambiente sugerido: Python 3.10 ou superior.
- Importante:
match/caseestá disponível a partir do Python 3.10. - Escopo desta aula: foco em estruturas de decisão. Estruturas de repetição (
for,while) ficam para aulas seguintes.
1) Decisão simples com if
Use if quando você quer executar um bloco somente se uma condição for verdadeira.
Uma condição é uma expressão que resulta em True (verdadeiro) ou False (falso).
idade = 19
if idade >= 18:
print("Maior de idade")
Leitura da regra: se idade >= 18, então imprime a mensagem.
2) Duas alternativas com if/else
Use else quando existir um caminho alternativo para quando a condição do if for falsa.
nota = 5.5
if nota >= 6.0:
print("Aprovado")
else:
print("Reprovado")
3) Múltiplos caminhos com if/elif/else
Use elif quando há várias faixas possíveis.
media = 7.2
if media >= 9:
conceito = "A"
elif media >= 8:
conceito = "B"
elif media >= 7:
conceito = "C"
elif media >= 6:
conceito = "D"
else:
conceito = "F"
print(f"Conceito: {conceito}")
4) Condições compostas
Você pode combinar regras com operadores lógicos:
and: as duas condições devem ser verdadeirasor: pelo menos uma condição deve ser verdadeiranot: inverte o valor lógico
Um operador relacional compara valores (>, <, >=, <=, ==, !=) e retorna True ou False.
Um operador lógico combina condições (and, or, not).
idade = 20
tem_documento = True
if idade >= 18 and tem_documento:
print("Entrada permitida")
else:
print("Entrada negada")
Outro exemplo com or:
dia = "sábado"
if dia == "sábado" or dia == "domingo":
print("Fim de semana")
else:
print("Dia útil")
5) Seleção por padrão com match/case
Quando você precisa decidir entre várias opções fixas, match/case pode deixar o código mais legível.
opcao = 2
match opcao:
case 1:
print("Cadastrar")
case 2:
print("Listar")
case 3:
print("Sair")
case _:
print("Opção inválida")
Compatibilidade: match/case x if/elif
Se você estiver em Python antigo, o mesmo comportamento pode ser escrito com if/elif:
opcao = 2
if opcao == 1:
print("Cadastrar")
elif opcao == 2:
print("Listar")
elif opcao == 3:
print("Sair")
else:
print("Opção inválida")
6) Exemplos contextualizados
Exemplo A: desconto por idade
idade = 63
preco = 100.0
if idade >= 60:
preco_final = preco * 0.8
else:
preco_final = preco
print(f"Preço final: R$ {preco_final:.2f}")
Saída esperada: Preço final: R$ 80.00
Exemplo B: classificação por faixa
temperatura = 31
if temperatura < 18:
print("Frio")
elif temperatura <= 28:
print("Agradável")
else:
print("Quente")
Saída esperada: Quente
Exemplo C: maior de dois números
a = 42
b = 35
if a > b:
print(f"Maior valor: {a}")
elif b > a:
print(f"Maior valor: {b}")
else:
print("Valores iguais")
Saída esperada: Maior valor: 42
Exercícios (checkpoints)
- Escreva um programa que leia uma idade e informe se a pessoa é maior de idade.
- Critério de verificação: para entrada
18, a saída deve indicar maioridade.
- Critério de verificação: para entrada
- Escreva um programa que leia a nota final e exiba
Aprovado(>= 6) ouReprovado.- Critério de verificação: para entrada
5.9, deve mostrarReprovado.
- Critério de verificação: para entrada
- Crie um classificador com
if/elif/elsepara converter notas numéricas em conceitos (A,B,C,D,F).- Critério de verificação: para entrada
8.3, deve resultar emB.
- Critério de verificação: para entrada
- Faça um programa que permita entrada em evento apenas se a pessoa tiver idade >= 18 e documento.
- Critério de verificação: para
idade=20etem_documento=False, deve negar entrada.
- Critério de verificação: para
- Implemente um menu com opções 1, 2, 3 usando
match/case.- Critério de verificação: para opção
4, deve retornarOpção inválida.
- Critério de verificação: para opção
- Reescreva o exercício anterior usando
if/elife compare legibilidade.- Critério de verificação: os dois programas devem produzir as mesmas saídas para as mesmas entradas.
Resumo da Aula
Nesta aula você praticou:
- Decisão simples com
if. - Decisão binária com
if/else. - Múltiplos caminhos com
if/elif/else. - Combinação de condições com
and,orenot. - Seleção por padrão com
match/case(Python 3.10+).
Com isso, você já consegue modelar regras de negócio básicas e preparar programas interativos para as próximas aulas.
Referências
Principais
- Python Docs — Tutorial: https://docs.python.org/3/tutorial/controlflow.html
- Python Docs — Built-in Types: https://docs.python.org/3/library/stdtypes.html
Aprofundamento
- PEP 636 — Structural Pattern Matching Tutorial: https://peps.python.org/pep-0636/
- Real Python — Conditional Statements: https://realpython.com/python-conditional-statements/