MST
星途 面试题库

面试题:Python 列表元素访问边界问题之基础分析

假设有一个Python列表 `my_list = [1, 2, 3, 4, 5]`,请解释使用 `my_list[5]` 和 `my_list[-6]` 访问元素时会发生什么,并说明原因。同时,如何通过代码捕获并处理可能出现的错误?
46.6万 热度难度
编程语言Python

知识考点

AI 面试

面试题答案

一键面试
  1. my_list[5] 的情况
    • 会抛出 IndexError 异常。
    • 原因是在Python中,列表的索引是从0开始的。对于列表 my_list = [1, 2, 3, 4, 5],有效索引范围是0到4(因为列表长度为5)。当试图访问 my_list[5] 时,这个索引超出了列表的有效范围,所以会引发 IndexError 异常。
  2. my_list[-6] 的情况
    • 同样会抛出 IndexError 异常。
    • 原因是负索引是从列表末尾开始计数的,-1 表示最后一个元素,-2 表示倒数第二个元素,依此类推。对于长度为5的列表 my_list,有效的负索引范围是 -1-5-6 超出了这个有效范围,所以也会引发 IndexError 异常。
  3. 捕获并处理错误的代码示例
my_list = [1, 2, 3, 4, 5]
try:
    # 尝试访问可能会引发IndexError的索引
    value = my_list[5]
    print(value)
except IndexError:
    print("索引超出范围,请检查索引值。")

在上述代码中,使用 try - except 块来捕获 IndexError 异常。当 try 块中的代码引发 IndexError 异常时,程序会跳转到 except 块并执行其中的代码,打印出错误提示信息。这样就可以优雅地处理可能出现的索引越界错误。