我試圖創建一個打印出指定的無限序列的生成器。目前,我有以下代碼:使用發生器打印無限序列
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不客氣。花點時間瞭解完成這項任務的不同方式。我專注於展示這個問題;不一定是'最好'或'最Pythonic'的方式。 – user2864740
到目前爲止,在我的課堂上,我的教授已經教會了我們如何使用發電機。我將/正在努力調查更多關於使用發電機的信息 – BrxttB