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


🎯 Nível 1: Fundamentos

Problema 06.1 — List Comprehensions com Filtragem Condicional

Contexto: List Comprehensions com Filtragem Condicional no contexto de Gestão de Memória e Coleções: Listas, Tuplas e Matrizes 2D.

Requisitos de Execução:

  1. Gerar lista de quadrados apenas para números pares a partir de uma faixa inicial.

Resultado Esperado

Lista transformada e filtrada em expressão declarativa concisa.

📤 Instruções de Entrega (Microsoft Teams)

  1. Salve o arquivo como: Atividade_06_1_SeuNome
  2. Envie na tarefa: Atividade Cap 06 - Gestão de Memória e Coleções: Listas, Tuplas e Matrizes 2D
🔑 Gabarito de Código & Solução Comentada
numeros = list(range(1, 11))
quadrados_pares = [x**2 for x in numeros if x % 2 == 0]
cubos_impares = [x**3 for x in numeros if x % 2 != 0]

print(f"Pares ao quadrado: {quadrados_pares}")
print(f"Impares ao cubo: {cubos_impares}")

🔍 Nível 2: Prática

Problema 06.2 — Matrizes Multidimensionais com Listas Aninhadas e Transposição

Contexto: Matrizes Multidimensionais com Listas Aninhadas e Transposição no contexto de Gestão de Memória e Coleções: Listas, Tuplas e Matrizes 2D.

Requisitos de Execução:

  1. Criar matriz 3x3 e calcular sua transposta utilizando list comprehensions.

Resultado Esperado

Matriz transposta calculada com elegância funcional.

📤 Instruções de Entrega (Microsoft Teams)

  1. Salve o arquivo como: Atividade_06_2_SeuNome
  2. Envie na tarefa: Atividade Cap 06 - Gestão de Memória e Coleções: Listas, Tuplas e Matrizes 2D
🔑 Gabarito de Código & Solução Comentada
matriz = [
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]
]
transposta = [[matriz[j][i] for j in range(len(matriz))] for i in range(len(matriz[0]))]
print("Matriz Transposta:", transposta)

⚡ Nível 3: Integração

Problema 06.3 — Deep Copy vs Shallow Copy com o Módulo copy

Contexto: Deep Copy vs Shallow Copy com o Módulo copy no contexto de Gestão de Memória e Coleções: Listas, Tuplas e Matrizes 2D.

Requisitos de Execução:

  1. Demonstrar que copy.deepcopy() isola completamente estruturas aninhadas prevenindo efeitos colaterais.

Resultado Esperado

Cópia profunda realizada com isolamento total de grafos de objetos.

📤 Instruções de Entrega (Microsoft Teams)

  1. Salve o arquivo como: Atividade_06_3_SeuNome
  2. Envie na tarefa: Atividade Cap 06 - Gestão de Memória e Coleções: Listas, Tuplas e Matrizes 2D
🔑 Gabarito de Código & Solução Comentada
import copy

original = [[1, 2], [3, 4]]
clonado = copy.deepcopy(original)
clonado[0][0] = 99

print(f"Original[0][0]={original[0][0]} | Clone[0][0]={clonado[0][0]} (Independentes)")

🏆 Nível 4: Desafio Corporativo

Problema 06.4 — Contagem de Referências e Módulo gc (Garbage Collector)

Contexto: Contagem de Referências e Módulo gc (Garbage Collector) no contexto de Gestão de Memória e Coleções: Listas, Tuplas e Matrizes 2D.

Requisitos de Execução:

  1. Inspecionar contagem de referências de objetos com sys.getrefcount() e forçar ciclos de coleta.

Resultado Esperado

Métricas do Garbage Collector do CPython inspecionadas em tempo de execução.

📤 Instruções de Entrega (Microsoft Teams)

  1. Salve o arquivo como: Atividade_06_4_SeuNome
  2. Envie na tarefa: Atividade Cap 06 - Gestão de Memória e Coleções: Listas, Tuplas e Matrizes 2D
🔑 Gabarito de Código & Solução Comentada
import sys
import gc

dados = [1, 2, 3]
print(f"Contagem de referencias de 'dados': {sys.getrefcount(dados) - 1}")
coletados = gc.collect()
print(f"Objetos inalcançaveis coletados pelo GC: {coletados}")