Python Program to Interchange Digits of a Number

This article is created to cover some programs in Python, that interchange digits of a number entered by user at run-time. Here are the list of Python programs covered in this article:

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:

interchange digits of number python

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

python interchange digit of number python

Here is another sample run with user input, 12:

interchange first last digit of number python

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 digits using list python

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:

interchange any two digits of number python

Python Online Test


« Previous Program Next Program »