2016-09-23 4 views
0

Pycharmエドゥで私はこのコードで出会った同じ結果を得るよう、いくつかのコードを書くことですリストと似たようなことをしようとしましたが、問題は適切なフィボナッチシリーズを得ることです。私は[-1,1]を使って計算を開始しましたが、結果は同じです。ここに私のコードです:はそれが有効な限り、ビットトリッキーな私は(Pythonでフィボナッチ)

x = [-1,1] 

y = [] 

for i in range(10): 
    c = x[0] + x[1] 
    y.append(c) 
    x[0] = x[1] 
    x[1] = c 

print(y) 

質問は、これで取り除くことができますか?

+0

まあ、私たちは実際にそれらを比較することはできません、一つは機能ではありません。私たちは何の基準を見ていますか? – Li357

+4

この質問は、コーディングスタイルほどのコーディング問題ではないようです。これは話題にならないように閉じられている可能性があり、codereview.stackexchange.comでよりよく答えられるかもしれません。 – dg99

+0

ありがとう私は "codereview"に私の質問を移動します。 –

答えて

1

この質問は、このサイトについても意見に基づいているかもしれませんが、コードを実行するだけでなく、読みやすくする必要があることを考慮してください。それ以外の場合、あなたが書いたものは完全に有効です。私が言ったように

addends = [-1,1] 

fibonacci_sequence = [] 

for value in range(10): 
    next_fibonacci = addends[0] + addends[1] 
    fibonacci_sequence.append(next_fibonacci) 
    addends[0] = addends[1] 
    addends[1] = next_fibonacci 

print(fibonacci_sequence) 

が、これは意見のように見えるかもしれませんが、あなたは心の中で最初のPEP 20を維持することを確認してください:

これを考慮して、最後の注意として、

Beautiful is better than ugly. 
Explicit is better than implicit. 
Simple is better than complex. 
Complex is better than complicated. 
Flat is better than nested. 
Sparse is better than dense. 
Readability counts... 

あなたのコードを関数ではありませんが、元のコードスニペットは関数です。あなたのコードは関数として次のようになります。

def fibonacci(): 
    addends = [-1,1] 

    fibonacci_sequence = [] 

    for value in range(10): 
     next_fibonacci = addends[0] + addends[1] 
     fibonacci_sequence.append(next_fibonacci) 
     addends[0] = addends[1] 
     addends[1] = next_fibonacci 

    return fibonacci_sequence 

print(fibonacci()) 
+0

あなたの答えに感謝し、私は自分のコードをより読みやすくします。 –

+0

問題ありません! Pythonスタイルの提案については、PEP 8とPEP 20を参照してください。可読性はPythonの最大の強みの1つです。 –

関連する問題