Iteração sobre iteráveis (2)
Uma das coisas que você aprendeu neste capítulo é que nem todos os iteráveis são listas reais. Alguns exemplos que examinamos são as strings e o uso da função range()
. Neste exercício, vamos nos concentrar na função range()
.
Você pode usar range()
em um loop for
como se fosse uma lista a ser iterada:
for i in range(5):
print(i)
Lembre-se de que range()
não cria de fato a lista; em vez disso, ela cria um objeto range com um iterador que produz os valores até atingir o limite (no exemplo, até 4). Se range()
criou a lista real, chamá-la com um valor de \(10^{100}\) pode não funcionar, especialmente porque um número tão grande como esse pode ultrapassar a memória de um computador comum. O valor \(10^{100}\) é, na verdade, o que chamamos de Googol, que é um 1 seguido de cem 0s. É um número enorme!
Sua tarefa neste exercício é mostrar que ao chamar range()
com \(10^{100}\) não criará previamente a lista.
Este exercício faz parte do curso
Caixa de ferramentas Python
Instruções do exercício
- Crie um objeto iterador
small_value
emrange(3)
usando a funçãoiter()
. - Usando um loop
for
, itere sobrerange(3)
, imprimindo o valor para cada iteração. Usenum
como a variável do loop. - Crie um objeto iterador
googol
emrange(10 ** 100)
.
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
# Create an iterator for range(3): small_value
small_value = ____
# Print the values in small_value
print(next(small_value))
print(next(small_value))
print(next(small_value))
# Loop over range(3) and print the values
# Create an iterator for range(10 ** 100): googol
googol = ____
# Print the first 5 values from googol
print(next(googol))
print(next(googol))
print(next(googol))
print(next(googol))
print(next(googol))