Analise o código Python a seguir. s=0 for k in range(16,10, -2): s -= k print (s) O valor exibido pela execução desse trecho é:
- A)0
Errada, porque o laço altera s três vezes e o resultado não pode ficar em 0.
- B)-28
Errada, pois a sequência do range e as subtrações levam a um valor mais baixo do que -28.
- C)-30
Errada, porque a conta correta inclui três termos do intervalo e não termina em -30.
- D)-42
Certa, pois range(16, 10, -2) gera 16, 14 e 12, e 0 - 16 - 14 - 12 resulta em -42.
- E)-52
Errada, já que o intervalo não inclui 10 e a soma das subtrações não chega a -52.
Gabarito: D
Aqui a ideia central é simples: o comando for percorre uma sequência gerada por range(inicio, fim, passo). Quando o passo é negativo, o Python vai descendo, mas sem incluir o valor final. Em range(16, 10, -2), os valores são 16, 14 e 12, porque o 10 fica de fora. Depois, o trecho faz s -= k, ou seja, vai subtraindo cada valor de s, que começou em 0. Fazendo a conta com calma: s = 0 - 16 = -16, depois -16 - 14 = -30, e por fim -30 - 12 = -42. É aquele tipo de questão em que a banca testa se você sabe ler o range e não cai no detalhe do limite final. Em Python, isso é bem padrão e não tem pegadinha de sintaxe, só de atenção mesmo. Por isso o gabarito é a alternativa D. O valor impresso por print(s) é -42. Se você pensou em somar os números do intervalo ou incluir o 10, aí a conta escapa do trilho. Aqui a execução é totalmente determinística: o laço roda três vezes e termina com -42.