Прошу прощения за вероятно нубский вопрос, но в интернете внятного для себя ответа не нашел

код:
a, b = 0, 1 while b < 10: print(b) a, b = b, a+b
именно не понял, чем отличается multiple assessment a, b = b, a + b от обычного a = b
b = a + b? потому что по пуску кода разница видна, но в чем логика?
если следить за процессом присвоения переменных, то ведь получается
a, b = b, a + b
0) a = 0 b = 1
1) a = b (1) b = a + b (1 + 1 = 2)
2) a = b (2) b = a + b (2 + 2 = 4)
и так далее…
но результат программы другой 1 1 2 3 5 8
Такие значения могут получиться, только если переменная “а” не изменяется с прошлого действия цикла, но ведь после print(b) следует a, b = b, a+b что по идее изменяет ее значение в последовательности с лева на право а = b и за тем b = a + b.
Моя логика где то хромает ??? (((( в туториале тоже молодцы, нихрена не объяснено
Заранее спасибо )