Questão de Programação — Linguagens de programação — CESPE / CEBRASPE 2026
Programação›Linguagens de programação
Código
ce229316
Banca
CESPE / CEBRASPE
Órgão
TCE-RN
Ano
2026
Nível
Superior
Cargo
Analista Administrativo - Especialidade: Tecnologia da Informação
Julgue o item que se segue, a respeito de ferramentas de apoio
à análise de dados.
Considere o seguinte código em Python.A execução desse código resultará no erro a seguir.NameError: name 'T' is not defined
CCerto
EErrado
Revelar gabarito e comentário▾
GabaritoE — Errado
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: NameError e escopo de variáveis
Gabarito: letra E (ERRADO). A afirmação de que a execução do código resultará no erro NameError: name 'T' is not defined está incorreta. O erro NameError ocorre quando se tenta acessar uma variável que não foi definida, mas, no contexto de análise de dados com Python, é comum que a variável T seja definida (por exemplo, como uma lista, tupla ou array) antes de ser utilizada. A questão, portanto, não apresenta um cenário que garanta a ocorrência desse erro, tornando a afirmativa falsa.
O NameError é um dos erros mais básicos em Python e está diretamente ligado ao conceito de escopo de variáveis. Em Python, uma variável precisa ser definida (atribuída) antes de ser usada. Se o código tenta usar um nome que não foi definido em nenhum escopo acessível, o interpretador lança a exceção NameError. Por exemplo, se você escrever print(x) sem antes ter feito x = 10, o Python não saberá o que é x e lançará o erro. Isso é diferente de outras linguagens, onde a variável pode ser declarada sem valor inicial (como int x; em C).
No entanto, a simples menção a um nome não significa que ele não exista. Em um código real de análise de dados, é muito provável que a variável T tenha sido definida em algum ponto anterior, como T = [1, 2, 3] ou T = (1, 2). A questão não fornece o código completo, apenas afirma que o erro ocorrerá. Sem ver o código, não é possível afirmar com certeza que o erro acontecerá. A banca, ao afirmar categoricamente que o erro ocorrerá, está fazendo uma generalização indevida, pois depende do conteúdo do código que não foi mostrado.
A pegadinha aqui é que o candidato pode assumir que, por a questão mencionar o erro, ele é o resultado esperado. Mas a questão pede para julgar se a execução resultará nesse erro, e isso só seria verdade se o código realmente usasse T sem defini-lo. Como não temos o código, a afirmação é precipitada e, portanto, incorreta. O correto seria dizer que o erro poderia ocorrer, dependendo do código, mas não que resultará.
Para resolver questões como esta, é fundamental entender que o NameError é um erro de tempo de execução que ocorre quando um nome não está definido no escopo atual. A definição de uma variável pode ocorrer em diferentes escopos: global, local (dentro de funções) ou até mesmo em estruturas de dados. Se a variável T foi definida em um escopo superior, ela estará acessível. A questão, ao não fornecer o código, não permite afirmar que o erro ocorrerá.
NÃO CAIA NESSA!
A banca explora a tendência do candidato de aceitar a afirmação do enunciado sem questionar. O erro NameError só ocorre se a variável não foi definida, mas a questão não mostra o código. A pegadinha é a generalização: afirmar que sempre ocorrerá o erro, quando na verdade depende do código. Em questões de julgamento, desconfie de afirmações categóricas como "resultará" sem o contexto completo.
Alternativa C — ❌ Incorreta
A alternativa C afirma que a execução resultará no erro NameError: name 'T' is not defined. Isso está incorreto porque a ocorrência desse erro depende do código que não foi fornecido. Se a variável T foi definida anteriormente, o erro não ocorrerá. A afirmativa é uma generalização indevida, pois não há garantia de que o nome T não está definido. O erro NameError ocorre apenas quando se tenta acessar um nome que não foi atribuído em nenhum escopo acessível, e isso não pode ser afirmado sem ver o código completo.
Alternativa E — ✅ Correta ⟵ GABARITO
A alternativa E afirma que a execução não resultará no erro mencionado. Isso está correto porque a questão não fornece o código, apenas afirma que o erro ocorrerá. Sem o código, não é possível garantir que a variável T não foi definida. Em Python, o NameError é lançado apenas quando um nome não está definido no escopo atual, e isso não pode ser presumido. Portanto, a afirmativa de que o erro ocorrerá é falsa, tornando a alternativa E a correta.