Questão de Programação — Python — Quadrix 2024
- Código
- qg354242
- Banca
- Quadrix
- Órgão
- IBICT
- Ano
- 2024
- Nível
- Superior
- Cargo
- Tecnologista - Tecnologia da Informação
- CCerto
- EErrado
GabaritoE — Errado
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 |
|---|---|---|---|
| Início de cada iteração | Não aplicável (Python usa |
|
| Início de cada iteração |
|
|
| Final de cada iteração | Não existe em Python |
|
| Implícito (esgota a sequência) |
| 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.
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