Analise o código Python a seguir.O resultado da execução des...
O resultado da execução desse código, na ordem, é:
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