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
Instrukcje do ćwiczenia
- Utwórz obiekt iteratora
small_valuedlarange(3), używając funkcjiiter(). - Korzystając z pętli
for, iteruj porange(3)i wypisuj wartość w każdej iteracji. Użyjnumjako zmiennej pętli. - Utwórz obiekt iteratora
googoldlarange(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))