Reputation: 15
So I am using 2 different functions to evaluate if an inputed number is a palindrome. But it seems like no matter what I do my result is always "The number is not a palinrome" Even if the number actually is. This is my code, it should be easy enough but it's just not working.
def reverse(number):
return (int(str(number)[::-1]))
def isPalindrome(number):
reverse(number)
if number == reverse(number):
return True
else:
return False
def main():
num = (input("Enter a number: "))
if isPalindrome(num) == True:
print("The number is a Palindrome")
elif isPalindrome(num) == False:
print("The number is not a Palindrome")
main()
Upvotes: 0
Views: 1104
Reputation: 142794
In isPalindrome(number)
number is string but reverse(number)
return int
so number == reverse(number)
is always False
(string != int)
Change reverse()
def reverse(number):
return number[::-1]
def isPalindrome(number):
#print(type(number))
#print(type(reverse(number)))
return number == reverse(number)
def main():
num = input("Enter a number: ")
if isPalindrome(num) == True:
print("The number is a Palindrome")
else:
print("The number is not a Palindrome")
main()
or use num = int(input("Enter a number: "))
def reverse(number):
return int(str(number)[::-1])
def isPalindrome(number):
#print(type(number))
#print(type(reverse(number)))
return number == reverse(number)
def main():
num = int(input("Enter a number: "))
if isPalindrome(num) == True:
print("The number is a Palindrome")
else:
print("The number is not a Palindrome")
main()
Upvotes: 2