# Python Program to Find a Number is Palindrome or not

## Check Whether or Not the Number is a Palindrome in Python

Given an integer number as an input, the objective is to check Whether or not the number is a palindrome. Therefore, we write a code to Check Whether or Not the Number is a Palindrome in Python Language.

```Example
Input : 1221
Output : Palindrome
``` ## Check Whether or Not the Number is a Palindrome in Python Language

Given an integer input the objective is to check whether or not the given integer number as an input is palindrome or not.

For a number to be a Palindrome, the number must be the same when reversed. If the number doesn’t match the reverse of itself, the number is not a Palindrome.

• Method 1:  Using Simple Iteration.
• Method 2: Using String Slicing.
• Method 3: Using Recursion
• Method 4:  Using Character matching
• Method 5: Using Character matching updated
• Method 6: Using Built-in reversed function
• Method 7:  Building reverse one char at a time
• Method 8: Using Flag and backward reading
• Method 9: Bonus using backward slicing

We’ll discuss the above-mentioned methods in detail in the sections below. Don’t forget to check the blue box mentioned below for better understanding of the problem. ### Working

For a given integer variable, we perform the following operations,

• Run a While loop with condition as temp number < 0.
• Using modulo operator, extract the last digit from the number.
• Using the formula reverse = reverse * 10 + remainder , we’ll keep updating the reverse variable.
• Using the divide operator, we’ll shorten the number.
• Check if the reversed number matches the original number.

Let’s implement the above mentioned code in Python Language.

### Python Code

Run
```num = 1221
temp = num
reverse = 0
while temp > 0:
remainder = temp % 10
reverse = (reverse * 10) + remainder
temp = temp // 10
if num == reverse:
print('Palindrome')
else:
print("Not Palindrome")```

### Output

``` Palindrome
```

### Working

In this method we’ll convert the number to string format and reverse the string. We’ll check if the reversed number matches the original one at the end.

For an integer input number, we perform the following operations,

• Convert the number to string format using str() function.
• Using string slicing, reverse the number.
• Check if the reversed number matches the original number.

Let’s implement the above mentioned logic in Python Language.

### Python Code

Run
```num = 1234
reverse = int(str(num)[::-1])

if num == reverse:
print('Palindrome')
else:
print("Not Palindrome")```

### Output

```Not Palindrome
```

### Working

In this method we’ll use recursion. To know more about recursion, check our page, Recursion in Python.

For a given integer number as input we perform the following,

