Python - Swap two numbers without using Temporary Variable
The value of two variables can be swapped without using any temporary variables. The method involves using operators like +, *, / and bitwise.
Method 1: Using + operator
In the example below, the + operator is used to swap the value of two variables x and y.
def swap(x, y): print("Before Swap.") print("x =",x) print("y =",y) #Swap technique x = x + y y = x - y x = x - y print("After Swap.") print("x =",x) print("y =",y) swap(10, 25)
The above code will give the following output:
Before Swap. x = 10 y = 25 After Swap. x = 25 y = 10
Method 2: Using * operator
Like + operator, the * operator can also be used to swap the value of two variables x and y.
def swap(x, y): print("Before Swap.") print("x =",x) print("y =",y) #Swap technique x = x * y y = x / y x = x / y print("After Swap.") print("x =",x) print("y =",y) swap(10, 25)
The above code will give the following output:
Before Swap. x = 10 y = 25 After Swap. x = 25 y = 10
Method 3: Using / operator
Similarly / operator can also be used to swap the value of two variables x and y.
def swap(x, y): print("Before Swap.") print("x =",x) print("y =",y) #Swap technique x = x / y y = x * y x = y / x print("After Swap.") print("x =",x) print("y =",y) swap(10, 25)
The above code will give the following output:
Before Swap. x = 10 y = 25 After Swap. x = 25 y = 10
Method 4: Using bitwise operator
The bitwise XOR (^) operator can also be used to swap the value of two variables x and y. It returns 1 when one of two bits at same position in both operands is 1, otherwise returns 0.
def swap(x, y): print("Before Swap.") print("x =",x) print("y =",y) #Swap technique x = x ^ y y = x ^ y x = y ^ x print("After Swap.") print("x =",x) print("y =",y) swap(10, 25)
The above code will give the following output:
Before Swap. x = 10 y = 25 After Swap. x = 25 y = 10
Disadvantages of using above methods
- The multiplication and division based approaches fail if the value of one of the variable is 0.
- The addition based approach may fail due to arithmetic overflow. If x and y are too large, operation performed on operands may result into out of range integer.
Recommended Pages
- Python Program - To Check Prime Number
- Python Program - Bubble Sort
- Python Program - Selection Sort
- Python Program - Maximum Subarray Sum
- Python Program - Reverse digits of a given Integer
- Python - Swap two numbers
- Python Program - Fibonacci Sequence
- Python Program - Insertion Sort
- Python Program - Find Factorial of a Number
- Python Program - Find HCF of Two Numbers
- Python Program - Merge Sort
- Python Program - Shell Sort
- Stack in Python
- Queue in Python
- Python Program - Find LCM of Two Numbers
- Python Program - To Check Armstrong Number
- Python Program - Counting Sort
- Python Program - Radix Sort
- Python Program - Find Largest Number among Three Numbers
- Python Program - Print Floyd's Triangle