- Как поменять местами две переменные в Python
- Способ 1: с использованием наивного подхода
- Способ 2: с помощью оператора comma
- Способ 3: с помощью метода XOR
- Способ 4: с использованием арифметических операторов
- Заключение
- Обмен значений переменных
- Обмен значений двух переменных без использования третьей в Python
- Метод 1: с помощью встроенного метода
- Метод 2: с помощью побитового оператора XOR
- Метод 3: с помощью операторов сложения и вычитания
- Метод 4: с помощью операторов умножения и деления
- Метод 5: с использованием побитовых и арифметических операторов
- Заключение
- Обмен значений двух переменных
- Решение задачи
- Исходный код программы
- Объяснение работы программы
- Результаты работы программы
- Примечание переводчика
Как поменять местами две переменные в Python
В этом уроке мы узнаем, как поменять местами две переменные в программе Python. Предположим, у нас есть две переменные, P и Q, и нам нужно написать программу на Python для замены их значений. Обсудим различные методы Python для выполнения этой задачи.
Способ 1: с использованием наивного подхода
В этом методе наивный подход сохранит значение переменной P во временной переменной, а затем присвоит переменной P значение переменной Q. Затем он присвоит значение временной переменной переменной Q, что приведет к замене значений обеих переменных.
P = int( input("Please enter value for P: ")) Q = int( input("Please enter value for Q: ")) # To swap the value of two variables # we will user third variable which is a temporary variable temp_1 = P P = Q Q = temp_1 print("The Value of P after swapping: ", P) print("The Value of Q after swapping: ", Q)
Please enter value for P: 13 Please enter value for Q: 43 The Value of P after swapping: 43 The Value of Q after swapping: 13
Способ 2: с помощью оператора comma
Мы можем использовать оператор запятой. Нам не нужно использовать третью переменную для замены значений двух переменных для этого метода.
P = int( input("Please enter value for P: ")) Q = int( input("Please enter value for Q: ")) # To Swap the values of two variables P, Q = Q, P print("The Value of P after swapping: ", P) print("The Value of Q after swapping: ", Q)
Please enter value for P: 12 Please enter value for Q: 43 The Value of P after swapping: 43 The Value of Q after swapping: 12
Способ 3: с помощью метода XOR
Мы также можем использовать метод побитового XOR для замены двух переменных. XOR двух переменных, P и Q, вернет число, у которого все биты равны 1, всякий раз, когда биты переменных P и Q различаются.
Например, XOR 4 (в двоичном формате 0100) и 6 (в двоичном формате 0110) равно 1010.
XOR 2 (в двоичном формате 0010) и 8 (в двоичном формате 1000) равно 1010.
P = int( input("Please enter value for P: ")) Q = int( input("Please enter value for Q: ")) # To Swap the values of two variables using XOR P = P ^ Q Q = P ^ Q P = P ^ Q print("The Value of P after swapping: ", P) print("The Value of Q after swapping: ", Q)
Please enter value for P: 12 Please enter value for Q: 10 The Value of P after swapping: 10 The Value of Q after swapping: 12
Способ 4: с использованием арифметических операторов
В этом методе мы можем поменять местами значения обеих переменных двумя методами:
P = int( input("Please enter value for P: ")) Q = int( input("Please enter value for Q: ")) # To Swap the values of two variables using Addition and subtraction operator P = P + Q Q = P - Q P = P - Q print("The Value of P after swapping: ", P) print("The Value of Q after swapping: ", Q)
Please enter value for P: 15 Please enter value for Q: 43 The Value of P after swapping: 43 The Value of Q after swapping: 15
P = int( input("Please enter value for P: ")) Q = int( input("Please enter value for Q: ")) # To Swap the values of two variables using Addition and subtraction operator P = P * Q Q = P / Q P = P / Q print("The Value of P after swapping: ", P) print("The Value of Q after swapping: ", Q)
Please enter value for P: 23 Please enter value for Q: 14 The Value of P after swapping: 14.0 The Value of Q after swapping: 23.0
Заключение
В этом руководстве мы обсудили различные методы замены значения двух переменных в программе Python.
Обмен значений переменных
Если попытаться сделать такой обмен, сначала присвоив первой переменной значение второй, а второй — значение первой, ничего не получится. Допустим, есть две переменные a и b . При этом a = 5 и b = 6 . Если выполнить выражение a = b , то переменная a будет хранить число 6, также как и b . Число 5 будет утеряно. После этого выражение b = a теряет смысл, так как b будет присвоено его же текущее значение. В данном случае 6.
Поэтому в программировании при обмене значений переменных обычно вводят третью, играющую роль буфера (буферная переменная). В ней сохраняют значение первой переменной, потом первой присваивают значение второй, a новое значение для второй берут из буфера.
Таким образом классический алгоритм обмена значений двух переменных выглядит так:
a = 5 b = 6 buf = a a = b b = buf
Полная версия программы, которая запрашивает ввод двух значений с клавиатуры:
a = input('a: ') b = input('b: ') buf = a a = b b = buf print('a =', a) print('b =', b)
Пример выполнения программы:
Есть другой способ, позволяющий не использовать третью переменную, — арифметический. Он подходит только для чисел.
a = 5 b = 7 a = a + b # 12 b = a - b # 12-7=5 a = a - b # 12-5=7
a = int(input('a: ')) b = int(input('b: ')) a = a + b b = a - b a = a - b print('a =', a) print('b =', b)
Третий вариант — использовать имеющееся в Python множественное присваивание. При этом обмен значений переменных выполняется одной строкой кода:
>>> a = 10 >>> b = 20 >>> a, b = b, a >>> a 20 >>> b 10
Почему такое возможно? В Питоне есть такая структура данных как кортеж.
При выполнении a, b = b, a интерпретатор Python сначала получает значения связанные с переменными b и a (правая часть) и помещает их в кортеж, в данном случае получится (10, 20) . После этого он связывает каждый элемент кортежа в определенной позиции с переменными в той же позиции, но расположенными слева.
Таким образом можно поменять значения не только двух переменных, также трех и более. Кроме того в Python можно обменивать значения переменных разных типов. Это связано с тем, что тип данных в Питоне привязан не к переменной, а к значению:
>>> a = 14 >>> b = 18 >>> c = 16 >>> a,b,c = c,a,b >>> a,b,c (16, 14, 18) >>> d = 4.56 >>> e = "hi" >>> d,e = e,d >>> d 'hi' >>> e 4.56
Обмен значений двух переменных без использования третьей в Python
В этом руководстве мы обсудим различные методы, используемые для обмена значений двух переменных (n1 и n2) без использования третьей переменной в программах Python.
P: 112 Q: 211 After swapping P and Q: P: 211 Q: 112
Метод 1: с помощью встроенного метода
Встроенный метод может работать со значениями любого типа данных, такими как string, float, it. Этот метод очень прост в использовании.
P = JavaTpoint Q = Tutorial print("Variables Value Before Swapping: ") print("Value of P: ", P) print("Value of Q: ", Q) # Method to swap 'P' and 'Q' P, Q = Q, P print("Variables Value After Swapping: ") print("Value of P: ", P) print("Value of Q: ", Q)
Variables Value Before Swapping: Value of P: JavaTpoint Value of Q: Tutorial Variables Value After Swapping: Value of P: Tutorial Value of Q: JavaTpoint
Метод 2: с помощью побитового оператора XOR
Метод побитового оператора XOR применяется только для целых чисел, и он работает быстрее, поскольку он использует битовую операцию, которая предназначена для того же значения result = 0 и для другого значения result = 1.
P = 5 # P = 0101 Q = 10 # Q = 1010 print("Variables Value Before Swapping: ") print("Value of P: ", P) print("Value of Q: ", Q) # Method to swap 'P' and 'Q' P ^= Q # P = 1111, Q = 1010 Q ^= P # Q = 0101, P = 1111 P ^= Q # P = 1010, Q = 0101 print("Variables Value After Swapping: ") print("Value of P: ", P) print("Value of Q: ", Q)
Variables Value Before Swapping: Value of P: 5 Value of Q: 10 Variables Value After Swapping: Value of P: 10 Value of Q: 5
Метод 3: с помощью операторов сложения и вычитания
Этот метод можно использовать только для числовых значений.
P = 112 Q = 211 print("Variables Value Before Swapping: ") print("Value of P: ", P) print("Value of Q: ", Q) # Method to swap 'P' and 'Q' P = P + Q # P = 323, Q = 211 Q = P - Q # P = 323, Q = 112 P = P - Q # P = 211, Q = 112 print("Variables Value After Swapping: ") print("Value of P: ", P) print("Value of Q: ", Q)
Variables Value Before Swapping: Value of P: 112 Value of Q: 211 Variables Value After Swapping: Value of P: 112 Value of Q: 211
Метод 4: с помощью операторов умножения и деления
Этот метод можно использовать только для числовых значений, кроме 0.
P = 11.2 Q = 21.1 print("Variables Value Before Swapping: ") print("Value of P: ", P) print("Value of Q: ", Q) # Method to swap 'P' and 'Q' P = P * Q # P = 236.32, Q = 21.1 Q = P / Q # P = 236.32, Q = 11.2 P = P / Q # P = 21.1, Q = 11.2 print("Variables Value After Swapping: ") print("Value of P: ", P) print("Value of Q: ", Q)
Variables Value Before Swapping: Value of P: 11.2 Value of Q: 21.1 Variables Value After Swapping: Value of P: 21.1 Value of Q: 11.2
Метод 5: с использованием побитовых и арифметических операторов
В этом методе мы будем использовать как побитовые, так и арифметические операторы. Этот метод работает только с целыми числами, но не с числами с плавающей запятой.
P = 112 Q = 211 print("Variables Value Before Swapping: ") print("Value of P: ", P) print("Value of Q: ", Q) # Same as P = P + Q P =(P & Q) +(P | Q) ; # Same as Q = P - Q Q = P +(~Q) + 1 ; # Same as P = P - Q P = P +(~Q) + 1 ; print("Variables Value After Swapping: ") print("Value of P: ", P) print("Value of Q: ", Q)
Variables Value Before Swapping: Value of P: 112 Value of Q: 211 Variables Value After Swapping: Value of P: 211 Value of Q: 112
Заключение
В этом руководстве мы обсудили различные методы, используемые для обмена значениями двух переменных без использования третьей.
Обмен значений двух переменных
Данная программа принимает от пользователя два значения и записывает каждое из них в отдельную переменную. Затем она меняет местами значения этих переменных без ввода временной переменной.
Решение задачи
- Пользователь вводит два значения, которые записываются в две разные переменные.
- Значения двух переменных складываются и результат сложения записывается в первую переменную.
- Далее из первой переменной вычитается вторая переменная и результат записывается во вторую переменную.
- Затем из первой переменной вычитаем вторую (с уже обновленным значением) и записываем полученный результат в первую переменную.
- Выводим полученные значения.
- Конец.
Исходный код программы
Ниже приведен исходный код программы по замене значений двух переменных без использования третьей переменной. Далее также будет приведен результат работы этого кода.
a = int(input("Введите значение первой переменной: ")) b = int(input("Введите значение второй переменной: ")) a = a + b b = a - b a = a - b print("a это:", a, " b это:", b)
Объяснение работы программы
- Пользователь вводит значение двух переменных и они записываются в переменные а и b .
- В переменную а записывается сумма а и b .
- В переменную b записывается разность переменной а (в которой сейчас находится сумма первоначальных значений a и b ) и переменной b . Таким образом первоначально введенное значение переменой a перешло в переменную b .
- Теперь вычитаем из переменной a (где сейчас по-прежнему находится сумма первоначально введенных величин) текущее значение переменной b (которое первоначально было записано в переменную a ). Таким образом в переменной a остается только значение, которое в начале программы было записано в переменную b .
- И далее выводим полученные значения на экран.
Результаты работы программы
Case 1 Введите значение первой переменной: 3 Введите значение второй переменной: 5 a это: 5 b это: 3 Case 2 Введите значение первой переменной: 56 Введите значение второй переменной: 25 a это: 25 b это: 56
Примечание переводчика
Все что было описано выше (в пунктах 2, 3, 4), в языке Python можно сделать в одну строчку. И это одно из основных достоинств этого языка программирования.
a=int(input("Введите значение первой переменной: ")) b=int(input("Введите значение второй переменной: ")) a, b = b, a # собственно здесь и происходит обмен значениями print("a это:",a," b это:",b)