user2767528
user2767528

Reputation: 15

Writing functions to process if a number is a Palindrome

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

Answers (1)

furas
furas

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

Related Questions