НачатьНачать бесплатно

Итерирование по итерируемым объектам (2)

В этой главе вы узнали, что не все итерируемые объекты являются настоящими списками. Два примера, которые мы рассмотрели, — это строки и функция range(). В данном упражнении мы сосредоточимся именно на функции range().

Вы можете использовать range() в цикле for как будто это список для итерации:

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

Напомним, что range() не создаёт список напрямую — вместо этого она создаёт объект диапазона с итератором, который генерирует значения до достижения предела (в примере — до значения 4). Если бы range() создавала настоящий список, вызов с аргументом \(10^{100}\) мог бы не сработать: число такого размера способно превысить объём оперативной памяти обычного компьютера. Значение \(10^{100}\) называется гуголом — это единица, за которой следует сто нулей. Колоссальное число!

Ваша задача в этом упражнении — убедиться, что вызов 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))
Редактировать и запускать код