Questão FC331189
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
Linguagens de Programação
FGV · 2018
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
- erro de sintaxe.
- erro de execução.
- a exibição dos valores 4,3,2,1,4,3,2 nessa ordem.
- a exibição do valor 4, somente.
- a exibição dos valores 4,3,2,1 nessa ordem.
Mostrar resposta e comentário
Gabarito
B
Comentário do professor
O código gera erro de execução porque, ao final, o laço faz for x in L: e não existe variável chamada L definida no programa. Isso provoca um NameError em tempo de execução: o interpretador não encontra o nome referenciado.
Antes desse ponto, as instruções que preenchem L1 executam normalmente. A expressão range(3, -4, -1) produz os índices 3, 2, 1, 0, -1, -2, -3, e o acesso por índice negativo em L2 é válido, de modo que L1 terminaria como [4, 3, 2, 1, 4, 3, 2].
Porém, esse sucesso é interrompido quando o código tenta iterar sobre L. Em Python, usar um nome inexistente num laço de iteração causa o erro citado, razão pela qual a alternativa correta é erro de execução.
Conteúdo do catálogo FC Concursos · Atualizado em