python二维列表越界判断

问题遇到的现象和发生背景

我在使用递归二维列表时,理论上最后一层递归应该出现数组越界异常,实际上却没有;将问题复现以后发现了python中不理解之处

问题相关代码,请勿粘贴截图
sa = [[1]]
print(sa[0])
# print(sa[1])  打印越界元素时,程序会终止在此处(并未报错),像是sys.exit(0)
# print(sa[2])
# print(sa[55])
print(sa[1:])
print(len(sa))
运行结果及报错内容
[1]
[]
1
我的解答思路和尝试过的方法

无,请了解的人帮忙解答一下

我想要达到的结果

索引与切片不一样,索引返回的是元素,索引对应元素不存在会报异常,

切片不会,因为切片返回的结果是列表,空列也是列表子集,就算你用sa[1000:]都不会报错,只会返回空列表

您好,越界会报错的,抛出 IndexError 异常, 如果你不想越界终止程序的话可以使用try-except语句

if __name__ == '__main__':
    sa = [[1]]
    print(sa[0])
    try:
        print(sa[1])  # 打印越界元素时,程序会终止在此处(并未报错),像是sys.exit(0)
    except IndexError:
        print("这里越界了注意噢!")
    # print(sa[2])
    # print(sa[55])
    print(sa[1:])  # 这是切片,只返回符合条件的元素,否则返回空列表
    print(len(sa))