🧩 Exercícios: Operadores Bitwise, Manipulação Avançada de Strings e Formatação
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:
- 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)
- Salve o arquivo como:
Atividade_04_1_SeuNome - 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:
- 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)
- Salve o arquivo como:
Atividade_04_2_SeuNome - 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:
- 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)
- Salve o arquivo como:
Atividade_04_3_SeuNome - 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:
- 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)
- Salve o arquivo como:
Atividade_04_4_SeuNome - 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']}")