ПочатиПочніть безкоштовно

Ітерація по ітерованих обʼєктах (2)

Ви дізналися в цьому розділі, що не всі ітеровані обʼєкти є справжніми списками. Декілька прикладів, які ми розглядали, — це рядки та використання функції range(). У цій вправі ми зосередимося на range().

Ви можете використовувати range() у циклі for ніби це список, по якому потрібно пройтися:

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

Памʼятайте, що range() насправді не створює список; натомість він створює обʼєкт діапазону з ітератором, який генерує значення, доки не досягне межі (у прикладі — доки значення 4). Якби range() створював справжній список, виклик із значенням \(10^{100}\), ймовірно, не спрацював би, особливо тому, що таке велике число може перевищити памʼять звичайного компʼютера. Значення \(10^{100}\) має назву гугол — це 1 і сто нулів після неї. Це колосальне число!

Ваше завдання у цій вправі — показати, що виклик range() з \(10^{100}\) не створює список наперед.

Ця вправа є частиною курсу

Набір інструментів Python

Переглянути курс

Інструкції до вправи

  • Створіть обʼєкт ітератора small_value над range(3) за допомогою функції iter().
  • За допомогою циклу for пройдіться по range(3), виводячи значення на кожній ітерації. Використовуйте num як змінну циклу.
  • Створіть обʼєкт ітератора googol над range(10 ** 100).

Інтерактивна практична вправа

Спробуйте виконати цю вправу, доповнивши цей зразок коду.

# 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))
Редагувати та запускати код