Назад к вопросам
JuniorТеорияЧасто
Что выведет программа?
def evens(limit):
for n in range(0, limit, 2):
yield n
g = evens(7)
print(sum(g), sum(g))12 0
- Ждать
12 12, будтоgначинается заново, как список: генератор отдаёт значения один раз, первыйsumзабрал все, и второму не осталось ни одного. - Ждать ошибку или
Noneот второгоsum: исчерпанный генератор ведёт себя как пустой итерируемый объект, а сумма пустой последовательности —0.
- Как изменить последнюю строку, чтобы она напечатала
12 12? - Почему
evens(7)не запускает цикл, покаsumне попросит значения?