约 8 分钟
把一排格子编号,从 0 开始数。有 5 个格子,编号就是 0、1、2、3、4,根本没有第 5 号。伸手去够不存在的格子,Python 就报下标越界。
a = [10, 20, 30, 40, 50] print(a[5]) # IndexError: 越界了
最大下标是 4,不是 5。这种错常常藏在循环里——范围多走了一步。
要注意:写循环访问列表时,用 range(len(a)) 最稳妥,它正好从 0 到长度减一。别习惯性写成 range(1, len(a)+1),那一下就越到界外去了。
长度为 5 的列表,最大下标是几?
登录 后可看答案