0

I am relatively a noobie in programming and trying to learn python. I was trying to implement a Fibonacci series into a list within 10.

fibo= [0,1]

for k in range(11):
 i= fibo[-1]
 j = fibo[-2]
 k= fibo[i]+fibo[j]
 fibo.append(k)
 k=+1
print(fibo)

Not sure what I did wrong? Any help is really appreciated!

Output:

[0, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2]

1

2 Answers 2

1

You can use this code to print fibonacci series upto N.

N = int(input()) # Length of fibonacci series

fibo = [0, 1]
a = fibo[0]
b = fibo[1]

for each in range(2, N):
    c = a + b
    a, b = b, c
    fibo.append(c)

print(fibo[:N])

OUTPUT

N = 10
[0, 1, 1, 2, 3, 5, 8, 13, 21, 34]
Sign up to request clarification or add additional context in comments.

Comments

0

I can see few issues here:

fibo = [0,1]

# Your loop should start at index 2, otherwise
# you will try to access fibo[-2] and fibo[-1] with k=0
# and fibo[-1] and fibo[0] with k=1
# Also, if you only want 10 values, you should change 11
# to 10 since fibo already has two values.
# for k in range(11):
for k in range(2, 10):
    # You don't want the content of fibo, but the indexes!
    # i = fibo[-1]  
    # j = fibo[-2]
    i = k - 1
    j = k - 2

    # You are already using k, so you need to use an other variable
    # k = fibo[i] + fibo[j]
    v = fibo[i] + fibo[j]
    fibo.append(v)

    # You don't need k+=1 because it will be incremented
    # according to range(2, 10). The loop will start with
    # k = 2 and it will stop when k = 9
    # k += 1

print(fibo)

Your code did not crash because you technically can access fibo[-1] and fibo[-2]. It will respectively return the last value of your array, and the value before the last one.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.