关于#python#的问题:出现'int' object is not subscriptable错误的解决

判断正整数是否为回文数
出现了'int' object is not subscriptable的错误,查了一些解释,但是不能理解说定义变量重复,或者说索引错误(但如何判断该数能否索引。错误代码如下

def is_palindrome(num):
    """
    判断一个数是不是回文数
    :param num: 正整数
    :return: 是回文数返回True,不是回文数返回False
    """
    #        请在此处添加代码       #
    # *************begin************#
    num1=num[::-1]
    num2=int(num1)
    if num == num2:
        return True
    else:
        return False

但奇怪的是,只要加上一个绝对值的函数就可以了?(不知道对函数的名称的表述正不正确)

def is_palindrome(num):
    """
    判断一个数是不是回文数
    :param num: 正整数
    :return: 是回文数返回True,不是回文数返回False
    """
    #        请在此处添加代码       #
    # *************begin************#
    num1=str(abs(num))
    num2=num1[::-1]
    num3=int(num2)
    if num == num3:
        return True
    else:
        return False

谢谢各位的帮助!

你不是加上绝对值函数,你是使用str把整数转换成字符串了,所以自然可以使用[::-1]这种字符串切片操作了。

[::-1] 的操作对象应为:字符串


def is_palindrome(num):
    """
    判断一个数是不是回文数
    :param num: 正整数
    :return: 是回文数返回True,不是回文数返回False
    """
    #        请在此处添加代码       #
    # *************begin************#
    num1=num[::-1]
    # print(type(num1))
    num2=num1
    
    if num == num2:
        print('是回文数')
       
    else:
        print('不是')
         
        

a = input('请输入一个数:')
# input 接收类型 为 str 类型
is_palindrome(a)