a, b = 5,7
a, b = b,a
print(a ,b) #7 5
Почему b не стало равно 7, если a уже равно 7?
Другой блок:
a, b = 5, 7
a = b
b = a
print(a, b) #7 7
a, b = 5,7
a, b = b,a
print(a ,b) #7 5
Почему b не стало равно 7, если a уже равно 7?
Другой блок:
a, b = 5, 7
a = b
b = a
print(a, b) #7 7
Код
a, b = b, a
эквивалентен не такому коду:
a = b
b = a
а такому:
c = b
b = a
a = c
То есть переменные просто меняются местами: a становиться равным b, а b - прошлому значению a.
А во втором примере вы сначала записываете в переменную a значение переменной b, а потом в b - то, что оказалось в a, т. е. тоже b.
a = b
b = a
В первом блоке кода, после замены a и b, значение a становится равным 7, а значение b становится равным 5. Это связано с тем, что замена переменных происходит одновременно, поэтому значение "b" сохраняется в "a" до того, как "a" присваивается "b"..
Во втором блоке кода, после установки a=5 и b=7, строка 'a=b' устанавливает значение a равным 7. Затем 'b=a' также устанавливает значение b равным 7. Таким образом, и a, и b становятся 7.