Analise o código Python 2.7 a seguirL=[10, 12, 14, 16] for ...

Próximas questões
Com base no mesmo assunto
Q914392 Programação

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

Alternativas

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