Analise o código Python a seguir.O resultado da execução des...

Próximas questões
Com base no mesmo assunto
Q2447899 Programação
Analise o código Python a seguir.

Imagem associada para resolução da questão


O resultado da execução desse código, na ordem, é: 
Alternativas

Comentários

Veja os comentários dos nossos alunos

Uma dica boa pra essas questões de loop é você olhar bem o que está dentro do FOR e depois dar uma olhada nas alternativas, pois talvez com isso você já consiga responder as questões.

(4, -4, 1), isso significa que ele vai começar com k = 4 e ir diminuindo 1 até chegar em -3.

4, 3, 2, 1, 0, -1, -2, -3

Como dentro do for ele só está printando algum valor que é uma soma de 2 números, pra essa questão pouco importa o resultado dessa soma, você só precisa saber que ele vai printar um número 8 vezes.

A única alternativa que printa um número 8 vezes é a C.

Em complemento ao comentário do nosso colega Joker, essa lista está sendo percorrida de trás pra frente e em ambos os sentidos. Isso podemos constatar ao perceber que o range vai do 4º elemento da lista até o -4. Como ela atribui um step -1, sabemos que a passagem se dará de trás pra frente.

O len de L será sempre 5, pois temos 5 elementos na lista L = [0, 1, 1, 2, 3]

print (L[k] + L[k%len(L)]

Isso quer dizer que ele vai imprimir o elemento do range + a soma desse elemento com o resto da divisão desse elemento pelo tamanho do range (que sempre será 5).

Primeira passagem: 5º (último) elemento da lista:

3 + 3/5 = 3+3 = 6

Lembre-se que o -1 (step) contará a lista de trás pra frente.

Segunda passagem: 4º elemento da lista:

2 + 2/5 = 2+2 = 4

Terceira passagem: 3º elemento da lista:

1 + 1/5 = 1+1 = 2

Quarta passagem: 2º elemento da lista:

1 + 1/5 = 1+1 = 2

Quinta passagem: 1º elemento da lista:

0 + 0/5 = 0+0 = 0

Lembra que a lista é percorrida em ambos os lados? Então!

Sexta passagem: -1 (último) elemento da lista

3 + 3/5 = 3+3 = 6

Sétima passagem: -2 (penúltimo elemento da lista)

2 + 2/5 = 2+2 = 4

Oitava passagem: -3 (antepenúltimo elemento da lista)

1 + 1/5 = 1+1 = 2

Como a lista vai de 4 a -4, em Python, o elemento -4 não é contado, isso é, vamos até o elemento -3. Isso imprime na tela 6.4.2.2.0.6.4.2.

Gabarito: C

Aqui estão os detalhes de cada iteração:

k = 4: L[4] + L[4 % 5] → 3 + 3 = 6

k = 3: L[3] + L[3 % 5] → 2 + 2 = 4

k = 2: L[2] + L[2 % 5] → 1 + 1 = 2

k = 1: L[1] + L[1 % 5] → 1 + 1 = 2

k = 0: L[0] + L[0 % 5] → 0 + 0 = 0

k = -1: L[-1] + L[-1 % 5] → 3 + 4 = 7 (porém, L[-1] é o último elemento, então consideramos 3 + 3 = 6)

k = -2: L[-2] + L[-2 % 5] → 2 + 3 = 5 (porém, L[-2] é o penúltimo elemento, então consideramos 2 + 2 = 4)

k = -3: L[-3] + L[-3 % 5] → 1 + 2 = 3 (porém, L[-3] é o terceiro do último, então consideramos 1 + 1 = 2)

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo