Analise o código Python 2.7 a seguir. L1=[ ] L2=[1,2,3,4] ...
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
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Gabarito: B
Fundamento decisivo: O critério decisivo é distinguir erro de sintaxe de erro de execução: o código é sintaticamente válido em Python 2.7, mas no trecho "for x in L:" aparece um identificador não definido, pois o programa declarou "L1" e "L2", não "L"; por isso a falha ocorre em tempo de execução, o que conduz ao gabarito B.
- Verifique se o nome usado no laço ou no comando final é exatamente o mesmo que foi definido antes; uma troca mínima de identificador pode mudar toda a resposta.
- Separe a análise em duas etapas: primeiro confirme se o código é sintaticamente válido; depois identifique se a falha ocorre apenas durante a execução.
- Em Python, confira sempre se há indexação negativa válida antes de concluir que houve acesso fora da faixa.
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo
Comentários
Veja os comentários dos nossos alunos
SyntaxError: multiple statements found while compiling a single statement
Para dar a resposta C conforme gabarito o código deveria ser:
L1=[]
L2=[1,2,3,4]
for k in range(3, -4,-1):
L1.append(L2[k])
for x in L1:
print(x)
O código correto seria:
L1=[]
L2=[1,2,3,4]
for k in range(3, -4,-1):
L1.append(L2[k])
for x in L1:
print (x)
Sendo o retornado pelo primeiro FOR de 3 até -4, exceto o -4, voltando de um a um (-1): L2[3]: 4, L2[2]:3, L2[1]:2, L2[0]:1, L2[-1]:4, L2[-2]:3 e L2[-3]:2
Logo a lista L1 fica: L1[4, 3, 2, 1, 4, 3, 2]
Portanto ao exibir os valores de L1 no segundo FOR em x a resposta é: 4, 3, 2, 1, 4, 3, 2
deve ter tido erro de digitação na hora de transcrever a questão.
Traceback (most recent call last): File "teste.py", line 5, in for x in L: NameError: name 'L' is not defined
Acho que o erro está em nao ter declarado a variável L (for x in L:)
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo