In this article, we will learn about how to write python program to swap two variables without using third variable.
Getting Started
The task is to swap two variables a and b in python without using any other variable.
Let’s say a = 5 and b = 7, then output should be a = 7 and b = 5.
There are multiple ways to achieve above tasks.
- Using Tuple Packing and Unpacking
- Using XOR bitwise operation
- Using Multiplication and Division Operation
- Using Bitwise Operation
1. Using Tuple Packing and Unpacking
Python provides the simplest way, i.e. Tuple Packing and Unpacking, to swap two variables without using third variable as shown below –
num1 = 5 num2 = 10 print("Before swap: num1 =", num1, "num2 =", num2) num1, num2 = num2, num1 print("After swap: num1 =", num1, "num2 =", num2)
Here,
- Statement num1, num2 = num2, num1 does the actual swapping process. Rest of the lines in above code example are just to show the output.
Output:
Before swap: num1 = 5 num2 = 10 After swap: num1 = 10 num2 = 5
2. Using XOR bitwise operation
We can also use XOR bitwise operation to write python program to swap two variables without using third variable as shown below –
a = int(input("Enter the value of a: ")) b = int(input("Enter the value of b: ")) # Swapping without using a third variable a = a ^ b b = a ^ b a = a ^ b # Output swapped values print("After swapping:") print("a =", a) print("b =", b)
Here,
- We have used XOR operator, i.e. ^, for our swap operation.
Output:
Enter the value of a: 5 Enter the value of b: 10 After swapping: a = 10 b = 5
3. Using Multiplication and Division Operation
We can also use multiplication and division operation to swap two variables without using third variable in python as shown below –
a = 10 b = 20 # Print the values before swapping print("Before swapping:") print("Value of a:", a, "and b:", b) # Swapping without using a third variable a = a * b # Multiply a by b. Then, assign the result to a b = a / b # Divide a (i.e now, it is a*b) by b. Then, assign the result to b a = a / b # Divide a by b. Then, assign the result to a # Print the values after swapping print("After swapping:") print("Value of a:", a, "and b:", b)
Here,
- We have used multiplication and division only to swap two variables in python.
Output:
Before swapping: Value of a: 10 and b: 20 After swapping: Value of a: 20.0 and b: 10.0
4. Using Bitwise Operation
We can also use bitwise operation to swap variables without using third variable and print them in python as shown below –
a = 5 b = 10 print("Before swapping:") print("Value of a:", a, "and b:", b) # Swapping without using a third variable using bitwise operations a = (a & b) + (a | b) # a = (a AND b) + (a OR b) b = a + (~b) + 1 # b = a + (~b) + 1 (two's complement) a = a + (~b) + 1 # a = a + (~b) + 1 (two's complement) print("After swapping:") print("Value of a:", a, "and b:", b)
Here,
- We are using two’s complement feature and swapping the variables.
Output:
Before swapping: Value of a: 5 and b: 10 After swapping: Value of a: 10 and b: 5
We have also covered many other ways to swap two variables in python. You can have a look at them if you want. Learn more about python at official site.