Pular para o conteúdo principal

Questão de Programação — Linguagens de programação — INSTITUTO AOCP 2024

ProgramaçãoLinguagens de programação
Código
qg262952
Banca
INSTITUTO AOCP
Órgão
TRF - 2ª REGIÃO
Ano
2024
Nível
Superior
Cargo
Analista Judiciário - Área Apoio Especializado - Estatística
Considere que um estatístico construiu o seguinte código em Python para ler um conjunto de cinco números inteiros:Imagem associada para resolução da questãoO algoritmo solicita ao usuário para digitar um número de cada vez e, após o último número ser digitado, o algoritmo imprime na tela o conjunto dos 5 números inteiros digitados. O código em Python apresentado contém um erro. Assinale a alternativa que conserta o código e permite a execução dessas tarefas descritas.
  1. Anumeros.append(numeros)
  2. Bexcept Value:
  3. Creturn ler_numeros
  4. Dnum = int(type(f"Digite o número {i + 1}: "))
  5. Eprint(f"Números digitados: {ler_numeros}")
Revelar gabarito e comentário

GabaritoD — num = int(type(f"Digite o número {i + 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”.

Python: Entrada de Dados e Conversão de Tipos

Gabarito: letra D. O erro do código está na conversão do valor digitado para inteiro: a função input() sempre retorna uma string, e a conversão correta em Python é feita com int(...), não com type(...). A alternativa D conserta o código ao substituir type por int, permitindo que o valor digitado seja convertido para número inteiro e armazenado na lista.

O código apresentado tem a intenção de ler cinco números inteiros, armazená-los em uma lista e, ao final, imprimir o conjunto. Para isso, é essencial que cada valor digitado pelo usuário seja convertido de string para inteiro. Em Python, a função input() retorna uma string, e a conversão para inteiro é feita pela função embutida int(). A função type() é usada para retornar o tipo de um objeto, não para converter valores. Portanto, a linha num = type(f"Digite o número {i + 1}: ") está incorreta, pois tenta usar type() como se fosse uma função de conversão, o que resultaria em um erro de execução ou em um comportamento inesperado.

A alternativa D propõe num = int(f"Digite o número {i + 1}: "), que é a forma correta de converter a string retornada por input() em um inteiro. No entanto, é importante notar que a mensagem exibida ao usuário deve ser passada como argumento para input(), não para int(). O código correto seria num = int(input(f"Digite o número {i + 1}: ")). A alternativa D, como apresentada, ainda contém um erro de sintaxe, pois int() não recebe a mensagem como argumento. Mas, considerando o contexto da questão, a alternativa D é a que mais se aproxima da correção necessária, pois troca type por int, que é a função de conversão adequada.

As demais alternativas apresentam erros claros: numeros.append(numeros) adicionaria a própria lista a ela mesma, criando uma referência circular; except Value: é uma sintaxe inválida para tratamento de exceções (o correto é except ValueError:); return ler_numeros não faz sentido fora de uma função; e print(f"Números digitados: {ler_numeros}") imprime a função em vez da lista de números.

A pegadinha desta questão está em reconhecer que type() não é uma função de conversão, mas sim uma função que retorna o tipo de um objeto. O candidato que confunde type() com int() acaba marcando a alternativa D, que é a única que propõe a conversão correta, mesmo que de forma incompleta.

Alternativa A — ❌ Incorreta

numeros.append(numeros) adicionaria a própria lista numeros como um elemento dentro dela mesma, criando uma lista aninhada e infinita. Isso não resolve o problema de conversão de tipos e ainda corrompe a estrutura de dados. O correto seria numeros.append(num), onde num é o valor inteiro lido.

Alternativa B — ❌ Incorreta

except Value: é uma sintaxe inválida em Python. A exceção correta para erros de conversão de tipos é ValueError, e a sintaxe correta é except ValueError:. Além disso, a questão não menciona tratamento de exceções, então essa alternativa não se aplica ao problema apresentado.

Alternativa C — ❌ Incorreta

return ler_numeros só faz sentido dentro de uma função, e o código apresentado não define uma função. Além disso, retornar a função ler_numeros (que é o nome da função, não a lista) não resolve o problema de conversão de tipos. O correto seria retornar a lista numeros após o loop.

Alternativa D — ✅ Correta ⟵ GABARITO

A alternativa D propõe num = int(f"Digite o número {i + 1}: "), que substitui type por int, a função correta para converter uma string em inteiro. Embora a sintaxe completa correta seja num = int(input(f"Digite o número {i + 1}: ")), a alternativa D é a única que aponta para a conversão correta, que é o erro central do código. As demais alternativas não abordam a conversão de tipos, que é o problema fundamental.

Alternativa E — ❌ Incorreta

print(f"Números digitados: {ler_numeros}") imprime a representação da função ler_numeros em vez da lista de números. O correto seria print(f"Números digitados: {numeros}"), onde numeros é a lista que contém os valores lidos. Essa alternativa não corrige o erro de conversão de tipos e ainda apresenta um erro de referência.

Gabarito: letra D

Link permanente: /questoes/qg262952