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


🎯 Nível 1: Fundamentos

Problema 01.1 — Type Annotations Nativas e Entrada/Saída com f-strings

Contexto: Type Annotations Nativas e Entrada/Saída com f-strings no contexto de Ecossistema Python 3.12+, Tipagem Estática e Estrutura Sequencial.

Requisitos de Execução:

  1. Escrever script com anotações de tipo def calcular(valor: float, taxa: float) -> float: e formatar saída com f-strings.

Resultado Esperado

Script Python executado com tipagem explícita.

📤 Instruções de Entrega (Microsoft Teams)

  1. Salve o arquivo como: Atividade_01_1_SeuNome
  2. Envie na tarefa: Atividade Cap 01 - Ecossistema Python 3.12+, Tipagem Estática e Estrutura Sequencial
🔑 Gabarito de Código & Solução Comentada
def calcular_total(preco: float, desconto: float) -> float:
    return preco * (1.0 - desconto)

if __name__ == "__main__":
    total: float = calcular_total(250.0, 0.10)
    print(f"Total calculado com desconto: R$ {total:.2f}")

🔍 Nível 2: Prática

Problema 01.2 — Validação Estrita de Tipos com Mypy em Modo Estrito (–strict)

Contexto: Validação Estrita de Tipos com Mypy em Modo Estrito (–strict) no contexto de Ecossistema Python 3.12+, Tipagem Estática e Estrutura Sequencial.

Requisitos de Execução:

  1. Configurar anotações em funções e coleções para passar no mypy --strict sem erros de Any implícito.

Resultado Esperado

Código validado com sucesso pelo verificador estático Mypy.

📤 Instruções de Entrega (Microsoft Teams)

  1. Salve o arquivo como: Atividade_01_2_SeuNome
  2. Envie na tarefa: Atividade Cap 01 - Ecossistema Python 3.12+, Tipagem Estática e Estrutura Sequencial
🔑 Gabarito de Código & Solução Comentada
from typing import Final

VERSAO_APP: Final[str] = "3.12.2"

def formatar_identificador(prefixo: str, numero: int) -> str:
    return f"{prefixo.upper()}_{numero:04d}"

print(formatar_identificador("usr", 42))

⚡ Nível 3: Integração

Problema 01.3 — Gerenciamento de Ambientes Virtuais com venv e uv

Contexto: Gerenciamento de Ambientes Virtuais com venv e uv no contexto de Ecossistema Python 3.12+, Tipagem Estática e Estrutura Sequencial.

Requisitos de Execução:

  1. Script automatizando a criação e ativação de venv isolado com dependências de produção.

Resultado Esperado

Ambiente virtual configurado de forma determinística.

📤 Instruções de Entrega (Microsoft Teams)

  1. Salve o arquivo como: Atividade_01_3_SeuNome
  2. Envie na tarefa: Atividade Cap 01 - Ecossistema Python 3.12+, Tipagem Estática e Estrutura Sequencial
🔑 Gabarito de Código & Solução Comentada
import sys
import subprocess

def verificar_ambiente() -> None:
    em_venv = sys.prefix != sys.base_prefix
    print(f"Executando dentro de VirtualEnv: {em_venv}")
    print(f"Interpretador Python: {sys.executable}")

if __name__ == "__main__":
    verificar_ambiente()

🏆 Nível 4: Desafio Corporativo

Problema 01.4 — Configuração Centralizada com pyproject.toml

Contexto: Configuração Centralizada com pyproject.toml no contexto de Ecossistema Python 3.12+, Tipagem Estática e Estrutura Sequencial.

Requisitos de Execução:

  1. Criar arquivo pyproject.toml unificando configurações de Ruff, Mypy e Pytest.

Resultado Esperado

Manifesto de projeto pyproject.toml padronizado para ambientes corporativos.

📤 Instruções de Entrega (Microsoft Teams)

  1. Salve o arquivo como: Atividade_01_4_SeuNome
  2. Envie na tarefa: Atividade Cap 01 - Ecossistema Python 3.12+, Tipagem Estática e Estrutura Sequencial
🔑 Gabarito de Código & Solução Comentada
# pyproject.toml
[project]
name = "python-systems-core"
version = "1.0.0"
requires-python = ">=3.12"

[tool.mypy]
strict = true
disallow_untyped_defs = true

[tool.ruff]
line-length = 100
target-version = "py312"