Zacznij terazZacznij za darmo

Iterowanie po obiektach iterowalnych (2)

W tym rozdziale poznałeś już przykłady obiektów iterowalnych, które nie są prawdziwymi listami. Dwa z nich to łańcuchy znaków oraz funkcja range(). W tym ćwiczeniu skupimy się właśnie na range().

Możesz używać range() w pętli for tak jakby była to lista do iterowania:

for i in range(5):
    print(i)

Pamiętaj, że range() nie tworzy faktycznej listy – zamiast tego tworzy obiekt zakresu z iteratorem, który generuje kolejne wartości aż do osiągnięcia limitu (w przykładzie – do wartości 4). Gdyby range() tworzyło prawdziwą listę, wywołanie go z wartością \(10^{100}\) mogłoby nie zadziałać – liczba tej wielkości mogłaby przekroczyć dostępną pamięć komputera. Wartość \(10^{100}\) to tak zwany Googol – jedynka, po której następuje sto zer. To naprawdę ogromna liczba!

Twoim zadaniem w tym ćwiczeniu jest pokazanie, że wywołanie range() z wartością \(10^{100}\) nie tworzy z góry całej listy.

To ćwiczenie jest częścią kursu

Zestaw narzędzi Pythona

Zobacz kurs

Instrukcje do ćwiczenia

  • Utwórz obiekt iteratora small_value dla range(3), używając funkcji iter().
  • Korzystając z pętli for, iteruj po range(3) i wypisuj wartość w każdej iteracji. Użyj num jako zmiennej pętli.
  • Utwórz obiekt iteratora googol dla range(10 ** 100).

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

# 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))
Edytuj i uruchom kod