As mentioned in the comment above your program do its job and perfectly described the Fibonacci sequence. Here I implement the recursive version and then compare the result with your implementation (explicit form).
import math
def staircase(n):
    term_a = ((1 + math.sqrt(5)) / 2) ** n
    term_b = ((1 - math.sqrt(5)) / 2) ** n
    numerator = term_a - term_b
    denominator = math.sqrt(5)
    return int(numerator / denominator)
def fibo_rec(n):
    # initial conditions
    if n == 0: return 0
    if n == 1: return 1
    # recursive relationship
    return fibo_rec(n-1) + fibo_rec(n-2)
n = 20
test = [fibo_rec(i) for i in range(n)] == [staircase(i) for i in range(n)]
print(test)
Output
True
1
solved The Fibonacci formula does not correctly output the Nth value