ComenzarEmpieza gratis

Iteración sobre iterables (2)

Una de las cosas que has aprendido en este capítulo es que no todos los iterables son listas reales. Un par de ejemplos que hemos visto son las cadenas y el uso de la función range(). En este ejercicio, nos centraremos en la función range().

Puedes utilizar range() en un bucle for como si fuera una lista en la que iterar:

for i in range(5):

    print(i)

Recuerda que range() no crea realmente la lista, sino un objeto range con un iterador que produce los valores hasta que alcanza el límite (en el ejemplo, hasta el valor 4). Si range() ha creado la lista real, llamarla con un valor de \(10^{100}\) puede no funcionar, sobre todo porque un número tan grande como ese puede sobrepasar la memoria de un ordenador normal. El valor \(10^{100}\) es en realidad lo que se llama un gúgol, que es un 1 seguido de cien ceros. ¡Es un número enorme!

Tu tarea para este ejercicio es demostrar que llamar a range() con \(10^{100}\) no precrea realmente la lista.

Este ejercicio forma parte del curso

Caja de herramientas Python

Ver curso

Instrucciones de ejercicio

  • Crea un objeto iterador small_value sobre range(3) utilizando la función iter().
  • Utilizando un bucle for, itera sobre range(3), imprimiendo el valor de cada iteración. Utiliza num como variable de bucle.
  • Crea un objeto iterador googol sobre range(10 ** 100).

Ejercicio interactivo práctico

Pruebe este ejercicio completando este código de muestra.

# 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))
Editar y ejecutar código