🧩 Exercícios: Estruturas de Decisão e Pattern Matching (match-case)
Spec Sistemas Com Python • Trilha Progressiva em 4 Níveis
🧭 Navegação Pedagógica
-
📖 Teoria do Capítulo 💻 Exemplos 📊 Slides 🧠 Quiz
🎯 Nível 1: Fundamentos
Problema 02.1 — Pattern Matching Estrutural com match-case
Contexto: Pattern Matching Estrutural com match-case no contexto de Estruturas de Decisão e Pattern Matching (match-case).
Requisitos de Execução:
- Mapear códigos de status e comandos utilizando a sintaxe nativa
match comando: case ....
Resultado Esperado
Comandos avaliados e roteados via match-case do Python.
📤 Instruções de Entrega (Microsoft Teams)
- Salve o arquivo como:
Atividade_02_1_SeuNome - Envie na tarefa:
Atividade Cap 02 - Estruturas de Decisão e Pattern Matching (match-case)
🔑 Gabarito de Código & Solução Comentada
def processar_comando(comando: str) -> str:
match comando.strip().lower():
case "iniciar":
return "Servico inicializado."
case "parar":
return "Servico encerrado."
case _:
return "Comando desconhecido."
print(processar_comando("iniciar"))
🔍 Nível 2: Prática
Problema 02.2 — Desestruturação de Sequências e Dicionários no match-case
Contexto: Desestruturação de Sequências e Dicionários no match-case no contexto de Estruturas de Decisão e Pattern Matching (match-case).
Requisitos de Execução:
- Desestruturar dicionários de eventos recebidos com
case {'tipo': 'login', 'usuario': user}:.
Resultado Esperado
Payload de evento desestruturado diretamente no pattern matching.
📤 Instruções de Entrega (Microsoft Teams)
- Salve o arquivo como:
Atividade_02_2_SeuNome - Envie na tarefa:
Atividade Cap 02 - Estruturas de Decisão e Pattern Matching (match-case)
🔑 Gabarito de Código & Solução Comentada
def processar_evento(evento: dict[str, object]) -> None:
match evento:
case {"tipo": "LOGIN", "usuario": str(u), "sucesso": True}:
print(f"Login bem-sucedido para o usuario: {u}")
case {"tipo": "FALHA", "ip": str(ip)}:
print(f"Tentativa suspeita bloqueada do IP: {ip}")
case _:
print("Evento nao catalogado.")
processar_evento({"tipo": "LOGIN", "usuario": "admin", "sucesso": True})
⚡ Nível 3: Integração
Problema 02.3 — Pattern Matching com Cláusulas de Guarda (if guard)
Contexto: Pattern Matching com Cláusulas de Guarda (if guard) no contexto de Estruturas de Decisão e Pattern Matching (match-case).
Requisitos de Execução:
- Filtrar transações numéricas com
case float(valor) if valor > 10000.0:exigindo autorização especial.
Resultado Esperado
Cláusula de guarda validando limites operacionais no matching.
📤 Instruções de Entrega (Microsoft Teams)
- Salve o arquivo como:
Atividade_02_3_SeuNome - Envie na tarefa:
Atividade Cap 02 - Estruturas de Decisão e Pattern Matching (match-case)
🔑 Gabarito de Código & Solução Comentada
def classificar_transacao(valor: float) -> str:
match valor:
case v if v <= 0:
return "Transacao invalida"
case v if v > 10000.0:
return "Requer aprovacao da diretoria (Compliance)"
case _:
return "Transacao autorizada automaticamente"
print(classificar_transacao(15000.0))
🏆 Nível 4: Desafio Corporativo
Problema 02.4 — Matching de Objetos de Classe e Instâncias Tipadas
Contexto: Matching de Objetos de Classe e Instâncias Tipadas no contexto de Estruturas de Decisão e Pattern Matching (match-case).
Requisitos de Execução:
- Realizar pattern matching em instâncias de classes de domínio com
case Pedido(id=i, status='PAGO'):.
Resultado Esperado
Objetos de domínio inspecionados com pattern matching tipado.
📤 Instruções de Entrega (Microsoft Teams)
- Salve o arquivo como:
Atividade_02_4_SeuNome - Envie na tarefa:
Atividade Cap 02 - Estruturas de Decisão e Pattern Matching (match-case)
🔑 Gabarito de Código & Solução Comentada
from dataclasses import dataclass
@dataclass
class Transacao:
id: int
moeda: str
total: float
def auditar(t: Transacao) -> None:
match t:
case Transacao(moeda="BRL", total=v) if v > 50000:
print(f"Alerta COAF: Transacao #{t.id} em Reais de alto valor!")
case Transacao(moeda="USD"):
print(f"Transacao internacional #{t.id} registrada.")
auditar(Transacao(101, "BRL", 75000.0))
| ⬅️ Voltar ao Índice de Exercícios | 📚 Sumário de Tópicos |