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?
◯
◯
◯
◯
◯ 4
for i in range(1, 4):
print(i)
Quais valores serão impressos no console após a execução deste código?
◯
◯
◯
◯
◯ 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)
for i in range(1, 4):
print(i)
Informações relevantes extraídas do enunciado:
- Há um laço do tipo
forcom a variável de controlei. - A função usada para gerar valores é
range(1, 4). - A cada iteração o comando
print(i)é executado, imprimindo o valor atual dei. - 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 emstarte vai até o valor imediatamente anterior astop. Em outras palavras, ostopé exclusivo (não é incluído).- Em notação simples: se tivermos
range(a,b), os números gerados são
desde que
.
Exemplos rápidos para fixar:
Exemplos rápidos para fixar:
range(0,3)gera os inteiros. range(2,5)gera os inteiros.
Passo 3
Aplicando ao caso do enunciado: a chamada é até
. Ou seja, os valores gerados, em ordem, são
range(1,4). Usando a regra do passo anterior, essa chamada gera os inteiros começando em
Agora simando o laço:
- Primeira iteração:
recebe e print(i)imprime. - Segunda iteração:
recebe e print(i)imprime. - Terceira iteração:
recebe e print(i)imprime.
Depois dissorangenão fornece mais valores (poisé exclusivo), então o laço termina.
Passo 4
Observação prática e dica para prova (erro comum): muitas pessoas esperam que . Lembre-se da regra: o segundo parâmetro é o limite superior exclusivo. Uma forma rápida de verificar é contar quantos valores terão:
valores — aqui, exatamente três impressões.
range(1,4) inclua o