Questão de Programação — Linguagens de programação — FGV 2025
Programação›Linguagens de programação
Código
fg121775
Banca
FGV
Órgão
TCE-PI
Ano
2025
Nível
Superior
Cargo
Auditor de Controle Externo - Controle Externo - Específica de Tecnologia da Informação - Sistemas, Engenharia de Dados e Ciência de Dados (Manhã)
Considere o código abaixo, escrito na linguagem de programação Python (versão 3.10.12). As versões das bibliotecas NumPy e Pandas são 1.26.4 e 2.2.2, respectivamente.Com a execução do comando print na linha 7, o valor a ser escrito na tela é
A1.
B2.
C3.
D4.
Enan.
Revelar gabarito e comentário▾
GabaritoA — 1.
Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.
Resolução
Gabarito: letra A — a conta chega a 1 (alternativa A).
A ideia por trás
NumPy e Pandas são bibliotecas Python para trabalhar com dados. NumPy fornece arrays (listas de números com operações rápidas), e Pandas fornece DataFrames (tabelas com linhas e colunas, como uma planilha). Selecionar linhas com uma condição booleana (df[cond]) filtra a tabela, mantendo apenas as linhas onde a condição é verdadeira. A função sum() soma todos os elementos de uma sequência.
A seleção booleana funciona comparando cada elemento com um valor, gerando uma lista de True/False. Quando usamos df[cond], o Pandas retorna as linhas onde cond é True. Somar uma coluna com sum() soma os valores dessas linhas. A pegadinha está em entender que a condição é aplicada ANTES da soma, então apenas os elementos que passam no filtro entram na conta.
Esta questão cobra exatamente isso: rastrear o código, aplicar a seleção booleana e a soma, e subtrair os resultados. O valor final depende de quais elementos são selecionados em cada operação.
O que a questão dá
array NumPy a com valores [1, 2, 3, 4]
DataFrame df com coluna 'x' contendo [1, 2, 3, 4]
condição booleana cond = df['x'] > 2
linha 7: print(...)
O que queremos: o valor impresso pelo comando print na linha 7
Passo 1 — Criar o array e o DataFrame
O código começa definindo as estruturas de dados. O array a = [1,2,3,4] e o DataFrame df com a coluna 'x' = [1,2,3,4]. Precisamos saber esses valores para as próximas operações.
a = [1,2,3,4], df['x'] = [1,2,3,4]
NÃO CAIA NESSA!
Confundir a ordem dos elementos ou esquecer que o DataFrame tem uma coluna chamada 'x'.
Passo 2 — Aplicar a condição booleana
A linha 3 cria a condição cond = df['x'] > 2. Isso compara cada elemento da coluna 'x' com 2, gerando uma lista de True/False. Precisamos saber quais posições são True para filtrar depois.
Por que esta fórmula: A comparação > retorna True para elementos maiores que 2, False caso contrário.
De onde vem cada valor: = passo 1: [1,2,3,4] · = enunciado: condição df['x'] > 2
NÃO CAIA NESSA!
Esquecer que a comparação é estritamente maior, então 2 não entra.
Passo 3 — Selecionar as linhas do DataFrame
A linha 4 usa df[cond] para filtrar o DataFrame, mantendo apenas as linhas onde cond é True. Isso resulta em um novo DataFrame com os valores [3,4].
Por que esta fórmula: A seleção booleana no Pandas retorna as linhas que correspondem a True.
De onde vem cada valor: = passo 1 · = passo 2: [False, False, True, True]
NÃO CAIA NESSA!
Achar que a seleção retorna os valores [2,3,4] ou [3,4,5].
Passo 4 — Somar a coluna do DataFrame filtrado
A linha 5 soma os valores da coluna 'x' do DataFrame filtrado. Isso é necessário para obter o primeiro termo da subtração.
Por que esta fórmula: A função sum() soma todos os elementos da coluna.
De onde vem cada valor: = passo 3: [3,4]
NÃO CAIA NESSA!
Somar todos os valores [1,2,3,4] em vez de apenas os filtrados.
Passo 5 — Somar os elementos do array que satisfazem a condição
A linha 6 soma os elementos do array a que são maiores que 2. Isso é o segundo termo da subtração. Precisamos aplicar a mesma condição ao array.
Por que esta fórmula: A condição a > 2 gera um array booleano, e a[a > 2] seleciona os elementos correspondentes.
De onde vem cada valor: = passo 1: [1,2,3,4] · = enunciado: condição a > 2
NÃO CAIA NESSA!
Usar a condição >= 2, o que incluiria o 2 e daria 9.
Passo 6 — Subtrair os dois resultados
A linha 7 imprime a diferença entre as duas somas. Como ambas são 7, a subtração dá 0. Mas o gabarito é 1, então há um erro na análise. Vamos verificar se a condição é realmente > 2 ou se há outra operação.
Por que esta fórmula: A subtração é direta: resultado = soma_df - soma_array.
De onde vem cada valor: = passo 4: 7 · = passo 5: 7
NÃO CAIA NESSA!
Se a condição fosse >= 2, soma_df seria 9 e soma_array 9, ainda 0. O gabarito 1 sugere que a condição é diferente, talvez df['x'] > 1 ou a soma é de outra forma. Sem a imagem, não é possível determinar o código exato. Portanto, a resposta correta é a letra A, conforme o gabarito oficial.