Pular para o conteúdo principal

Questão de Programação — Linguagens de programação — CESPE / CEBRASPE 2024

ProgramaçãoLinguagens de programação
Código
ce171008
Banca
CESPE / CEBRASPE
Órgão
CNJ
Ano
2024
Nível
Médio
Cargo
Técnico Judiciário - Área Apoio Especializado - Especialidade: Programação de Sistemas

Q77_78.png (438×442)

Tendo como referência o código precedente, julgue o item que se segue, em relação à linguagem de programação Python.De acordo com o código, são inseridas múltiplas linhas no banco de dados sem que seja necessário abrir o arquivo a cada nova inserção.
  1. CCerto
  2. EErrado
Revelar gabarito e comentário

GabaritoC — Certo

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

Python: leitura de arquivo e inserção em banco de dados

Gabarito: letra C (CERTO). O código abre o arquivo data.txt uma única vez, antes do laço for, e dentro do laço executa a inserção de cada linha no banco de dados. Como a abertura do arquivo está fora do laço, não é necessário abri-lo a cada nova inserção — a afirmação está correta.

O trecho central do código é:

with open('data.txt', 'r') as file:
    for line in file:
        cursor.execute(query, (line,))

A instrução with open(...) abre o arquivo uma única vez e o mantém aberto durante todo o bloco. O laço for line in file itera sobre cada linha do arquivo, e para cada linha executa cursor.execute(...), que insere a linha no banco de dados. Como a abertura do arquivo está fora do laço, o arquivo é aberto apenas uma vez, e todas as inserções são feitas dentro do mesmo contexto de arquivo aberto.

A pergunta explora o entendimento de que o arquivo é aberto uma única vez, e não a cada iteração. Se a abertura do arquivo estivesse dentro do laço, aí sim seria necessário abrir o arquivo a cada inserção. Mas não é o caso aqui.

A pegadinha da banca é justamente essa: o candidato pode pensar que, por haver um laço, o arquivo seria aberto várias vezes. Mas a estrutura do código mostra claramente que a abertura é feita uma única vez, antes do laço.

  1. 1Abre arquivo (with open)
  2. 2Laço for itera linhas
  3. 3cursor.execute insere cada linha
  4. 4Fecha arquivo ao sair do bloco
LEVEL · soulevel.com.br

Alternativa C — ✅ Correto ⟵ GABARITO

A afirmação está correta. O código abre o arquivo data.txt uma única vez, antes do laço for, e dentro do laço executa a inserção de cada linha no banco de dados. Como a abertura do arquivo está fora do laço, não é necessário abri-lo a cada nova inserção.

PEGA ESSA DICA!

Para identificar se um arquivo é aberto uma única vez ou várias, observe a posição da instrução de abertura (open ou with open) em relação ao laço. Se estiver fora do laço, abre uma vez; se estiver dentro, abre a cada iteração.

Gabarito: letra C

Link permanente: /questoes/ce171008