Я пытаюсь создать генератор, который выдает указанную бесконечную последовательность. В настоящее время, у меня есть следующий код:Печать бесконечной последовательности с использованием генератора
def numGen():
for i in range(1,13):
yield i
Что тогда дает мне:
>>> y = numGen()
>>> y
<generator object numGen at 0x7f6b88d22570>
>>> y.__next__()
1
...
>>> y.__next__()
12
>>> y.__next__()
Traceback (most recent call last):
File "<stdin>", line 1, in <module> StopIteration
Я не уверен, что будет необходимо изменить для того, чтобы сбросить, а затем распечатать 1, 2, 3, ..., 11, 12, 1, 2, 3, ... Я попытался добавить строку «i + = 1» после линии доходности, но затем распечатал 14, что не что я хочу.
Удивительное спасибо! Я не думал включать в себя как цикл while, так и for. Предыдущие итерации моего кода имели либо «i = range (1,13), а True: yield i» или просто «While True: yield i» с функцией, принимающей параметр «num». Спасибо за быстрый ответ! – BrxttB
@BrxttB Добро пожаловать. Потратьте время, чтобы понять различные способы решения этой задачи. Я сосредоточился на том, чтобы показать проблему; не обязательно «лучший» или «самый путинский». – user2864740
Я до сих пор в моем классе это в значительной степени, как мой профессор научил нас, как использовать генераторы. Я буду/прилагаю усилия, чтобы больше исследовать использование генераторов – BrxttB