Tutorials
Examples
Tests

# Python Program to Interchange Digits of a Number

• Interchange first and last digit of a given number
• Interchange digits of a given number using List
• Interchange any two desired digits of a given number

## Interchange First and Last Digits of a Number

The question is, write a Python program to interchange first and last digit of a number given by user. Here is its answer:

```print("Enter the Number: ")
num = int(input())
rev = 0
noOfDigit = 0
temp = num
while temp>0:
temp = int(temp/10)
noOfDigit = noOfDigit+1
if noOfDigit<2:
print("\nIt is a Single-digit Number!")
elif noOfDigit==2:
temp = num
while temp>0:
rem = temp%10
rev = (rev*10)+rem
temp = int(temp/10)
print("\nFirst and Last (Second) Digit Interchanged Successfully!")
print("\nNew Number: ")
print(rev)
else:
temp = num
while temp>0:
rem = temp%10
rev = (rev*10)+rem
temp = int(temp/10)
revNum = rev
rev = 0
temp = num
noOfDigitTemp = noOfDigit
while temp>0:
remTemp = revNum%10
if noOfDigitTemp==noOfDigit:
rem = temp%10
rev = (rev*10)+rem
elif noOfDigitTemp==1:
rem = temp%10
rev = (rev*10)+rem
else:
rev = (rev*10)+remTemp
temp = int(temp/10)
revNum = int(revNum/10)
noOfDigitTemp = noOfDigitTemp-1
print("\nFirst and Last Digit Interchanged Successfully!")
print("\nNew Number: ")
print(rev)```

Here is its sample run:

Now supply the input say 12034 as number to interchange the first (1) and last (4) digit of given number:

Here is another sample run with user input, 12:

## Interchange First and Last Digit using List

This program is similar to previous one. The only difference is, this program uses Python list to do the job.

```print(end="Enter the Number: ")
num = int(input())
rev = 0
noOfDigit = 0
temp = num
while temp>0:
temp = int(temp/10)
noOfDigit = noOfDigit+1
temp = num
while temp>0:
rem = temp%10
rev = (rev*10)+rem
temp = int(temp/10)
nums = []
for i in range(noOfDigit):
rem = rev%10
nums.insert(i, rem)
rev = int(rev/10)
if noOfDigit==1:
print("\nIt's a single-digit number!")
elif noOfDigit==2:
temp = nums[0]
nums[0] = nums[1]
nums[1] = temp
print("\nFirst and Last (Second) Digit Interchanged Successfully!")
print(end="The New Number = " +str(nums[0])+str(nums[1]))
else:
i = 0
temp = nums[i]
nums[i] = nums[noOfDigit-1]
nums[noOfDigit-1] = temp
print("\nFirst and Last Digit Interchanged Successfully!")
print(end="The New Number = ")
for i in range(noOfDigit):
print(end=str(nums[i]))```

Here is its sample run with user input, 230498:

## Interchange any Two desired Digits of a Number

Above two programs interchanges first and last digits of a given number automatically. But what if user wants to interchange any two particular digits of a number entered by him/her ?

To overcome this problem, we have another program that interchanges any two required digits of a given number. Here is the program:

```print(end="Enter the Number: ")
num = int(input())
rev = 0
noOfDigit = 0
temp = num
while temp>0:
temp = int(temp/10)
noOfDigit = noOfDigit+1
if noOfDigit==1:
print("\nIt's a single-digit number!")
else:
print(end="\nInterchange the Digit at Position: ")
posFirst = int(input())
print(end="With Digit at Position: ")
posSecond = int(input())
if posFirst>noOfDigit or posSecond>noOfDigit:
print("\nInvalid Input!")
else:
temp = num
while temp>0:
rem = temp%10
rev = (rev*10)+rem
temp = int(temp/10)
arr = []
for i in range(noOfDigit):
rem = rev%10
arr.insert(i, rem)
rev = int(rev/10)
i = 0
temp = arr[posFirst-1]
arr[posFirst-1] = arr[posSecond-1]
arr[posSecond-1] = temp
print("\nDigits Interchanged Successfully!")
print(end="The New Number = ")
for i in range(noOfDigit):
print(end=str(arr[i]))```

Here is its sample run with user input, 1234 as number, 1 as position of first digit to interchange with digit at position 2:

Python Online Test

« Previous Program Next Program »