Especialização em Sistemas com Python & POO com Type Hints • Capítulo 04


🗺️ Mapa Conceitual do Tópico

flowchart LR
    A["Entrada Textual / Flags de Bits"] --> B["Operadores Bitwise (&, |, ^, <<, >>)"]
    A --> C["Métodos de String (.split, .strip, .replace)"]
    B --> D["Máscara de Permissões Binárias"]
    C --> E["Sanitização e Validação Algorítmica"]
    D & E --> F["F-Strings Modernas com Máscaras (:>10.2f, :08b)"]
    
    style A fill:#e1f5fe,stroke:#03a9f4,stroke-width:2px
    style B fill:#fff3e0,stroke:#ff9800,stroke-width:2px
    style C fill:#fff3e0,stroke:#ff9800,stroke-width:2px
    style F fill:#e8f5e9,stroke:#4caf50,stroke-width:2px

🔢 1. Operadores Bitwise (Manipulação em Nível de Bits)

Operações bit a bit manipulam diretamente os bits de representação de inteiros:

  • & (AND): 1 se ambos forem 1.
  • | (OR): 1 se ao menos um for 1.
  • ^ (XOR): 1 se forem diferentes.
  • ~ (NOT): Inversão de bits (complemento de dois).
  • << e >>: Deslocamento de bits para esquerda (multiplicação por $2^n$) e direita (divisão por $2^n$).

🔤 2. Manipulação Avançada de Strings e F-Strings

Strings em Python são imutáveis e codificadas nativamente em UTF-8. As f-strings (PEP 498) suportam formatação avançada de alinhamento, preenchimento, casas decimais e representações numéricas (:08b, :>12.2f).


💻 Exemplo Prático e Tipado

"""
exemplo_04_operadores_bitwise_e_strings.py - Controle de Acessos com Flags de Bits
"""

from typing import Final

PERM_LEITURA: Final[int]   = 1 << 0  # 0001 (1)
PERM_ESCRITA: Final[int]   = 1 << 1  # 0010 (2)
PERM_EXECUCAO: Final[int]  = 1 << 2  # 0100 (4)
PERM_ADMIN: Final[int]     = 1 << 3  # 1000 (8)


def verificar_permissao(mascara_usuario: int, permissao_requerida: int) -> bool:
    return (mascara_usuario & permissao_requerida) == permissao_requerida


if __name__ == "__main__":
    perfil_dev = PERM_LEITURA | PERM_EXECUCAO # 0101 (5)
    print(f"Perfil Binário: {perfil_dev:04b} (Decimal: {perfil_dev})")
    print(f"Pode Ler?      {verificar_permissao(perfil_dev, PERM_LEITURA)}")
    print(f"Pode Escrever? {verificar_permissao(perfil_dev, PERM_ESCRITA)}")
    print(f"Pode Executar? {verificar_permissao(perfil_dev, PERM_EXECUCAO)}")

🔗 Recursos Pedagógicos do Capítulo 04

Recurso Didático Finalidade Link de Acesso
📊 Slides de Aula Apresentação visual interativa com Dark Mode e suporte a teclado Ver Slides
🧠 Quiz Formativo Teste interativo de fixação com feedback imediato por alternativa Fazer Quiz
💻 Exemplos de Código Demonstrações funcionais com Type Hints e saída no console Ver Exemplos
🧩 Exercícios em 4 Níveis Lista progressiva de fixação com gabarito em bloco colapsável Resolver Exercícios

🔁 Capítulo Anterior 📚 Sumário de Tópicos 🏛️ Próximo Capítulo