ホームページ >バックエンド開発 >Python チュートリアル >Yang Hui の Python によるトライアングルメソッドの紹介例

Yang Hui の Python によるトライアングルメソッドの紹介例

零下一度
零下一度オリジナル
2017-07-27 09:26:022328ブラウズ

プログラム出力は次の効果を達成する必要があります:

[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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。