DEF SCQ() のための I における範囲(3 :) 収量I G = SCQ() のために N で [1、10 ]。 G((N + K)= ための K におけるG) プリント(リスト(G))
結果がでなければならないことを確認するために、コードので、一人で目を起動し、[11,12,13]
しかし、コードの実行が、結果はそうではありませんが、見つかった[20,21,22]
これは私も奇妙な、なぜ予想以上に様々な試み、その後、それからより多くの、とは、次のサイクルのための条件を変更したことだろう突然のすべてで、リストは二番目の数字を移動しない限り、結果は変わりませんことがわかりました。
ステップ操作でデバッグステップを開いた後に、それは次のような理由から、以下のように発見されました
SCQ DEF():
範囲でI(3):
収率I
G = SCQ()
#第1発電ジェネレータ1
#プログラムは、再びループのための2つの発電機を作成し、ダウン順に実行します
[1、10]におけるnのため #n個の発生器1はgenerator2 =を作成し、N =ああ第三のジェネレータ10 generator3作成
G =(GにおけるK用の(N-K +))を
印刷(リスト(Gあなたは、発電機generator3を作成するとき))#これは第三コール・ジェネレータのn = 10である
ため、発電機の性質のために#を、呼び出しがここG3、G2、G3の呼び出しのときに実行され、呼び出されたときにのみ実行されるように、 N = 10、G2リコールG