Python Program to Interchange Digits of a Number

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

Interchange the first and last digits of a number

The question is: write a Python program to interchange the first and last digits of a number given by the 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 a number to interchange the first (1) and last (4) digits of the 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 the first and last digits using a list

This program is similar to the previous one. The only difference is that this program uses a 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

The above two programs interchange the first and last digits of a given number automatically. But what if the user wants to interchange any two particular digits of a number entered by him or 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 a number, 1 as the position of the first digit to interchange with the digit at position 2:

interchange any two digits of number python

Python Online Test


« Previous Program Next Program »


Liked this post? Share it!