̽̽

Exceptions

Author

Clayton Cafiero

Published

2025-01-05

Exceptions

IndexError

When dealing with sequences, you may encounter IndexError. This exception is raised when an integer is supplied as an index, but there is no element at that index.

>>> lst = ['j', 'a', 's', 'p', 'e', 'r']
>>> lst[6]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IndexError: list index out of range

Notice that the error message explicitly states “list index out of range”. In the example above, we have a list of six elements, so valid indices range up to five. There is no element at index six, so if we attempt to access lst[6], an IndexError is raised.

TypeError

Again, when dealing with sequences, you may encounter TypeError in a new context. This occurs if you try to use something other than an integer (or slice) as an index.

>>> lst[1.0]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: list indices must be integers or slices, not float
>>> lst['cheese']
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: list indices must be integers or slices, not str
>>> lst[None]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: list indices must be integers or slices, not NoneType

Notice that the error message explicitly states that “list indices must be integers or slices” and in each case, it identifies the offending type that was actually supplied.

Copyright © 2023–2025 Clayton Cafiero

No generative AI was used in producing this material. This was written the old-fashioned way.

Reuse