检查数字是否为回文

Checking if a number is palindrome

我有这个代码来检查一个数字是否是回文,出于某种原因它 returns false for number=1 即使它是回文。这是为什么?该代码适用于其他情况,例如 12321。

def palindrome_integer(number): 

    if number != int:
        return False
    elif str(number) == str(number)[::-1]:
        return True
    else:
        return False

如果你想检查number是否是整数,你应该使用isistance

def palindrome_integer(number): 

    if not isinstance(number, int):
        return False
    elif str(number) == str(number)[::-1]:
        return True
    else:
        return False

您的其余代码似乎工作正常。

One-liner:

return isinstance(n, int) and str(n) == str(n)[::-1]

或者稍微做作一点:

import re
x = str(n)
return re.match(r”\d+“, x) and x == x[::-1]
def palindrome_integer(number):
    return type(number) == int and str(number)[::-1] == str(number)

如果您在理解解决方案时遇到问题,请不要犹豫发表评论。