Questão de Programação — Python — Quadrix 2025
- Código
- qg603279
- Banca
- Quadrix
- Órgão
- SEDF
- Ano
- 2025
- Nível
- Superior
- Cargo
- Professor de Educação Básica: Eletrônica
- CCerto
- EErrado
GabaritoE — Errado
Gabarito: ERRADO. Em Python, tuplas são sequências imutáveis, mas suportam fatiamento (slicing) normalmente. A expressão (1, 2)[1:] retorna a tupla (2,), sem qualquer erro. O erro TypeError ocorreria apenas se houvesse tentativa de atribuição a um elemento da tupla, como (1, 2)[0] = 5 — aí sim a mensagem seria TypeError: 'tuple' object does not support item assignment. A afirmação do enunciado confunde imutabilidade (não poder alterar elementos) com incapacidade de fatiar (que é uma operação de leitura, permitida).
O fatiamento é uma operação fundamental em Python, aplicável a todas as sequências — strings, listas e tuplas. A sintaxe sequencia[inicio:fim:passo] cria uma nova sequência com os elementos selecionados, sem modificar a original. No caso de tuplas, o resultado do fatiamento é sempre uma nova tupla. Por exemplo:
tupla = (1, 2, 3, 4, 5)
print(tupla[1:]) # (2, 3, 4, 5)
print(tupla[:3]) # (1, 2, 3)
print(tupla[::2]) # (1, 3, 5)
print(tupla[::-1]) # (5, 4, 3, 2, 1)Todos esses comandos funcionam perfeitamente. A imutabilidade da tupla significa apenas que não se pode alterar, adicionar ou remover elementos após a criação — mas ler, fatiar, concatenar e iterar são operações perfeitamente válidas. O erro TypeError citado no enunciado é típico de tentativas de atribuição a um índice, como tupla[0] = 10, que gera a mensagem TypeError: 'tuple' object does not support item assignment.
A confusão entre "imutável" e "não suporta fatiamento" é uma pegadinha clássica em provas de Python. O candidato que sabe que tuplas são imutáveis pode erroneamente concluir que elas não podem ser fatiadas. Na verdade, a imutabilidade diz respeito à modificação dos elementos, não à leitura deles. O fatiamento é uma operação de leitura que cria uma nova sequência, portanto é totalmente compatível com a natureza imutável das tuplas.
Para fixar: imutabilidade ≠ não suporta fatiamento. Tuplas suportam todas as operações de leitura de sequências (indexação, fatiamento, concatenação, repetição, in, len(), iteração). O que não podem é ser modificadas in-place. Essa distinção é exatamente o que a banca explora nesta questão.
A afirmação de que (1, 2)[1:] resultará em TypeError porque tuplas não suportam fatiamento é falsa. Tuplas suportam fatiamento normalmente. A expressão (1, 2)[1:] retorna a tupla (2,) — um fatiamento válido que extrai os elementos do índice 1 até o final. O erro TypeError só ocorreria em tentativas de atribuição a elementos da tupla, como (1, 2)[0] = 5, que gera TypeError: 'tuple' object does not support item assignment. A banca trocou o conceito de imutabilidade (não pode modificar) por incapacidade de fatiar (que é uma operação de leitura, permitida).
Para não cair nessa pegadinha, lembre-se: imutável significa que não se pode alterar os elementos, mas todas as operações de leitura (indexação, fatiamento, concatenação, iteração) são permitidas. Se a alternativa disser que tuplas não suportam fatiamento, está errada. O TypeError de tupla só aparece em tentativas de atribuição (tupla[0] = x).
Gabarito: ERRADO — a afirmação está incorreta, pois tuplas suportam fatiamento.
Link permanente: /questoes/qg603279