как работает этот скрипт и почему переменная b получает значение 50, а не 1
a = 1
b = 50
b, b = a, b
print(b)
фактический результат: 50
b, b = a, b
на самом деле является присваиванием кортежа и работает слева направо.
b, b = a, b
оценивается как (b, b) = (1, 50)
, который, в свою очередь, выполняется как
b = 1
b = 50
Потому что правая часть полностью оценен перед присваиванием. Вы можете думать об этом как о создании кортежа
(a, b) == (1, 50)
сначала