2014-02-18 2 views
-2

리스트에 피보나치 시퀀스를 만드는 것에 관한 문제가 있습니다. 저는 파이썬에 익숙하지 않습니다.PYTHON에리스트를 사용하는 피보나치 시퀀스?

이것은 내 코드입니다. 내가 잘못된 구문을 말하기 때문에 이것이 잘못되었거나 뭔가를 찾고 있음을 안다. 나는이 코드는 목록을 사용하지 않고 정상적인 코드 작동이 정말 :(

에 대해 무엇을 해야할지하지 않습니다

myArray1 = [0] 
myArray2 = [1] 

while myArray2 < 700: 
    myArray1, myArray2 = b[i], myArray1+myArray2[i] 
    print(myArray2) 
+10

파이썬에서는''array'가 아니라'list'입니다 (http://docs.python.org/2/library/array.html). –

+1

'b'는 어디에 정의되어 있습니까? 그리고 나는? – Kevin

+0

코드에':'콜론을 추가했습니다. 그것이 당신의 원본에 있었습니까? 당신은 당신이 아무데도 할당하지 않는'b'와'i'를 사용하고리스트를 개별 값으로 대체합니다. –

답변

8

당신은 파이썬 바 당신의 코드에는 많은 말도 안됩니다. 이 코드는 (당신이 의미있는 변수 이름을 사용한다!)

fibonacci_numbers = [0, 1] 
for i in range(2,700): 
    fibonacci_numbers.append(fibonacci_numbers[i-1]+fibonacci_numbers[i-2]) 

참고 목록의 첫 번째 700 피보나치 수를두고 말했다되고 그건 : 파이썬 < 3를 사용하는 경우, xrange 대신 range 사용합니다.

+0

정말 고맙습니다. 좋아,이 pl에 대해 더 자세히 알기 위해 최선을 다할 것입니다. –

4

당신이 할 수 있습니다!

In [77]: a = 0 
    ...: b = 1 
    ...: while b < 700: 
    ...:  a, b = b, a+b 
    ...:  print a, b 
1 1 
1 2 
2 3 
3 5 
5 8 
8 13 
13 21 
21 34 
34 55 
55 89 
89 144 
144 233 
233 377 
377 610 
610 987 

당신이 만약 결과를리스트에 저장하고 싶다면 list.append :

In [81]: a = 0 
    ...: b = 1 
    ...: fibo=[a, b] 
    ...: while b < 70: 
    ...:  a, b = b, a+b 
    ...:  fibo.append(b) 
    ...: print fibo 
[0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89] 
관련 문제