Pular para o conteúdo principal

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

ProgramaçãoPython
Código
qg354242
Banca
Quadrix
Órgão
IBICT
Ano
2024
Nível
Superior
Cargo
Tecnologista - Tecnologia da Informação
Quanto às linguagens PHP e Python, à estrutura e às construções básicas de um programa e ao controle de fluxo de programas e repetição, julgue o item.Nas estruturas FOR, o teste da condição somente ocorre no início da estrutura de repetição.
  1. CCerto
  2. 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”.

Estruturas de repetição FOR: onde o teste da condição ocorre

Gabarito: E — ERRADO. A afirmação está incorreta porque, nas estruturas FOR, o teste da condição não ocorre somente no início da estrutura de repetição. Em linguagens como Python e PHP, o laço FOR pode ter o teste da condição avaliado em diferentes momentos, dependendo da sintaxe e do tipo de laço utilizado. Por exemplo, em Python, o for itera sobre uma sequência e a condição de parada é implicitamente verificada a cada iteração, enquanto em PHP, o for clássico testa a condição no início, mas existem variações como o do...while que testa no final. A afirmação generaliza de forma incorreta, pois não considera essas variações.

O laço for é uma estrutura de repetição que permite executar um bloco de código várias vezes. Em Python, o for é utilizado para iterar sobre uma sequência (como listas, tuplas, strings) e a condição de parada é determinada pelo esgotamento da sequência. O teste da condição ocorre implicitamente a cada iteração, mas não é um teste explícito como em outras linguagens. Em PHP, o for clássico tem a sintaxe for (inicialização; condição; incremento), onde a condição é testada no início de cada iteração. No entanto, existem outras estruturas de repetição, como o while e o do...while, que testam a condição em momentos diferentes: o while testa no início, e o do...while testa no final, garantindo que o bloco seja executado pelo menos uma vez.

A afirmação da questão é uma generalização indevida, pois afirma que "nas estruturas FOR, o teste da condição somente ocorre no início da estrutura de repetição". Isso é verdadeiro para o for clássico em linguagens como C, Java e PHP, mas não é verdadeiro para todas as estruturas FOR, especialmente em Python, onde o for não tem uma condição explícita de parada, mas sim uma iteração sobre uma sequência. Além disso, a afirmação não menciona que existem outras estruturas de repetição com comportamentos diferentes, como o do...while, que testa a condição no final. Portanto, a afirmação é errada.

Para entender melhor, vamos comparar as principais estruturas de repetição:

Estrutura

Momento do teste da condição

Exemplo em Python

Exemplo em PHP

for (clássico)

Início de cada iteração

Não aplicável (Python usa for...in)

for ($i = 0; $i < 10; $i++)

while

Início de cada iteração

while (condicao):

while (condicao) { }

do...while

Final de cada iteração

Não existe em Python

do { } while (condicao);

for...in (Python)

Implícito (esgota a sequência)

for x in lista:

Não aplicável

A pegadinha da banca está em generalizar o comportamento do for clássico para todas as estruturas FOR, ignorando as variações entre linguagens e a existência de outras estruturas de repetição. O candidato que conhece apenas o for clássico pode marcar "Certo", mas a afirmação é incorreta porque não é universal.

Alternativa E — ❌ Incorreta ⟵ GABARITO

A afirmação está errada porque generaliza o comportamento do for clássico (que testa a condição no início) para todas as estruturas FOR, ignorando que em Python o for itera sobre uma sequência sem condição explícita, e que existem outras estruturas como o do...while que testam a condição no final. A banca explora a confusão entre o for tradicional e o for...in do Python, além de não considerar as variações entre linguagens.

Gabarito: E — ERRADO.

Link permanente: /questoes/qg354242