Как поменять местами переменные в питоне
Перейти к содержимому

Как поменять местами переменные в питоне

Обмен значений переменных

Обмен значений двух переменных — это действие, в результате которого одна переменная принимает значение, равное второй переменной, а вторая — первой.

Если попытаться сделать такой обмен, сначала присвоив первой переменной значение второй, а второй — значение первой, ничего не получится. Допустим, есть две переменные a и b. При этом a = 5 и b = 6 . Если выполнить выражение a = b , то переменная a будет хранить число 6, также как и b . Число 5 будет утеряно. После этого выражение b = a теряет смысл, т. к. b будет присвоено его же текущее значение. В данном случае 6.

Поэтому в программировании при обмене значений переменных обычно вводят третью переменную, играющую роль буфера (ее иногда называют буферной переменной). В этой переменной сохраняют значение первой переменной, потом первой переменной присваивают значение второй, a новое значение для второй переменной берут из буфера.

Таким образом классический алгоритм обмена значений двух переменных выглядит так:

Однако есть другой способ, позволяющий не использовать третью переменную. Но этим способом не всегда рекомендуют пользоваться. Выглядит он так:

Поскольку в Python есть такая вещь как множественное присваивание, то обмен значений переменных можно выполнить в одну строчку:

Почему такое возможно? В Питоне есть такая структура данных как кортеж.

При выполнении a, b = b, a интерпретатор Python сначала получает значения связанные с переменными b и a (правая часть) и помещает их в кортеж, в данном случае получится (10, 20). После этого он связывает каждый элемент кортежа в определенной позиции с переменной в той же позиции, но в кортеже слева (a,b) .

Таким образом можно поменять значения не только двух переменных, но и трех, четырех и т. д. Кроме того в Python можно обменять значения переменных разных типов. Такая возможность связана с тем, что тип данных в Питоне привязан не к переменной, а к значению:

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

Данная программа принимает от пользователя два значения и записывает каждое из них в отдельную переменную. Затем она меняет местами значения этих переменных без ввода временной переменной.

Решение задачи

  1. Пользователь вводит два значения, которые записываются в две разные переменные.
  2. Значения двух переменных складываются и результат сложения записывается в первую переменную.
  3. Далее из первой переменной вычитается вторая переменная и результат записывается во вторую переменную.
  4. Затем из первой переменной вычитаем вторую (с уже обновленным значением) и записываем полученный результат в первую переменную.
  5. Выводим полученные значения.
  6. Конец.

Исходный код программы

Ниже приведен исходный код программы по замене значений двух переменных без использования третьей переменной. Далее также будет приведен результат работы этого кода.

Объяснение работы программы

  1. Пользователь вводит значение двух переменных и они записываются в переменные а и b .
  2. В переменную а записывается сумма а и b .
  3. В переменную b записывается разность переменной а (в которой сейчас находится сумма первоначальных значений a и b ) и переменной b . Таким образом первоначально введенное значение переменой a перешло в переменную b .
  4. Теперь вычитаем из переменной a (где сейчас по-прежнему находится сумма первоначально введенных величин) текущее значение переменной b (которое первоначально было записано в переменную a ). Таким образом в переменной a остается только значение, которое в начале программы было записано в переменную b .
  5. И далее выводим полученные значения на экран.

Результаты работы программы

Примечание переводчика

Все что было описано выше (в пунктах 2, 3, 4), в языке Python можно сделать в одну строчку. И это одно из основных достоинств этого языка программирования.

python logo

Английский для программистов

Наш телеграм канал с тестами по английскому языку для программистов. Английский это часть карьеры программиста. Поэтому полезно заняться им уже сейчас

Как поменять местами две переменные в Python

В этом уроке мы узнаем, как поменять местами две переменные в программе Python. Предположим, у нас есть две переменные, P и Q, и нам нужно написать программу на Python для замены их значений. Обсудим различные методы Python для выполнения этой задачи.

Способ 1: с использованием наивного подхода

В этом методе наивный подход сохранит значение переменной P во временной переменной, а затем присвоит переменной P значение переменной Q. Затем он присвоит значение временной переменной переменной Q, что приведет к замене значений обеих переменных.

Способ 2: с помощью оператора comma

Мы можем использовать оператор запятой. Нам не нужно использовать третью переменную для замены значений двух переменных для этого метода.

Способ 3: с помощью метода XOR

Мы также можем использовать метод побитового XOR для замены двух переменных. XOR двух переменных, P и Q, вернет число, у которого все биты равны 1, всякий раз, когда биты переменных P и Q различаются.

Например, XOR 4 (в двоичном формате 0100) и 6 (в двоичном формате 0110) равно 1010.

XOR 2 (в двоичном формате 0010) и 8 (в двоичном формате 1000) равно 1010.

Способ 4: с использованием арифметических операторов

В этом методе мы можем поменять местами значения обеих переменных двумя методами:

  • Использование оператора сложения и вычитания
  • Использование оператора умножения и деления

Заключение

В этом руководстве мы обсудили различные методы замены значения двух переменных в программе Python.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *