Обмен значениями двух переменных

В этом примере посмотрим, как поменять местами значения двух переменных. Покажем классический способ с временной переменной и несколько питоновских и арифметических трюков без неё.

Что нужно знать

Перед изучением примера полезно понимать:

Пример 1. С временной переменной

# Python program to swap two variables

x = 5
y = 10

# To take inputs from the user
#x = input('Enter value of x: ')
#y = input('Enter value of y: ')

# create a temporary variable and swap the values
temp = x
x = y
y = temp

print('The value of x after swapping: {}'.format(x))
print('The value of y after swapping: {}'.format(y))

Вывод

The value of x after swapping: 10
The value of y after swapping: 5

В этой программе временная переменная temp нужна, чтобы не потерять значение x. Сначала сохраняем x в temp, затем кладём в x значение y, а в y — то, что лежало в temp. В результате значения переменных меняются местами.

Пример 2. Без временной переменной

В Python есть короткая запись для обмена значениями — та же задача решается одной строкой.

x = 5
y = 10

x, y = y, x
print("x =", x)
print("y =", y)

Если переменные содержат числа, обмен можно сделать ещё и через арифметику. На первый взгляд кажется странным, но если разобрать по шагам — становится понятно. Несколько вариантов:

Сложение и вычитание

x = x + y
y = x - y
x = x - y

Умножение и деление

x = x * y
y = x / y
x = x / y

XOR-обмен

Этот способ работает только с целыми числами.

x = x ^ y
y = x ^ y
x = x ^ y