Spec Sistemas Com Python • Trilha Progressiva em 4 Níveis


🎯 Nível 1: Fundamentos

Problema 04.1 — Operações de Bits e Máscaras de Permissão

Contexto: Operações de Bits e Máscaras de Permissão no contexto de Operadores Bitwise, Manipulação Avançada de Strings e Formatação.

Requisitos de Execução:

  1. Controlar flags de leitura, escrita e execução utilizando operadores bitwise (|, &, ^, ~).

Resultado Esperado

Máscaras binárias manipuladas para checagem de permissões.

📤 Instruções de Entrega (Microsoft Teams)

  1. Salve o arquivo como: Atividade_04_1_SeuNome
  2. Envie na tarefa: Atividade Cap 04 - Operadores Bitwise, Manipulação Avançada de Strings e Formatação
🔑 Gabarito de Código & Solução Comentada
READ = 0b001
WRITE = 0b010
EXEC = 0b100

perm = READ | WRITE
tem_exec = (perm & EXEC) != 0
print(f"Permissao Final: {bin(perm)} | Tem EXEC: {tem_exec}")

🔍 Nível 2: Prática

Problema 04.2 — Formatação Avançada com f-strings (Espaçamento, Alinhamento e Casas Decimais)

Contexto: Formatação Avançada com f-strings (Espaçamento, Alinhamento e Casas Decimais) no contexto de Operadores Bitwise, Manipulação Avançada de Strings e Formatação.

Requisitos de Execução:

  1. Gerar tabela formatada no terminal com alinhamento à esquerda, centro e direita via f-strings.

Resultado Esperado

Tabela de relatórios alinhada com especificadores de formato.

📤 Instruções de Entrega (Microsoft Teams)

  1. Salve o arquivo como: Atividade_04_2_SeuNome
  2. Envie na tarefa: Atividade Cap 04 - Operadores Bitwise, Manipulação Avançada de Strings e Formatação
🔑 Gabarito de Código & Solução Comentada
itens = [("Notebook", 4500.0), ("Mouse", 120.50), ("Teclado", 320.0)]
print(f"{'PRODUTO':<15} | {'PRECO':>10}")
print("-" * 28)
for nome, preco in itens:
    print(f"{nome:<15} | R$ {preco:>8.2f}")

⚡ Nível 3: Integração

Problema 04.3 — Sanitização de Texto e Remoção de Acentos com unicodedata

Contexto: Sanitização de Texto e Remoção de Acentos com unicodedata no contexto de Operadores Bitwise, Manipulação Avançada de Strings e Formatação.

Requisitos de Execução:

  1. Normalizar textos e remover acentos utilizando unicodedata.normalize('NFKD', ...).

Resultado Esperado

Texto normalizado e limpo para indexação de busca.

📤 Instruções de Entrega (Microsoft Teams)

  1. Salve o arquivo como: Atividade_04_3_SeuNome
  2. Envie na tarefa: Atividade Cap 04 - Operadores Bitwise, Manipulação Avançada de Strings e Formatação
🔑 Gabarito de Código & Solução Comentada
import unicodedata

def sanitizar_texto(texto: str) -> str:
    nfkd = unicodedata.normalize("NFKD", texto)
    return "".join([c for c in nfkd if not unicodedata.combining(c)]).lower()

print(sanitizar_texto("Programação em Python é Ótima!"))

🏆 Nível 4: Desafio Corporativo

Problema 04.4 — Expressões Regulares Compiladas (re.compile) com Grupos Nomeados

Contexto: Expressões Regulares Compiladas (re.compile) com Grupos Nomeados no contexto de Operadores Bitwise, Manipulação Avançada de Strings e Formatação.

Requisitos de Execução:

  1. Fazer parsing de logs de acesso extraindo IP, timestamp e status HTTP com regex nomeado (?P<nome>...).

Resultado Esperado

Log corporativo processado com extração de grupos nomeados.

📤 Instruções de Entrega (Microsoft Teams)

  1. Salve o arquivo como: Atividade_04_4_SeuNome
  2. Envie na tarefa: Atividade Cap 04 - Operadores Bitwise, Manipulação Avançada de Strings e Formatação
🔑 Gabarito de Código & Solução Comentada
import re

pattern = re.compile(r"(?P<ip>\d+\.\d+\.\d+\.\d+) - \[(?P<data>.*?)\] "(?P<metodo>[A-Z]+) (?P<url>.*?)" (?P<status>\d+)")
log = '192.168.1.50 - [29/Aug/2026:14:00:00] "GET /api/v1/status" 200'

match = pattern.match(log)
if match:
    d = match.groupdict()
    print(f"IP: {d['ip']} | Status: {d['status']}")