砂糖的螺旋桨 2022-12-10 14:48 采纳率: 100%
浏览 30
已结题

关于#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

谢谢各位的帮助!

  • 写回答

2条回答 默认 最新

  • 请叫我问哥 新星创作者: python技术领域 2022-12-10 15:32
    关注

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

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 12月18日
  • 已采纳回答 12月10日
  • 创建了问题 12月10日