• Python
  • 07. Iterando em coleções com "for"
  • range

07. For#

O range#

Outra estratégia bastante comum em programação é o uso de contadores para percorrer números em um intervalo. Executamos uma determinada operação para o valor 0, depois para o valor 1, depois para o valor 2, e assim por diante. O Python possui uma função chamada range que gera essa sequência de números naturais. Existem 3 maneiras de utilizar o range:

Comando 'range'

Uso do range com um argumento#

Ao utilizar o comando range passando apenas um argumento, são gerados números que vão desde o zero até o antes do argumento. Exemplo: range(3) gera a sequência 0, 1, 2 (note que o 3 não pertence à sequência gerada);

Exercise 1

Qual a sequência de números gerada pelo código a seguir: range(10)

Answer

A sequência gerada pelo comando range(10) é 0, 1, 2, 3, 4, 5, 6, 7, 8, 9.

O comando range(10) gera uma sequência de números que começa em 0 e termina um número antes do argumento passado. No nosso caso, o argumento é o número 10, então o último número da sequência é o 9.

Exercise 2

Considere o código a seguir:

soma = 0
for valor in range(5):
  soma = soma + valor
print(soma)
Antes de testar o código, reflita o que o código está fazendo e qual será o resultado.

Ao testar o código acima, o que será impresso no terminal?

Answer

Ao testar o código acima, obtemos o valor 10 impresso no terminal.

Isso porque, o for percorre e soma os valores 0, 1, 2, 3, 4, gerados pelo comando range(5)

E por fim, o resultado é impresso no terminal.

Exercise 3

Resolva o exercício Soma dos n primeiros termos.

Acessar exercício

Uso do range com dois argumentos#

Ao utilizar o comando range passando dois argumentos, são gerados números que vão desde o primeiro argumento até antes do segundo argumento. Exemplo: range(13, 17) gera a sequência 13, 14, 15, 16 (note que o 13 pertence à sequência, mas o 17, não);

Exercise 4

Qual a sequência de números gerada pelo código a seguir: range(5, 10)

Answer

A sequência gerada pelo comando range(5, 10) é 5, 6, 7, 8, 9.

Ao utilizar o comando range(5, 10), estamos passando dois valores como argumento. O primeiro argumento indica em qual número a sequência irá começar e o segundo argumento indica em qual número a sequência irá terminar. Lembrando que o segundo argumento não é incluído na sequência.

Desta forma, como o segundo argumento é o valor 10, a sequência termina no valor 9.

Exercise 5

Considere o código a seguir:

soma = 0
for valor in range(1, 5):
  soma = soma + valor
print(soma)
Antes de testar o código, reflita o que o código está fazendo e qual será o resultado.

Ao testar o código acima, o que será impresso no terminal?

Answer

Ao testar o código acima, obtemos o valor 10 impresso no terminal.

Isso porque, o for percorre e soma os valores 1, 2, 3, 4, gerados pelo comando range(1, 5)

E por fim, o resultado é impresso no terminal.

Exercise 6

Resolva o exercício Primos no intervalo.

Acessar exercício

Uso do range com três argumentos#

Ao utilizar o comando range passando três argumentos, são gerados números que vão desde o primeiro argumento até antes do segundo argumento e o terceiro argumento é o salto de um elemento gerado para o próximo. Exemplo: range(2, 13, 3) gera a sequência 2, 5, 8, 11 (note que o 2 pertence à sequência, mas o próximo elemento da sequência, o 14, não).

Exercise 7

Qual a sequência de números gerada pelo código a seguir: range(0, 10, 2)

Answer

A sequência gerada pelo comando range(0, 10, 2) é 0, 2, 4, 6, 8.

Ao utilizar o comando range(0, 10, 2), estamos passando três valores como argumento. O primeiro argumento indica em qual número a sequência irá começar, o segundo argumento indica em qual número a sequência irá terminar (lembrando que o segundo argumento não é incluído na sequência) e o último argumento indica quantos números pular de um valor para o outro.

Desta forma, o comando range(0, 10, 2) gera uma sequência que começa em 0, vai até 9 pulando de dois em dois os valores dentro da sequência.

Note, que o valor 9 não entra na sequência, pois estamos pulando os valores de dois em dois e o valor 10 também não entra na sequência, pois a sequência deve para antes do 10.

Exercise 8

Considere o código a seguir:

soma = 0
for valor in range(3, 12, 3):
  soma = soma + valor
print(soma)
Antes de testar o código, reflita o que o código está fazendo e qual será o resultado.

Ao testar o código acima, o que será impresso no terminal?

Answer

Ao testar o código acima, obtemos o valor 18 impresso no terminal.

Isso porque, o for percorre e soma os valores 3, 6, 9, gerados pelo comando range(3, 12, 3)

E por fim, o resultado é impresso no terminal.

EXERCÍCIOS ADICIONAIS#

Refaça os exercícios a seguir utilizando for e, quando necessário range:

Exercise 9

Resolva o exercício Calcula fatorial.

Acessar exercício

Exercise 10

Resolva o exercício Diferença de listas.

Acessar exercício

Exercise 11

Resolva o exercício Junta nome e sobrenome.

Acessar exercício

Exercise 12

Resolva o exercício Valor da nota fiscal.

Acessar exercício

Exercise 13

Resolva o exercício Verifica lista crescente.

Acessar exercício

Exercise 14

Resolva o exercício Máximo de uma matriz.

Acessar exercício

Pratique mais! 💪#

Refaça os outros exercícios já feitos das seções 👉 while e 👉 lista agora utilizando o for.

Importante

Nem todos os exercícios podem ser resolvidos com o for.