Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

1
resposta

Filtrando números pares

O que estou aprendendo?

Nesta atividade, estou aprendendo a utilizar a função filter() para selecionar apenas os elementos de uma lista que atendem a um determinado critério. Também estou aprendendo a utilizar funções lambda, que permitem criar regras simples de filtragem.

O conceito central não é identificar números pares, mas aprender a:

Receber dados
↓
Aplicar um critério
↓
Selecionar apenas os elementos relevantes

Solução da atividade da Alura

numeros = input("Digite os números separados por espaço: ").split()

pares = filter(lambda x: int(x) % 2 == 0, numeros)

print("Números pares:", " ".join(pares))

Exemplo:

Entrada:

1 2 3 4 5 6

Saída:

Números pares: 2 4 6

Aplicação na Plataforma AFA

Na AFA, utilizamos uma nota inicial de 8,0 e registros positivos (+0,3) e negativos (-0,2) para acompanhar o desenvolvimento dos estudantes. Entre os critérios positivos e negativos estão aspectos como participação em sala, criatividade, curiosidade, proatividade, conversa excessiva, desinteresse nas aulas, não realização de atividades e outras evidências observadas pelos professores.

O conceito de filtragem pode ser utilizado para identificar automaticamente apenas os registros negativos de um estudante, auxiliando a coordenação pedagógica na análise dos dados.

Exemplo real adaptado da AFA

Suponha que um estudante tenha recebido os seguintes registros:

registros = [
    ("Ótima participação em sala", 0.3),
    ("Criatividade", 0.3),
    ("Conversa excessiva", -0.2),
    ("Exercita a curiosidade", 0.3),
    ("Não fez atividade de casa", -0.2)
]

Podemos filtrar apenas as ocorrências negativas:

registros_negativos = list(
    filter(lambda registro: registro[1] < 0, registros)
)

print(registros_negativos)

Resultado:

[
 ("Conversa excessiva", -0.2),
 ("Não fez atividade de casa", -0.2)
]

Exemplo com os dois primeiros estudantes analisados

Estudante 1 – Anik

Nos registros observados, Anik recebeu diversas evidências positivas como:

  • Ótima participação em sala;
  • Criatividade;
  • Exercita a curiosidade;
  • Proatividade;

e apenas uma ocorrência negativa:

Conversa excessiva (-0,2)

Podemos utilizar o filtro para localizar somente os pontos de atenção:

anik = [
    0.3, 0.3, 0.3, 0.3, 0.3,
    0.3, 0.3, -0.2, 0.3, 0.3
]

negativos_anik = list(filter(lambda x: x < 0, anik))

print(negativos_anik)

Resultado:

[-0.2]

Estudante 2

Suponha que um segundo estudante tenha recebido:

estudante2 = [
    0.3,
    -0.2,
    -0.2,
    0.3,
    -0.2,
    0.3
]

Aplicando o filtro:

negativos_estudante2 = list(
    filter(lambda x: x < 0, estudante2)
)

print(negativos_estudante2)

Resultado:

[-0.2, -0.2, -0.2]

Nesse caso, o sistema identifica rapidamente que existem três ocorrências negativas que merecem atenção.


Alerta importante

Assim como discutimos no exercício sobre quantidade de caracteres, a presença de registros negativos não significa automaticamente que o estudante esteja em situação crítica.

O filtro não faz julgamento pedagógico.

Ele apenas responde à pergunta:

Quais registros atendem ao critério definido?

A análise pedagógica continua sendo responsabilidade da coordenação, dos professores e da equipe escolar.

Por exemplo:

1 ocorrência negativa
↓
Não significa problema

3 ocorrências negativas
↓
Não significa necessariamente dificuldade grave

Mas pode indicar a necessidade de análise mais cuidadosa.

O que realmente aprendi?

Na atividade da Alura:

Lista de números
↓
Filtrar números pares
↓
Exibir resultado

Na Plataforma AFA:

Registros dos professores
↓
Filtrar ocorrências negativas
↓
Identificar evidências relevantes
↓
Apoiar a análise pedagógica

Percebi que o principal aprendizado desta atividade foi compreender que sistemas inteligentes não analisam todos os dados ao mesmo tempo. Eles aplicam critérios para selecionar informações relevantes, permitindo que gestores e professores concentrem sua atenção nas evidências que realmente merecem acompanhamento e reflexão pedagógica.

1 resposta

Oi, Patricia. Tudo bem com você?

Obrigado por compartilhar sua reflexão sobre a atividade. A solução atende corretamente ao objetivo do exercício, utilizando uma função lambda para selecionar apenas os elementos que satisfazem o critério de serem pares. Além disso, a escolha de utilizar split() para receber os dados e join() para exibir o resultado deixou o código simples e adequado para a proposta.

Sua interpretação do conceito também é interessante. De fato, o foco da atividade vai além de identificar números pares; trata-se de compreender como aplicar critérios para selecionar apenas os dados relevantes dentro de um conjunto maior de informações. Essa é uma habilidade bastante útil em diversas situações de programação e análise de dados.

Um detalhe que vale observar é que, na solução apresentada, os elementos permanecem como strings após o split(), sendo convertidos para inteiro apenas durante a verificação da lambda. Isso funciona perfeitamente para o exercício. Outra possibilidade seria converter todos os valores para inteiros antes da filtragem, dependendo da necessidade do projeto.

Pensando em evoluir esse exercício, como você adaptaria o uso do filter() para selecionar números dentro de uma faixa específica de valores, em vez de apenas números pares?

Parabéns pelo estudo e pela dedicação em explorar aplicações práticas dos conceitos aprendidos. Continue compartilhando suas análises e reflexões. O fórum está à disposição para novas discussões e aprendizados.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!