14 lines
557 B
Python
14 lines
557 B
Python
"""Pagination helper — contains an off-by-one bug that drops the last item of a page.
|
|
|
|
The bug: `end = start + size - 1` and slicing `items[start:end]` excludes the last
|
|
element of each page. A correct implementation returns exactly `size` items per page
|
|
(and the remainder on the final page).
|
|
"""
|
|
|
|
|
|
def paginate(items, page, size):
|
|
"""Return the `page`-th (1-indexed) slice of `items` with `size` per page."""
|
|
start = (page - 1) * size
|
|
end = start + size - 1 # BUG: off-by-one — drops the last item of the page
|
|
return items[start:end]
|