0
def fibonacci(num):
    a=0
    b=1
    for i in range(num):
        a, b=b, a+b
    print a

ループ内の行はどのように機能しますか? なんとなく a & b の価値観が変わって、なんとなくわかるような..

編集: 何らかの理由で私は混乱しました。b=b の中間の exp は何か新しいものだと思いました...よく読んでいませんでした..実際には (a,b) = (b, a+b) です。 Python でのスワップの基本的な形式 (:

4

3 に答える 3

5

b, a+bタプルを作成します

このタプルはアンパックされてaandに戻されますb

于 2013-04-14T06:02:19.403 に答える
2

この行は、タプル代入であるa, b = b, a+bと同等です。(a, b) = (b, a+b)

于 2013-04-14T06:03:49.473 に答える
2

問題の行は、次のように (右側のタプル パッキングと左側のシーケンス アンパックによって) より明確に記述できます。

(a, b) = (b, a + b)

a と b への代入は並行して実行されるため、これは次とまったく同じです。

new_a = b
new_b = a + b
a     = new_a
b     = new_b
于 2013-04-14T06:04:09.713 に答える