Analise o código Python 2.7 a seguirL=[10, 12, 14, 16] for ...
Analise o código Python 2.7 a seguir
L=[10, 12, 14, 16]
for k in range(4, -5,-1):
print L[k]
Esse programa causa
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
A alternativa correta é A - erro de sintaxe.
Justificação da Alternativa Correta:
O código fornecido está em Python 2.7 e apresenta um problema de sintaxe. Em Python, a indentação correta é crucial para definir blocos de código. No trecho:
L = [10, 12, 14, 16]
for k in range(4, -5, -1):
print L[k]
O comando print
deve ser indentado para indicar que ele está dentro do laço for
. Em Python 2.7, o comando print
não precisa de parênteses, mas a indentação é obrigatória. Portanto, o código correto seria:
L = [10, 12, 14, 16]
for k in range(4, -5, -1):
print L[k]
Alternativas Incorretas:
B - erro de execução: Esta alternativa está incorreta porque o erro ocorre antes mesmo da execução do código, isto é, durante a análise sintática.
C - a exibição de 4 valores, 16,14,12,10, nessa ordem: Esta alternativa está incorreta porque, além do problema de sintaxe, o índice k
varia de 4 até -5, o que causaria tentativas de acesso a posições inexistentes na lista L
, levando a um erro de execução.
D - a exibição de 8 valores, 16,14,12,10,16,14,12,10, nessa ordem: Esta alternativa está incorreta porque o intervalo range(4, -5, -1)
não gera 8 valores. Além disso, a lista L
tem apenas 4 elementos, e o código não pode acessá-los repetidamente dessa forma.
E - a exibição do valor 16, somente: Esta alternativa está incorreta porque, mesmo com a correção do problema de sintaxe, o laço for
tentaria acessar índices fora do intervalo da lista, resultando em um erro de execução.
Espero que esta explicação tenha esclarecido suas dúvidas. A compreensão correta da sintaxe e da lógica de indexação em listas é fundamental para evitar erros de execução e garantir que o código funcione conforme esperado.
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
Gabarito: A
Falta identação na linha do print para que fique dentro do FOR
SyntaxError: expected an indented block
E se for executar na versão 3.6.5 precisa de () no print tb
GABARITO A
obtive sucesso somente com o seguinte codigo:
>>> L=[10, 12, 14, 16]
>>> for a in range(3,0,-1):
print(L[a])
16
14
12
Na verdade o print está certo. Ele fala python 2.7 e não 3.6
O problema está no valor inicial do range (4). Como os valores tem o índice começando em 0, não há registro com índice 4. Por isso o erro: IndexError: list index out of range
índice:
0: 10
1: 12
2: 14
3: 16
Caso rodem na versão 2.7, não precisa colocar os parenteses no print, já na versão 3.6, precisa.
É preciso identar o print também
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo