Compare commits
3 Commits
43cb9a9b56
...
b74a428c2b
| Author | SHA1 | Date | |
|---|---|---|---|
| b74a428c2b | |||
|
|
65a4c79916 | ||
|
|
065447534c |
43
src/codewars/pagination_helper.py
Normal file
43
src/codewars/pagination_helper.py
Normal file
@ -0,0 +1,43 @@
|
||||
# Abgabe - PaginationHelper Aufgabe von Codewars
|
||||
# Link dazu: https://www.codewars.com/kata/515bb423de843ea99400000a
|
||||
# Leart Ramushi
|
||||
|
||||
# TODO: complete this class
|
||||
import math
|
||||
|
||||
|
||||
class PaginationHelper:
|
||||
|
||||
# The constructor takes in an array of items and an integer indicating
|
||||
# how many items fit within a single page
|
||||
def __init__(self, collection, items_per_page):
|
||||
self.collection = collection
|
||||
self.items_per_page = items_per_page
|
||||
|
||||
# returns the number of items within the entire collection
|
||||
def item_count(self):
|
||||
return len(self.collection)
|
||||
|
||||
# returns the number of pages
|
||||
def page_count(self):
|
||||
return math.ceil(len(self.collection) / self.items_per_page)
|
||||
|
||||
# returns the number of items on the given page. page_index is zero based
|
||||
# this method should return -1 for page_index values that are out of range
|
||||
def page_item_count(self, page_index):
|
||||
if page_index < 0 or page_index >= self.page_count():
|
||||
return -1
|
||||
if page_index == self.page_count() - 1:
|
||||
rest = len(self.collection) % self.items_per_page
|
||||
if rest == 0:
|
||||
return self.items_per_page
|
||||
else:
|
||||
return rest
|
||||
return self.items_per_page
|
||||
|
||||
# determines what page an item at the given index is on. Zero based indexes.
|
||||
# this method should return -1 for item_index values that are out of range
|
||||
def page_index(self, item_index):
|
||||
if item_index < 0 or item_index >= len(self.collection):
|
||||
return -1
|
||||
return item_index // self.items_per_page
|
||||
Loading…
x
Reference in New Issue
Block a user