• Define a function recurrev() which takes the number and the reverse variable as arguments.
• Set the base case as number == 0 and the step recursive call as recurrev(number//10,reverse).
• Check if the returned value matches the original number.

Let’s implement the above mentioned logic in Python Language.

### Python Code

Run
```def recurrev(number, rev):
if number == 0:
return rev

remainder = int(number % 10)
rev = (rev * 10) + remainder

return recurrev(int(number / 10), rev)

num = 12321
reverse = 0
reverse = recurrev(num, reverse)

print(str(num) + " is: ", end="")
print("Palindrome") if reverse == num else print("Not Palindrome")
```

### Output

``` Palindrome
```

### Working

For string str iterate on the whole check if we find any condition such that –

• str[i] != str[len(str) – i – 1]
• If yes then its not a palindrome

Basically, we are checking ‘i’th character is the same as ‘i’th character from the end or not

Run
```def checkPalindrome(str):

# check if str[i] is same as str[len(str) - i - 1]
# for whole string
for i in range(0, len(str)):

# Basically, we are checking i-th character is
# same as i-th character from the end or not
if str[i] != str[len(str) - i - 1]:
return False

return True

# main function
s = "kayak"

print("Palindrome") if checkPalindrome(s) else print("Not Palindrome")
```

### Output

``` Palindrome
```

### Working

The logic is same as the previous method with the only difference that –

Rather than iterating on the whole string, we iterate on half of the string input.

Since, if the string is a palindrome, the first half will be the same as the second half from the end.

Run
```# we do not need to check the whole string
# only till the mid of string
# as if it palindrome the first half == second half of string when read backwards
def checkPalindrome(str):

# Run loop from 0 to len/2
mid = int(len(str) / 2)

for i in range(0, mid):
if str[i] != str[len(str) - i - 1]:
return False

return True

# main function
s = "kayak"

print("Palindrome") if checkPalindrome(s) else print("Not Palindrome")
```

### Output

``` Palindrome
```

### Working

Use the following –

reverse = ”.join(reversed(str))

Run
```def checkPalindrome(str):
# using inbuilt reversed function
reverse = ''.join(reversed(str))

if str == reverse:
return True

return False

# main function
s = "kayak"

print("Palindrome") if checkPalindrome(s) else print("Not Palindrome")
```

### Output

``` Palindrome
```

### Method 7: Building reverse one char at a time

The explanation is given in the comments section of the code below –

Run
```string = "123"
# this will automatically generate reverse
rev = ""
for char in string:
rev = char + rev

print("Palindrome") if string == rev else print("Not Palindrome")

print("string: " + str(string))
print("rev: " + str(rev))
```

### Output

```Not Palindromestring: 123rev: 321
```

### Method 8: Using Flag

The explanation is given in the comments section of the code below –

Run
```string = "radar"

j = -1
flag = 0
for char in string:
# char starts from index 0
# string[j] forces to read from end
# bcz negative index are read from end
if char != string[j]:
flag = 1
break
j = j - 1

print(string + " is : ", end="")
print("Not Palindrome") if flag else print("Palindrome")
```

### Output

```radar is : Palindrome
```

### Method 8: Bonus using backward slicing

We use backward looping/slicing in a for loop here

Run
```str1 = "radar"
n = len(str1)
c = []
for i in range(n - 1, -1, -1):
c.append(str1[i])

rev = "".join(c)

print(str1 + " is: ", end="")
if str1 == rev:
print("Palindrome")
else:
print("Not Palindrome")
```

### Output

```radar is : Palindrome
```

### Related Banners

Get PrepInsta Prime & get Access to all 200+ courses offered by PrepInsta in One Subscription

### 25 comments on “Python Program to Find a Number is Palindrome or not”

• naveen.pavan2011

n = int(input(“enter a number: “))
x = str(n)[::-1]
y = int(x)
print(y)
if n==y:
print(‘n is pallindrome’)
else:
print(‘not pallindrome’) 0
• Bibhudutta

a=int(input())
temp=a
rev=0

while(a>0):
rem=a%10
rev=(rev*10)+rem
a=a//10

if(temp==rev):
print(‘it is a Palindrome ‘,rev,’ ,’,temp)
else:
print(‘it is not a Palindrome ‘,rev,’ ,’,temp) 0
• x = input(“Enter a Number: “)
a = str(x)[::-1]
if x == a:
print(“{}”.format(x), “is Palindrome”)
else:
print(“{}”.format(x), “is not Palindrome”) 1
• ankush

x = input()
z = list(x)
z.reverse()
a = “”.join(z)
if x == a:
print(“{} is palidrome”.format(x))
else:
print(“{} is not palidrome”.format(x)) 0
• Raaz

a = int(input(“Enter The Number: \n”))
b = (str(a)[::-1])
print(b)
if a==int(b):
print(“The number is palindrome”)
else:
print(“The number is not palindrome”) 0
• Raghul

#Finding palindrome or not
a = list(map(str,input()))
print(“Palindrome” if a == a[::-1] else “not palindrome”) 1
• Anirudh

num =str(input())
print(“The number is “,num)
pal = num[::-1]
if num == pal:
print(“The entered no. is Pal”)
else:
print(“The entered no. is not Pal”) 0
• Aniket

n = input(“enter:”)
p = n[::-1]
if n == p:
print(“Palindrome found”,n)
else:
print(“Not Palindrome”) 0
• Uzaif

#palindrome or not
n=input()
if n==n[::-1]:
print(“Palindrome”)
else:
print(“No Palindrome”) 0
• Abhishek

m=input(“enter word”)
n=m[::-1]
if n==m:
print(“palindrome”)
else:
print(“not”) 1
• Ashish

count=0
st=[str(n) for n in input() ]
l=len(st)
for i in range(0, int(l/2)+1):
if(st[i]==st[l-1]):
count=count+1
l=l-1
break
if (count>0):
print(“palindrome”)
else:
print(“not palindrome”) 0
• Yash

x = input ()
y = str(x)[::-1]
if x == y:
print(“Palindrome”)
else :
print(“Sorry”) 0