0
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

Volk
  • 550
  • 3
  • 18

2 Answers2

1

Код

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
wchistow
  • 3,697
  • 6
  • 13
  • 32
0

В первом блоке кода, после замены 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.

Imas
  • 74