Questão nº 45
Questão de Administração de Banco de Dados · FGV MPAL 2018 (nº 45)
Analise o código Python 2.7 a seguir.
```
L1=[]
L2=[1,2,3,4]
for k in range(3, -4,-1):
L1.append(L2[k])
for x in L:
print x
```
Esse programa causa
- Aerro de sintaxe.
- Berro de execução. (alternativa correta)
- Ca exibição dos valores 4,3,2,1,4,3,2 nessa ordem.
- Da exibição do valor 4, somente.
- Ea exibição dos valores 4,3,2,1 nessa ordem.
Resposta comentada
Gabarito Alternativa B
Uma lista em Python é uma sequência ordenada de elementos, e cada elemento pode ser acessado por um índice, que é um número que indica sua posição (começando do 0 para o primeiro elemento). Um erro de execução (ou runtime error) acontece quando o programa tenta fazer algo que não é permitido enquanto está rodando, como tentar usar uma variável que não foi definida.
- (A) Incorreta: O código não possui erros de sintaxe. A estrutura dos laços
for, a criação de listas e a chamada de métodos comoappenderangeestão corretas para Python 2.7. - (B) Correta: O programa causa um erro de execução do tipo
NameError. Na linhafor x in L:, a variávelLnão foi definida em nenhum momento do código. As listas definidas sãoL1eL2. O interpretador Python não encontrará a variávelLe levantará um erro ao tentar iterar sobre ela. - (C) Incorreta: Esta seria a saída se a linha
for x in L:fosse corrigida parafor x in L1:e o programa executasse sem erros. O primeiro laçofor k in range(3, -4, -1)adicionaria os elementosL2[3],L2[2],L2[1],L2[0],L2[-1],L2[-2],L2[-3]aL1. Isso resultaria emL1sendo[4, 3, 2, 1, 4, 3, 2]. A armadilha aqui é que a banca espera que o aluno se concentre na lógica dorangee dos índices negativos, mas ignore o erro mais fundamental da variável indefinida. - (D) Incorreta: O conteúdo de
L1após o primeiro laço não seria apenas o valor 4. - (E) Incorreta: O conteúdo de
L1após o primeiro laço não seria apenas os valores 4,3,2,1.
Fonte: FGV MPAL 2018 Analista do Ministério Público - Administrador de Banco de Dados (Caderno Tipo 1). Reproduzida para fins de estudo.