Analise o comportamento do laço de repetição abaixo:
for i in range(1, 4):
print(i)
Quais valores serão impressos no console após a execução deste código?
1,2,3,4
0,1,2,3
1,2,3
1,2,3,4,5
◯ 4

Passo 1

O enunciado fornece o trecho de código abaixo e pergunta quais valores serão impressos no console após a execução:
for i in range(1, 4):
print(i)
Informações relevantes extraídas do enunciado:
  • Há um laço do tipo for com a variável de controle i.
  • A função usada para gerar valores é range(1, 4).
  • A cada iteração o comando print(i) é executado, imprimindo o valor atual de i.
  • A pergunta é: quais valores aparecem no console depois que o laço termina?

Passo 2

Entender o que faz range(start, stop) é a chave. Conceito importante (explicadinho):
  • range(start, stop) gera uma sequência de inteiros que começa em start e vai até o valor imediatamente anterior a stop. Em outras palavras, o stop é exclusivo (não é incluído).
  • Em notação simples: se tivermos range(a,b), os números gerados são
a,\; a+1,\; a+2,\; \dots,\; b-1
desde que a<b.
Exemplos rápidos para fixar:
  • range(0,3) gera os inteiros \,0,1,2.
  • range(2,5) gera os inteiros \,2,3,4.

Passo 3

Aplicando ao caso do enunciado: a chamada é range(1,4). Usando a regra do passo anterior, essa chamada gera os inteiros começando em 1 até 4-1. Ou seja, os valores gerados, em ordem, são
1,\;2,\;3.
Agora simando o laço:
  • Primeira iteração: i recebe 1 e print(i) imprime 1.
  • Segunda iteração: i recebe 2 e print(i) imprime 2.
  • Terceira iteração: i recebe 3 e print(i) imprime 3.
    Depois disso range não fornece mais valores (pois 4 é exclusivo), então o laço termina.

Passo 4

Observação prática e dica para prova (erro comum): muitas pessoas esperam que range(1,4) inclua o 4. Lembre-se da regra: o segundo parâmetro é o limite superior exclusivo. Uma forma rápida de verificar é contar quantos valores terão: \text{stop}-\text{start} = 4-1 = 3 valores — aqui, exatamente três impressões.

Resposta

1,2,3

Exercícios relacionados