プログラム出力は次の効果を達成する必要があります:
[1] [1,1] [1,2,1] [1,3,3,1]
......
メソッド:反復、ジェネレーター
def triangles() L = [1] while True: yiled L L =[1] + [L[i] + L[I+1] for i in range(len(L)-1)] + [1] n = 0 for t in triangles(): print(t) n += 1 if n == 10: break
実装ロジック:
1. yield がジェネレーターの出力を中断するため、最初の出力は[1]
2. while以下のyield以降のループを継続します。このときリストの長さは1です。これをLのlen(L)に代入して[L[i]+L[i+1]を取得します。 ] for i in range(1-1)] の結果はnull値となるため、yield Lの出力は[1,1]
3となります。このとき、len(L)の値は2となり、代入結果はin [L[i]+L [i+1] for i in range(2-1)] は [L[i]+L[i+1] for i in range(1)]、i は値を取得できます0、置換後は [L[0]+L[1]] となり、L[0] と L[1] の値は両方とも 1 になります (上記の結果からわかるように)。出力結果は [1,2,1]
4. 3 番目の記事より このとき len(L) の値は 3 であることがわかります。代入すると [L[i]+L[i+] になります。 1] for i in range(2)] i の値は 0 と 1 です。ループを通じて出力される値は 2 つあり、どちらも [L[0]+L[1]] で表されます。 、[L[1]+L[2]]
以上がYang Hui の Python によるトライアングルメソッドの紹介例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。