Pular para o conteúdo principal

Questão de Programação — Python — FGV 2024

ProgramaçãoPython
Código
fg086422
Banca
FGV
Órgão
INPE
Ano
2024
Nível
Superior
Cargo
Tecnologista Pleno I - Processamento de Alto Desempenho – PAD (HPC)
Considere o trecho de código dado abaixo escrito na linguagem de programação Python, com uso da biblioteca para computação científica NumPy.Imagem associada para resolução da questãoEstá correto o que se afirma em:
  1. AI, apenas.
  2. BII, apenas.
  3. CI e II, apenas.
  4. DI e III, apenas.
  5. EI, II e III.
Revelar gabarito e comentário

GabaritoA — I, apenas.

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”.

NumPy: operações com arrays e indexação

Gabarito: letra A. Apenas a afirmativa I está correta. O trecho de código apresentado utiliza a biblioteca NumPy para criar um array e realizar operações de indexação e fatiamento (slicing), e a afirmativa I descreve corretamente o resultado da operação de fatiamento arr[1:4], que retorna os elementos das posições 1, 2 e 3 do array. As afirmativas II e III estão incorretas porque descrevem resultados que não correspondem ao que o código efetivamente produz.

O NumPy é uma biblioteca fundamental para computação científica em Python, projetada para trabalhar com arrays multidimensionais de forma eficiente. Um array NumPy (objeto ndarray) é uma estrutura de dados homogênea que permite operações vetorizadas, ou seja, operações aplicadas a todos os elementos de uma só vez, sem a necessidade de loops explícitos. A criação de um array é feita pela função np.array(), que aceita listas, tuplas ou outros objetos iteráveis como argumento.

A indexação em arrays NumPy segue a mesma lógica das listas Python: o primeiro elemento está na posição 0, e índices negativos contam a partir do final. O fatiamento (slicing) é feito com a sintaxe arr[início:fim], onde o elemento na posição início é incluído e o elemento na posição fim é excluído. Por exemplo, se arr = np.array([10, 20, 30, 40, 50]), então arr[1:4] retorna array([20, 30, 40]), pois inclui os índices 1, 2 e 3, mas não o 4.

A afirmativa I está correta porque descreve exatamente esse comportamento: o fatiamento arr[1:4] retorna os elementos das posições 1, 2 e 3. A afirmativa II está incorreta porque afirma que o fatiamento retorna os elementos das posições 0, 1 e 2, o que seria o resultado de arr[0:3], não de arr[1:4]. A afirmativa III está incorreta porque afirma que o fatiamento retorna os elementos das posições 2, 3 e 4, o que seria o resultado de arr[2:5], não de arr[1:4].

A pegadinha desta questão está na confusão entre os índices de início e fim do fatiamento. Muitos candidatos esquecem que o índice final é exclusivo, ou seja, o elemento na posição fim não é incluído. Além disso, é comum confundir a posição inicial, achando que o fatiamento começa no índice 0. Para evitar esse erro, é importante lembrar que arr[início:fim] inclui o elemento na posição início e exclui o elemento na posição fim.

NÃO CAIA NESSA!

A banca explora a confusão entre os índices de início e fim do fatiamento. Muitos candidatos esquecem que o índice final é exclusivo, ou seja, o elemento na posição fim não é incluído. Além disso, é comum confundir a posição inicial, achando que o fatiamento começa no índice 0. Para evitar esse erro, é importante lembrar que arr[início:fim] inclui o elemento na posição início e exclui o elemento na posição fim.

  1. 1Inclui início
  2. 2Exclui fim
  3. 3arr[1:4] → índices 1,2,3
LEVEL · soulevel.com.br

Alternativa A — ✅ Correta ⟵ GABARITO

A afirmativa I está correta porque descreve exatamente o comportamento do fatiamento arr[1:4], que retorna os elementos das posições 1, 2 e 3 do array. As afirmativas II e III estão incorretas, portanto apenas a afirmativa I é verdadeira.

Alternativa B — ❌ Incorreta

A afirmativa II está incorreta porque afirma que o fatiamento arr[1:4] retorna os elementos das posições 0, 1 e 2. Isso seria o resultado de arr[0:3], não de arr[1:4]. O fatiamento começa no índice 1, não no índice 0.

Alternativa C — ❌ Incorreta

A afirmativa II está incorreta, como explicado acima. Portanto, a combinação I e II não pode ser correta.

Alternativa D — ❌ Incorreta

A afirmativa III está incorreta porque afirma que o fatiamento arr[1:4] retorna os elementos das posições 2, 3 e 4. Isso seria o resultado de arr[2:5], não de arr[1:4]. O fatiamento começa no índice 1, não no índice 2.

Alternativa E — ❌ Incorreta

As afirmativas II e III estão incorretas, como explicado acima. Portanto, a combinação I, II e III não pode ser correta.

Gabarito: letra A

Link permanente: /questoes/fg086422