Asignando múltiples variables en una línea

Estoy tratando de hacer la secuencia de Fibonacci. No entiendo por qué esto:

def fibonacci(n):
    f1 = 0
    f2 = 1
    i = 1

    while i < n:
        print(f2)
        f1 = f2
        f2 = f1 + f2

        i += 1
    return f3

devuelve 1, 2, 4, 8, mientras que esto:

def fibonacci(n):

    f1 = 0
    f2 = 1
    i = 1

    while i < n:
        print(f2)
        f1, f2 = f2, f1 + f2
        i += 1
    return f3

devuelve la secuencia de Fibonacci.

Respuestas a la pregunta(2)

Su respuesta a la pregunta