Функция-генератор squares(n) делает yield i * i для i из range(n). Чему равно list(squares(3))?

A[1, 4, 9]
B[0, 1, 4]
C[0, 1, 4, 9]
DБудет ошибка NameError.
Правильный ответ. Генератор с yield отдаёт квадраты для i из range(n), начиная с 0.

Разбор

range(n) генерирует числа от 0 до n - 1. Для n = 3 это 0, 1, 2, а квадраты — 0, 1, 4. list(...) собирает все значения, которые отдаёт yield.

Проверь себя · 1/3разбор после ответа
Есть xs = [1, 2, 3] и it = iter(xs). Сначала выполняется a = list(it), а затем b = list(it). Чему равно b?
Тренировать Python в Telegram

Ещё вопросы по теме «Итераторы и генераторы»